aboutsummaryrefslogtreecommitdiffstats
path: root/doom-emacs/.config/doom
diff options
context:
space:
mode:
Diffstat (limited to 'doom-emacs/.config/doom')
-rw-r--r--doom-emacs/.config/doom/.projectile0
-rw-r--r--doom-emacs/.config/doom/config.el94
-rw-r--r--doom-emacs/.config/doom/config.org129
-rw-r--r--doom-emacs/.config/doom/init.el182
-rw-r--r--doom-emacs/.config/doom/modules/tools/cc-ide/config.el61
-rw-r--r--doom-emacs/.config/doom/modules/tools/cc-ide/packages.el10
-rw-r--r--doom-emacs/.config/doom/packages.el9
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)