diff options
| author | Peter Son Struschka <me@peter-struschka.com> | 2020-07-21 12:12:52 +0800 |
|---|---|---|
| committer | Peter Son Struschka <me@peter-struschka.com> | 2020-07-21 12:12:52 +0800 |
| commit | 556bbd7fd182937e32eb5320a27ba337ac454be0 (patch) | |
| tree | ce3cbdf376ed26fa1b2ef4c67e9349c61c6fb98d /doom-emacs/.config | |
| parent | a0d15122db0190e1cf7faed32c9ba0a28424968f (diff) | |
| download | dotfiles-556bbd7fd182937e32eb5320a27ba337ac454be0.tar.gz dotfiles-556bbd7fd182937e32eb5320a27ba337ac454be0.tar.bz2 dotfiles-556bbd7fd182937e32eb5320a27ba337ac454be0.tar.lz dotfiles-556bbd7fd182937e32eb5320a27ba337ac454be0.tar.xz dotfiles-556bbd7fd182937e32eb5320a27ba337ac454be0.tar.zst dotfiles-556bbd7fd182937e32eb5320a27ba337ac454be0.zip | |
doom-emacs: update repository and init.el
Diffstat (limited to 'doom-emacs/.config')
| -rw-r--r-- | doom-emacs/.config/doom/.projectile | 0 | ||||
| -rw-r--r-- | doom-emacs/.config/doom/config.el | 94 | ||||
| -rw-r--r-- | doom-emacs/.config/doom/config.org | 129 | ||||
| -rw-r--r-- | doom-emacs/.config/doom/init.el | 182 | ||||
| -rw-r--r-- | doom-emacs/.config/doom/modules/tools/cc-ide/config.el | 61 | ||||
| -rw-r--r-- | doom-emacs/.config/doom/modules/tools/cc-ide/packages.el | 10 | ||||
| -rw-r--r-- | doom-emacs/.config/doom/packages.el | 9 |
7 files changed, 485 insertions, 0 deletions
diff --git a/doom-emacs/.config/doom/.projectile b/doom-emacs/.config/doom/.projectile new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/doom-emacs/.config/doom/.projectile diff --git a/doom-emacs/.config/doom/config.el b/doom-emacs/.config/doom/config.el new file mode 100644 index 0000000..e363dfc --- /dev/null +++ b/doom-emacs/.config/doom/config.el @@ -0,0 +1,94 @@ +(setq + doom-font (font-spec :family "Fira Code" :size 14) + doom-big-font (font-spec :family "Fira Code" :size 24) + doom-variable-pitch-font (font-spec :family "Fira Code" :size 16)) + +(setq projectile-project-search-path '("~/code")) + +(setq display-line-numbers-type 'relative) + +(add-hook 'org-mode-hook #'auto-fill-mode) + +(after! org + (map! :map org-mode-map + :n "M-j" #'org-metadown + :n "M-k" #'org-metaup + )) + +(after! org + (setq org-capture-templates '(("t" "Personal todo" entry + (file+headline +org-capture-todo-file "Inbox") + "* TODO %?\n%i\n%a" :prepend t :kill-buffer t) + ("n" "Personal notes" entry + (file+headline +org-capture-notes-file "Inbox") + "* %u %?\n%i\n%a" :prepend t :kill-buffer t) + ("p" "Templates for projects") + ("pt" "Project todo" entry + (file+headline +org-capture-project-todo-file "Inbox") + "* TODO %?\n%i\n%a" :prepend t :kill-buffer t) + ("pn" "Project notes" entry + (file+headline +org-capture-project-notes-file "Inbox") + "* TODO %?\n%i\n%a" :prepend t :kill-buffer t) + ("pc" "Project changelog" entry + (file+headline +org-capture-project-notes-file "Unreleased") + "* TODO %?\n%i\n%a" :prepend t :kill-buffer t)))) + +(use-package! org-super-agenda + :after org-agenda + :init + (setq org-super-agenda-groups '((:name "Today" + :time-grid t + :scheduled today) + (:name "Due today" + :deadline today) + (:name "Important" + :priority "A") + (:name "Overdue" + :deadline past) + (:name "Due soon" + :deadline future) + (:name "Big Outcomes" + :tag "bo"))) + :config + (org-super-agenda-mode) +) + +(setq imenu-anywhere-delimiter ": ") + +(add-hook 'imenu-after-jump-hook #'better-jumper-set-jump) + +(after! imenu-list + (setq imenu-list-idle-update-delay 0.5) + + (set-popup-rule! "^\\*Ilist" + :side 'right :size 35 :quit nil :select nil :ttl 0)) + +(setf tramp-shell-prompt-pattern "\\(?:^\\|^M\\)[^]#$%>\n]*#?[]#$%>].* *\\(^[\\[[0-9;]*[a-zA-Z] *\\)*") + +;;(map! :leader +;; (:prefix-map ("/" . "search")) +;; (:when (featurep! :ui workspaces) +;; (:prefix-map ("TAB" . "workspace"))) +;; (:prefix-map ("b" . "buffer")) +;; (:prefix-map ("c" . "code")) +;; (:prefix-map ("f" . "file")) +;; (:prefix-map ("g" . "git")) +;; (:prefix-map ("i" . "insert")) +;; (:prefix-map ("n" . "notes")) +;; (:prefix-map ("o" . "open") +;; (:prefix-map ("p" . "project")) +;; (:prefix-map ("q" . "session")) +;; (:when (featurep! :editor upload) +;; (:prefix-map ("r" . "remote"))) +;; (:when (featurep! :editor snipets) +;; (:prefix-map ("s" . "snippets"))) +;; (:prefix-map ("t" . "toggle") +;; :desc "Toggle imenu-list" "m" #'imenu-list-smart-toggle))) + +(setq dired-dwim-target t) + +(use-package! tide + :after (typescript-mode company flycheck) + :hook ((typescript-mode . tide-setup) + (typescript-mode . tide-hl-identifier-mode) + (before-save . tide-format-before-save))) diff --git a/doom-emacs/.config/doom/config.org b/doom-emacs/.config/doom/config.org new file mode 100644 index 0000000..e6fb8df --- /dev/null +++ b/doom-emacs/.config/doom/config.org @@ -0,0 +1,129 @@ +#+TITLE: config + +* Font settings +#+BEGIN_SRC emacs-lisp +(setq + doom-font (font-spec :family "Fira Code" :size 14) + doom-big-font (font-spec :family "Fira Code" :size 24) + doom-variable-pitch-font (font-spec :family "Fira Code" :size 16)) +#+END_SRC + +* Projectile +Projectile Path +#+BEGIN_SRC emacs-lisp +(setq projectile-project-search-path '("~/code")) +#+END_SRC + +* Relative line numbers +#+BEGIN_SRC emacs-lisp +(setq display-line-numbers-type 'relative) +#+END_SRC + +* Org +#+BEGIN_SRC emacs-lisp +(add-hook 'org-mode-hook #'auto-fill-mode) +#+END_SRC + +#+BEGIN_SRC emacs-lisp +(after! org + (map! :map org-mode-map + :n "M-j" #'org-metadown + :n "M-k" #'org-metaup + )) +#+END_SRC + +Org capture +#+BEGIN_SRC emacs-lisp +(after! org + (setq org-capture-templates '(("t" "Personal todo" entry + (file+headline +org-capture-todo-file "Inbox") + "* TODO %?\n%i\n%a" :prepend t :kill-buffer t) + ("n" "Personal notes" entry + (file+headline +org-capture-notes-file "Inbox") + "* %u %?\n%i\n%a" :prepend t :kill-buffer t) + ("p" "Templates for projects") + ("pt" "Project todo" entry + (file+headline +org-capture-project-todo-file "Inbox") + "* TODO %?\n%i\n%a" :prepend t :kill-buffer t) + ("pn" "Project notes" entry + (file+headline +org-capture-project-notes-file "Inbox") + "* TODO %?\n%i\n%a" :prepend t :kill-buffer t) + ("pc" "Project changelog" entry + (file+headline +org-capture-project-notes-file "Unreleased") + "* TODO %?\n%i\n%a" :prepend t :kill-buffer t)))) +#+END_SRC + +Org Super Agenda +#+BEGIN_SRC emacs-lisp +(use-package! org-super-agenda + :after org-agenda + :init + (setq org-super-agenda-groups '((:name "Today" + :time-grid t + :scheduled today) + (:name "Due today" + :deadline today) + (:name "Important" + :priority "A") + (:name "Overdue" + :deadline past) + (:name "Due soon" + :deadline future) + (:name "Big Outcomes" + :tag "bo"))) + :config + (org-super-agenda-mode) +) +#+END_SRC +* IMenu +#+BEGIN_SRC emacs-lisp +(setq imenu-anywhere-delimiter ": ") + +(add-hook 'imenu-after-jump-hook #'better-jumper-set-jump) + +(after! imenu-list + (setq imenu-list-idle-update-delay 0.5) + + (set-popup-rule! "^\\*Ilist" + :side 'right :size 35 :quit nil :select nil :ttl 0)) +#+END_SRC +* Tramp +#+BEGIN_SRC emacs-lisp +(setf tramp-shell-prompt-pattern "\\(?:^\\|^M\\)[^]#$%>\n]*#?[]#$%>].* *\\(^[\\[[0-9;]*[a-zA-Z] *\\)*") +#+END_SRC +* Leader keys +#+BEGIN_SRC emacs-lisp +;;(map! :leader +;; (:prefix-map ("/" . "search")) +;; (:when (featurep! :ui workspaces) +;; (:prefix-map ("TAB" . "workspace"))) +;; (:prefix-map ("b" . "buffer")) +;; (:prefix-map ("c" . "code")) +;; (:prefix-map ("f" . "file")) +;; (:prefix-map ("g" . "git")) +;; (:prefix-map ("i" . "insert")) +;; (:prefix-map ("n" . "notes")) +;; (:prefix-map ("o" . "open") +;; (:prefix-map ("p" . "project")) +;; (:prefix-map ("q" . "session")) +;; (:when (featurep! :editor upload) +;; (:prefix-map ("r" . "remote"))) +;; (:when (featurep! :editor snipets) +;; (:prefix-map ("s" . "snippets"))) +;; (:prefix-map ("t" . "toggle") +;; :desc "Toggle imenu-list" "m" #'imenu-list-smart-toggle))) +#+END_SRC +* Dired +Do what I mean target allows dired to use window context for copying and moving +#+BEGIN_SRC emacs-lisp +(setq dired-dwim-target t) +#+END_SRC +* Laguages +Typescript +#+BEGIN_SRC emacs-lisp +(use-package! tide + :after (typescript-mode company flycheck) + :hook ((typescript-mode . tide-setup) + (typescript-mode . tide-hl-identifier-mode) + (before-save . tide-format-before-save))) +#+END_SRC diff --git a/doom-emacs/.config/doom/init.el b/doom-emacs/.config/doom/init.el new file mode 100644 index 0000000..722c555 --- /dev/null +++ b/doom-emacs/.config/doom/init.el @@ -0,0 +1,182 @@ +;;; init.el -*- lexical-binding: t; -*- + +;; This file controls what Doom modules are enabled and what order they load +;; in. Remember to run 'doom sync' after modifying it! + +;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's +;; documentation. There you'll find a "Module Index" link where you'll find +;; a comprehensive list of Doom's modules and what flags they support. + +;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or +;; 'C-c c k' for non-vim users) to view its documentation. This works on +;; flags as well (those symbols that start with a plus). +;; +;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its +;; directory (for easy access to its source code). + +(doom! :input + ;;chinese + ;;japanese + + :completion + company ; the ultimate code completion backend + ;;helm ; the *other* search engine for love and life + ;;ido ; the other *other* search engine... + ivy ; a search engine for love and life + + :ui + ;;deft ; notational velocity for Emacs + doom ; what makes DOOM look the way it does + doom-dashboard ; a nifty splash screen for Emacs + doom-quit ; DOOM quit-message prompts when you quit Emacs + fill-column ; a `fill-column' indicator + hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW + hydra + indent-guides ; highlighted indent columns + minimap ; show a map of the code on the side + modeline ; snazzy, Atom-inspired modeline, plus API + nav-flash ; blink the current line after jumping + ;;neotree ; a project drawer, like NERDTree for vim + ophints ; highlight the region an operation acts on + (popup +defaults) ; tame sudden yet inevitable temporary windows + ;;(pretty-code) ; replace bits of code with pretty symbols + ;; +fira) + tabs ; a tab bar for Emacs + treemacs ; a project drawer, like neotree but cooler + unicode ; extended unicode support for various languages + vc-gutter ; vcs diff in the fringe + vi-tilde-fringe ; fringe tildes to mark beyond EOB + window-select ; visually switch windows + workspaces ; tab emulation, persistence & separate workspaces + zen ; distraction-free coding or writing + + :editor + (evil +everywhere); come to the dark side, we have cookies + file-templates ; auto-snippets for empty files + fold ; (nigh) universal code folding + ;;(format +onsave) ; automated prettiness + ;;god ; run Emacs commands without modifier keys + ;;lispy ; vim for lisp, for people who dont like vim + multiple-cursors ; editing in many places at once + ;;objed ; text object editing for the innocent + ;;parinfer ; turn lisp into python, sort of + rotate-text ; cycle region at point between text candidates + snippets ; my elves. They type so I don't have to + word-wrap ; soft wrapping with language-aware indent + + :emacs + dired ; making dired pretty [functional] + electric ; smarter, keyword-based electric-indent + ibuffer ; interactive buffer management + undo ; persistent, smarter undo for your inevitable mistakes + vc ; version-control and Emacs, sitting in a tree + + :term + eshell ; a consistent, cross-platform shell (WIP) + ;;shell ; a terminal REPL for Emacs + term ; terminals in Emacs + ;;vterm ; another terminals in Emacs + + :checkers + syntax ; tasing you for every semicolon you forget + ;;spell ; tasing you for every misspelling + ;;grammer ; tasing grammer mistakes every you make + + :tools + ;;ansible + debugger ; FIXME stepping through code, to help you add bugs + ;;direnv + ;;docker + editorconfig ; let someone else argue about tabs vs spaces + ;;ein ; tame Jupyter notebooks with emacs + (eval +overlay) ; run code, run (also, repls) + ;;gist ; interacting with github gists + lookup ; navigate your code and its documentation + ;;lsp + ;;macos ; MacOS-specific commands + magit ; a git porcelain for Emacs + make ; run make tasks from Emacs + ;;pass ; password manager for nerds + pdf ; pdf enhancements + ;;prodigy ; FIXME managing external services & code builders + rgb ; creating color strings + ;;taskrunner ; taskrunner for all your projects + ;;terraform ; infrastructure as code + tmux ; an API for interacting with tmux + upload ; map local to remote projects via ssh/ftp + + :lang + ;;agda ; types of types of types of types... + (cc ; C/C++/Obj-C madness + +rtags + +irony) + ;;clojure ; java with a lisp + ;;common-lisp ; if you've seen one lisp, you've seen them all + ;;coq ; proofs-as-programs + ;;crystal ; ruby at the speed of c + ;;csharp ; unity, .NET, and mono shenanigans + data ; config/data formats + ;;(dart +flutter) ; paint ui and not much else + elixir ; erlang done right + ;;elm ; care for a cup of TEA? + emacs-lisp ; drown in parentheses + ;;erlang ; an elegant language for a more civilized age + ;;ess ; emacs speaks statistics + ;;faust ; dsp, but you get to keep your soul + ;;fsharp ; ML stands for Microsoft's Language + ;;fstar ; (dependent) types and (monadic) effects and Z3 + ;;gdscript ; the language you waited for + (go +lsp) ; the hipster dialect + (haskell +dante) ; a language that's lazier than I am + ;;hy ; readability of scheme w/ speed of python + ;;idris + json ; At least it ain't XML + (java +meghanada) ; the poster child for carpal tunnel syndrome + ;;javascript ; all(hope(abandon(ye(who(enter(here)))))) + ;;julia ; a better, faster MATLAB + kotlin ; a better, slicker Java(Script) + latex ; writing papers in Emacs has never been so fun + ;;lean + ;;factor + ledger ; an accounting system in Emacs + ;;lua ; one-based indices? one-based indices + markdown ; writing docs for people to ignore + ;;nim ; python + lisp at the speed of c + ;;nix ; I hereby declare "nix geht mehr!" + ;;ocaml ; an objective camel + org ; organize your plain life in plain text + ;;php ; perl's insecure younger brother + ;;plantuml ; diagrams for confusing people more + ;;purescript ; javascript, but functional + python ; beautiful is better than ugly + ;;qt ; the 'cutest' gui framework ever + ;;racket ; a DSL for DSLs + ;;raku ; the artist formerly known as perl6 + rest ; Emacs as a REST client + ;;rst ; ReST in peace + ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} + rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap() + scala ; java, but good + ;;scheme ; a fully conniving family of lisps + sh ; she sells {ba,z,fi}sh shells on the C xor + ;;sml + ;;solidity ; do you need a blockchain? No. + ;;swift ; who asked for emoji variables? + ;;terra ; Earth and Moon in alignment for performance. + web ; the tubes + yaml ; JSON, but readable + + :email + ;;(mu4e +gmail) + ;;notmuch + ;;(wanderlust +gmail) + + :app + ;;calendar + ;;irc ; how neckbeards socialize + ;;(rss +org) ; emacs as an RSS reader + ;;twitter ; twitter client https://twitter.com/vnought + + :config + literate + (default +bindings +smartparens)) diff --git a/doom-emacs/.config/doom/modules/tools/cc-ide/config.el b/doom-emacs/.config/doom/modules/tools/cc-ide/config.el new file mode 100644 index 0000000..c96fd19 --- /dev/null +++ b/doom-emacs/.config/doom/modules/tools/cc-ide/config.el @@ -0,0 +1,61 @@ +;;; tools/gtags/config.el -*- lexical-binding: t; -*- + +(use-package! ggtags + :unless (or (featurep! :completion ivy) (featurep! :completion helm)) + :config + (add-hook! (c-mode c++-mode java-mode asm-mode) (ggtags-mode 1)) + (map! :map ggtags-mode-map + "C-c g s" 'ggtags-find-other-symbol + "C-c g h" 'ggtags-view-tag-history + "C-c g r" 'ggtags-find-reference + "C-c g f" 'ggtags-find-file + "C-c g c" 'ggtags-create-tags + "C-c g u" 'ggtags-update-tags + "M-," 'pop-tag-mark) + (setq-hook! 'ggtags-mode-hook imenu-create-index-function 'ggtags-build-imenu-index) + ) + +(use-package! helm-gtags + :when (featurep! :completion helm) + :after helm + :init + (setq! helm-gtags-ignore-case t + helm-gtags-auto-update t + helm-gtags-use-input-at-cursor t + helm-gtags-pulse-at-cursor t + helm-gtags-prefix-key "\C-cg" + helm-gtags-suggested-key-mapping t) + :config + (add-hook! (dired-mode eshell-mode c-mode c++-mode asm-mode) (helm-gtags-mode)) + (map! :map helm-gtags-mode-map + "C-c g a" 'helm-gtags-tags-in-this-function + "C-j" 'helm-gtags-select + "M-." 'helm-gtags-dwim + "M-," 'helm-gtags-pop-stack + "C-c <" 'helm-gtags-previous-history + "C-c >" 'helm-gtags-next-history) + ) + +(use-package! counsel-gtags + :when (featurep! :completion ivy) + :after ivy + :config + (add-hook! (c-mode c++-mode asm-mode) #'counsel-gtags-mode) + (map! :map counsel-gtags-mode-map + "C-c g t" 'counsel-gtags-find-definition + "C-c g r" 'counsel-gtags-find-reference + "C-c g s" 'counsel-gtags-find-symbol + "C-c g f" 'counsel-gtags-find-file + "C-c g c" 'counsel-gtags-create-tags + "C-c g u" 'counsel-gtags-update-tags + "M-," 'counsel-gtags-dwim + "C-c <" 'counsel-gtags-go-backward + "C-c >" 'counsel-gtags-go-forward) + ) + +(use-package! function-args + :init + (setq-default semantic-case-fold t) + :config + (add-hook! (c-mode c++-mode asm-mode) #'function-args-mode) + ) diff --git a/doom-emacs/.config/doom/modules/tools/cc-ide/packages.el b/doom-emacs/.config/doom/modules/tools/cc-ide/packages.el new file mode 100644 index 0000000..f4840d5 --- /dev/null +++ b/doom-emacs/.config/doom/modules/tools/cc-ide/packages.el @@ -0,0 +1,10 @@ +;; -*- no-byte-compile: t; -*- +;;; tools/gtags/packages.el + +(if (featurep! :completion ivy) + (package! counsel-gtags) + (if (featurep! :completion helm) + (package! helm-gtags) + (package! ggtags))) + +(package! function-args) diff --git a/doom-emacs/.config/doom/packages.el b/doom-emacs/.config/doom/packages.el new file mode 100644 index 0000000..7655397 --- /dev/null +++ b/doom-emacs/.config/doom/packages.el @@ -0,0 +1,9 @@ +;; -*- no-byte-compile: t; -*- +;;; ~/repos/dotfiles/doom-emacs/.doom.d/packages.el + +(package! org-super-agenda) + +(package! imenu-list) +(package! imenu-anywhere) + +(package! tide) |
