💥 Remove :feature category

:feature was a "catch-all" category. Many of its modules fit better in
other categories, so they've been moved:

- feature/debugger -> tools/debugger
- feature/evil -> editor/evil
- feature/eval -> tools/eval
- feature/lookup -> tools/lookup
- feature/snippets -> editor/snippets
- feature/file-templates -> editor/file-templates
- feature/workspaces -> ui/workspaces

More potential changes in the future:

- A new :term category for terminal emulation modules (eshell, term and
  vterm).
- A new :os category for modules dedicated to os-specific functionality.
  The :tools macos module would fit here, but so would modules for nixos
  and arch.
- A new :services category for web-service integration, like wakatime,
  twitter, elfeed, gist and pastebin services.
This commit is contained in:
Henrik Lissner 2019-04-21 19:59:44 -04:00
parent 52eed893fe
commit 77e4cc4d58
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
193 changed files with 304 additions and 303 deletions

View file

@ -147,7 +147,7 @@ selection of all minor-modes, active or not."
(defun doom/describe-module (category module)
"Open the documentation of CATEGORY MODULE.
CATEGORY is a keyword and MODULE is a symbol. e.g. :feature and 'evil.
CATEGORY is a keyword and MODULE is a symbol. e.g. :editor and 'evil.
Automatically selects a) the module at point (in private init files), b) the
module derived from a `featurep!' or `require!' call, c) the module that the

View file

@ -17,21 +17,32 @@
(defconst doom-obsolete-modules
'((:feature (version-control (:emacs vc) (:ui vc-gutter))
(spellcheck (:tools flyspell))
(syntax-checker (:tools flycheck)))
(syntax-checker (:tools flycheck))
(evil (:editor evil))
(snippets (:editor snippets))
(file-templates (:editor file-templates))
(workspaces (:ui workspaces))
(eval (:tools eval))
(lookup (:tools lookup))
(debugger (:tools debugger)))
(:tools (rotate-text (:editor rotate-text)))
(:emacs (electric-indent (:emacs electric))
(hideshow (:editor fold)))
(:ui (doom-modeline (:ui modeline)))
(:ui (fci (:ui fill-column)))
(:ui (evil-goggles (:ui ophints))))
"An alist of deprecated modules, mapping deprecated modules to an optional new
location (which will create an alias). Each CAR and CDR is a (CATEGORY .
MODULES). E.g.
(:ui (doom-modeline (:ui modeline))
(fci (:ui fill-column))
(evil-goggles (:ui ophints))))
"A tree alist that maps deprecated modules to their replacement(s).
((:emacs . electric-indent) . (:emacs electric))
((:feature . version-control) (:emacs vc) (:ui . vc-gutter))
Each entry is a three-level tree. For example:
A warning will be put out if these deprecated modules are used.")
(:feature (version-control (:emacs vc) (:ui vc-gutter))
(spellcheck (:tools flyspell))
(syntax-checker (:tools flycheck)))
This marks :feature version-control, :feature spellcheck and :feature
syntax-checker modules obsolete. e.g. If :feature version-control is found in
your `doom!' block, a warning is emitted before replacing it with :emacs vc and
:ui vc-gutter.")
(defvar doom--current-module nil)
(defvar doom--current-flags nil)

View file

@ -43,7 +43,7 @@ It is recommended you don't set specify a font-size, as to inherit `doom-font's
size.")
(defvar doom-unicode-font nil
"Fallback font for unicode glyphs. Is ignored if :feature unicode is active.
"Fallback font for unicode glyphs. Is ignored if :ui unicode is active.
Expects either a `font-spec', font object, a XFT font string or XLFD string. See
`doom-font' for examples.

View file

@ -8,17 +8,7 @@
;; More information about these modules (and what flags they support) can be
;; found in modules/README.org.
(doom! :feature
;;debugger ; FIXME stepping through code, to help you add bugs
eval ; run code, run (also, repls)
(evil +everywhere); come to the dark side, we have cookies
file-templates ; auto-snippets for empty files
(lookup ; helps you navigate your code and documentation
+docsets) ; ...or in Dash docsets locally
snippets ; my elves. They type so I don't have to
workspaces ; tab emulation, persistence & separate workspaces
:completion
(doom! :completion
company ; the ultimate code completion backend
;;helm ; the *other* search engine for love and life
;;ido ; the other *other* search engine...
@ -46,14 +36,18 @@
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
: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
;;lispy ; vim for lisp, for people who dont like vim
multiple-cursors ; editing in many places at once
;;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
:emacs
(dired ; making dired pretty [functional]
@ -68,13 +62,17 @@
: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 ; run code, run (also, repls)
flycheck ; tasing you for every semicolon you forget
;;flyspell ; tasing you for misspelling mispelling
;;gist ; interacting with github gists
(lookup ; helps you navigate your code and documentation
+docsets) ; ...or in Dash docsets locally
;;lsp
;;macos ; MacOS-specific commands
magit ; a git porcelain for Emacs

View file

@ -1,7 +1,6 @@
#+TITLE: Doom Modules
* Table of Contents :TOC:noexport:
- [[#feature][:feature]]
- [[#completion][:completion]]
- [[#ui][:ui]]
- [[#editor][:editor]]
@ -12,19 +11,9 @@
- [[#collab][:collab]]
- [[#config][:config]]
* :feature
Broad modules that bring essential IDE functionality to Emacs.
+ debugger: A (nigh-)universal debugger in Emacs
+ [[file:feature/eval/README.org][eval]]: REPL & code evaluation support for a variety of languages
+ [[file:feature/evil/README.org][evil]] =+everywhere=: Vim in Emacs
+ [[file:feature/file-templates/README.org][file-templates]]: Auto-inserted templates in blank new files
+ [[file:feature/lookup/README.org][lookup]] =+docsets=: Universal jump-to & documentation lookup backend
+ [[file:feature/snippets/README.org][snippets]]: A templating system for Emacs for lazy typers (aka programmers)
+ [[file:feature/workspaces/README.org][workspaces]]: Isolated workspaces
* :completion
Swappable completion modules for quickly narrowing down lists of candidates.
Modules that provide new interfaces or frameworks for completion, including code
completion.
+ [[file:completion/company/README.org][company]] =+auto +childframe=: The ultimate code completion backend
+ helm =+fuzzy +childframe=: *Another* search engine for love and life
@ -53,19 +42,23 @@ Aesthetic modules that affect the Emacs interface or user experience.
+ vc-gutter:
+ vi-tilde-fringe:
+ [[file:ui/window-select/README.org][window-select]]:
+ [[file:ui/workspaces/README.org][workspaces]]: Isolated workspaces
* :editor
Modules that affect and augment your ability to write and edit text.
Modules that affect and augment your ability to manipulate or insert text.
+ [[file:editor/evil/README.org][evil]] =+everywhere=: transforms Emacs into Vim
+ [[file:editor/file-templates/README.org][file-templates]]: Auto-inserted templates in blank new files
+ [[file:editor/fold/README.org][fold]]: universal code folding
+ [[file:editor/format/README.org][format]] =+onsave=:
+ [[file:editor/lispy/README.org][lispy]]:
+ multiple-cursors:
+ [[file:editor/parinfer/README.org][parinfer]]:
+ rotate-text:
+ [[file:editor/snippets/README.org][snippets]]: Snippet expansion for lazy typists
* :emacs
Modules that reconfigure packages or features built into Emacs
Modules that reconfigure or augment packages or features built into Emacs.
+ dired =+ranger +icons=:
+ electric:
@ -78,12 +71,15 @@ Modules that reconfigure packages or features built into Emacs
Small modules that give Emacs access to external tools & services.
+ ansible:
+ debugger: A (nigh-)universal debugger in Emacs
+ docker:
+ [[file:tools/editorconfig/README.org][editorconfig]]:
+ [[file:tools/ein/README.org][ein]]:
+ [[file:tools/eval/README.org][eval]]: REPL & code evaluation support for a variety of languages
+ flycheck: Live error/warning highlights
+ flyspell: Spell checking
+ gist:
+ [[file:tools/lookup/README.org][lookup]] =+docsets=: Universal jump-to & documentation lookup backend
+ [[file:tools/lsp/README.org][lsp]]:
+ macos:
+ magit:

View file

@ -13,7 +13,7 @@
(defun =calendar ()
"Activate (or switch to) `calendar' in its workspace."
(interactive)
(if (featurep! :feature workspaces)
(if (featurep! :ui workspaces)
(progn
(+workspace-switch "Calendar" t)
(doom/switch-to-scratch-buffer)
@ -28,7 +28,7 @@
(defun +calendar/quit ()
"TODO"
(interactive)
(if (featurep! :feature workspaces)
(if (featurep! :ui workspaces)
(+workspace/delete "Calendar")
(doom-kill-matching-buffers "^\\*cfw:")
(set-window-configuration +calendar--wconf)

View file

@ -1,5 +1,5 @@
;; app/email/autoload/evil.el -*- lexical-binding: t; -*-
;;;###if (featurep! :feature evil)
;;;###if (featurep! :editor evil)
;;;###autoload
(defun +email/mark (&optional beg end)

View file

@ -20,7 +20,7 @@
If INHIBIT-WORKSPACE (the universal argument) is non-nil, don't spawn a new
workspace for it."
(interactive "P")
(cond ((and (featurep! :feature workspaces)
(cond ((and (featurep! :ui workspaces)
(+workspace-exists-p +irc--workspace-name))
(+workspace-switch +irc--workspace-name))
((not (+irc-setup-wconf inhibit-workspace))

View file

@ -4,8 +4,8 @@
(defun =notmuch ()
"Activate (or switch to) `notmuch' in its workspace."
(interactive)
(unless (featurep! :feature workspaces)
(user-error ":feature workspaces is required, but disabled"))
(unless (featurep! :ui workspaces)
(user-error ":ui workspaces is required, but disabled"))
(condition-case-unless-debug e
(progn
(+workspace-switch "*MAIL*" t)

View file

@ -57,7 +57,7 @@ easier to scroll through.")
(define-key! elfeed-show-mode-map
[remap next-buffer] #'+rss/next
[remap previous-buffer] #'+rss/previous))
(when (featurep! :feature evil +everywhere)
(when (featurep! :editor evil +everywhere)
(evil-define-key 'normal elfeed-search-mode-map
"q" #'elfeed-kill-buffer
"r" #'elfeed-search-update--force

View file

@ -29,7 +29,7 @@ that works with the feature/popup module."
(interactive "P")
(condition-case _
(progn
(if (and (not arg) (featurep! :feature workspaces))
(if (and (not arg) (featurep! :ui workspaces))
(+workspace/new +twitter-workspace-name)
(setq +twitter--old-wconf (current-window-configuration))
(delete-other-windows)
@ -52,7 +52,7 @@ that works with the feature/popup module."
(when (eq major-mode 'twittering-mode)
(twittering-kill-buffer)
(cond ((one-window-p) (+twitter/quit-all))
((featurep! :feature workspaces)
((featurep! :ui workspaces)
(+workspace/close-window-or-workspace))
((delete-window)))))
@ -60,7 +60,7 @@ that works with the feature/popup module."
(defun +twitter/quit-all ()
"Close all open `twitter-mode' buffers and the associated workspace, if any."
(interactive)
(when (featurep! :feature workspaces)
(when (featurep! :ui workspaces)
(+workspace/delete +twitter-workspace-name))
(when +twitter--old-wconf
(set-window-configuration +twitter--old-wconf)

View file

@ -64,7 +64,7 @@
[remap twittering-kill-buffer] #'+twitter/quit
[remap delete-window] #'+twitter/quit
[remap +workspace/close-window-or-workspace] #'+twitter/quit)
(when (featurep! :feature evil +everywhere)
(when (featurep! :editor evil +everywhere)
(define-key! twittering-mode-map
[remap evil-window-delete] #'+twitter/quit
"f" #'twittering-favorite

View file

@ -18,7 +18,7 @@
company-echo-metadata-frontend))
:config
(add-hook 'company-mode-hook #'+company|init-backends)
(when (featurep! :feature evil)
(when (featurep! :editor evil)
(add-hook 'company-mode-hook #'evil-normalize-keymaps))
(global-company-mode +1))

View file

@ -1,5 +1,5 @@
;;; completion/helm/autoload/evil.el -*- lexical-binding: t; -*-
;;;###if (featurep! :feature evil)
;;;###if (featurep! :editor evil)
;;
;; Project searching

View file

@ -24,8 +24,8 @@
"A version of `helm-buffers-list' with its buffer list restricted to the
current workspace."
(interactive)
(unless (featurep! :feature workspaces)
(user-error "This command requires the :feature workspaces module"))
(unless (featurep! :ui workspaces)
(user-error "This command requires the :ui workspaces module"))
(with-no-warnings
(with-persp-buffer-list nil (helm-buffers-list))))
@ -34,8 +34,8 @@ current workspace."
"A version of `helm-mini' with its buffer list restricted to the current
workspace."
(interactive)
(unless (featurep! :feature workspaces)
(user-error "This command requires the :feature workspaces module"))
(unless (featurep! :ui workspaces)
(user-error "This command requires the :ui workspaces module"))
(with-no-warnings
(with-persp-buffer-list nil (helm-mini))))

View file

@ -79,7 +79,7 @@ be negative.")
;; disable special behavior for left/right, M-left/right keys.
helm-ff-lynx-style-map nil)
(when (featurep! :feature evil +everywhere)
(when (featurep! :editor evil +everywhere)
(setq helm-default-prompt-display-function #'+helm--set-prompt-display))
:init

View file

@ -1,5 +1,5 @@
;; completion/ivy/autoload/evil.el -*- lexical-binding: t; -*-
;;;###if (featurep! :feature evil)
;;;###if (featurep! :editor evil)
;;;###autoload (autoload '+ivy:swiper "completion/ivy/autoload/evil" nil t)
(evil-define-command +ivy:swiper (&optional search)

View file

@ -276,7 +276,7 @@ immediately runs it on the current candidate (ending the ivy session)."
;;
;; Evil key fixes
(map! :when (featurep! :feature evil +everywhere)
(map! :when (featurep! :editor evil +everywhere)
:after ivy
:map (ivy-occur-mode-map ivy-occur-grep-mode-map)
:m "j" #'ivy-occur-next-line

View file

@ -105,7 +105,7 @@
(:prefix ("q" . "quit/restart")
:desc "Quit Emacs" "q" #'kill-emacs
:desc "Save and quit Emacs" "Q" #'save-buffers-kill-terminal
(:when (featurep! :feature workspaces)
(:when (featurep! :ui workspaces)
:desc "Quit Emacs & forget session" "X" #'+workspace/kill-session-and-quit)
:desc "Restart & restore Emacs" "r" #'doom/restart-and-restore
:desc "Restart Emacs" "R" #'doom/restart)

View file

@ -19,7 +19,7 @@
;; Smart tab
:i [tab] (general-predicate-dispatch nil ; fall back to nearest keymap
(and (featurep! :feature snippets)
(and (featurep! :editor snippets)
(bound-and-true-p yas-minor-mode)
(yas-maybe-expand-abbrev-key-filter 'yas-expand))
'yas-expand
@ -165,90 +165,6 @@
;;
;;; Module keybinds
;;; :feature
(map! (:when (featurep! :feature debugger)
:after realgud
:map realgud:shortkey-mode-map
:n "j" #'evil-next-line
:n "k" #'evil-previous-line
:n "h" #'evil-backward-char
:n "l" #'evil-forward-char
:n "c" #'realgud:cmd-continue
:m "n" #'realgud:cmd-next
:m "b" #'realgud:cmd-break
:m "B" #'realgud:cmd-clear)
(:when (featurep! :feature eval)
:g "M-r" #'+eval/buffer
:nv "gr" #'+eval:region
:n "gR" #'+eval/buffer
:v "gR" #'+eval:replace-region)
(:when (featurep! :feature lookup)
:nv "K" #'+lookup/documentation
:nv "gd" #'+lookup/definition
:nv "gD" #'+lookup/references
:nv "gf" #'+lookup/file)
(:when (featurep! :feature snippets)
;; auto-yasnippet
:i [C-tab] #'aya-expand
:nv [C-tab] #'aya-create
;; yasnippet
(:after yasnippet
(:map yas-keymap
"C-e" #'+snippets/goto-end-of-field
"C-a" #'+snippets/goto-start-of-field
[M-right] #'+snippets/goto-end-of-field
[M-left] #'+snippets/goto-start-of-field
[M-backspace] #'+snippets/delete-to-start-of-field
[backspace] #'+snippets/delete-backward-char
[delete] #'+snippets/delete-forward-char-or-field)))
(:when (featurep! :tools flyspell)
;; Keybinds that have no Emacs+evil analogues (i.e. don't exist):
;; zq - mark word at point as good word
;; zw - mark word at point as bad
;; zu{q,w} - undo last marking
;; Keybinds that evil define:
;; z= - correct flyspell word at point
;; ]s - jump to previous spelling error
;; [s - jump to next spelling error
(:map flyspell-mouse-map
"RET" #'flyspell-correct-word-generic
[return] #'flyspell-correct-word-generic
[mouse-1] #'flyspell-correct-word-generic))
(:when (featurep! :tools flycheck)
:m "]e" #'next-error
:m "[e" #'previous-error
(:after flycheck
:map flycheck-error-list-mode-map
:n "C-n" #'flycheck-error-list-next-error
:n "C-p" #'flycheck-error-list-previous-error
:n "j" #'flycheck-error-list-next-error
:n "k" #'flycheck-error-list-previous-error
:n "RET" #'flycheck-error-list-goto-error
:n [return] #'flycheck-error-list-goto-error))
(:when (featurep! :feature workspaces)
:n "gt" #'+workspace/switch-right
:n "gT" #'+workspace/switch-left
:n "]w" #'+workspace/switch-right
:n "[w" #'+workspace/switch-left
:g "M-1" (λ! (+workspace/switch-to 0))
:g "M-2" (λ! (+workspace/switch-to 1))
:g "M-3" (λ! (+workspace/switch-to 2))
:g "M-4" (λ! (+workspace/switch-to 3))
:g "M-5" (λ! (+workspace/switch-to 4))
:g "M-6" (λ! (+workspace/switch-to 5))
:g "M-7" (λ! (+workspace/switch-to 6))
:g "M-8" (λ! (+workspace/switch-to 7))
:g "M-9" (λ! (+workspace/switch-to 8))
:g "M-0" #'+workspace/switch-to-last
:g "M-t" #'+workspace/new
:g "M-T" #'+workspace/display))
;;; :completion
(map! (:when (featurep! :completion company)
:i "C-@" #'+company/complete
@ -400,7 +316,25 @@
(:when (featurep! :ui vc-gutter)
:m "]d" #'git-gutter:next-hunk
:m "[d" #'git-gutter:previous-hunk))
:m "[d" #'git-gutter:previous-hunk)
(:when (featurep! :ui workspaces)
:n "gt" #'+workspace/switch-right
:n "gT" #'+workspace/switch-left
:n "]w" #'+workspace/switch-right
:n "[w" #'+workspace/switch-left
:g "M-1" (λ! (+workspace/switch-to 0))
:g "M-2" (λ! (+workspace/switch-to 1))
:g "M-3" (λ! (+workspace/switch-to 2))
:g "M-4" (λ! (+workspace/switch-to 3))
:g "M-5" (λ! (+workspace/switch-to 4))
:g "M-6" (λ! (+workspace/switch-to 5))
:g "M-7" (λ! (+workspace/switch-to 6))
:g "M-8" (λ! (+workspace/switch-to 7))
:g "M-9" (λ! (+workspace/switch-to 8))
:g "M-0" #'+workspace/switch-to-last
:g "M-t" #'+workspace/new
:g "M-T" #'+workspace/display))
;;; :editor
(map! (:when (featurep! :editor fold)
@ -449,7 +383,22 @@
"C-p" #'evil-multiedit-prev)))
(:when (featurep! :editor rotate-text)
:n "!" #'rotate-text))
:n "!" #'rotate-text)
(:when (featurep! :editor snippets)
;; auto-yasnippet
:i [C-tab] #'aya-expand
:nv [C-tab] #'aya-create
;; yasnippet
(:after yasnippet
(:map yas-keymap
"C-e" #'+snippets/goto-end-of-field
"C-a" #'+snippets/goto-start-of-field
[M-right] #'+snippets/goto-end-of-field
[M-left] #'+snippets/goto-start-of-field
[M-backspace] #'+snippets/delete-to-start-of-field
[backspace] #'+snippets/delete-backward-char
[delete] #'+snippets/delete-forward-char-or-field))))
;;; :emacs
(map! (:when (featurep! :emacs vc)
@ -463,14 +412,49 @@
:n "gb" #'git-timemachine-blame))
;;; :tools
(map! (:when (featurep! :tools magit)
(:after evil-magit
;; fix conflicts with private bindings
:map (magit-status-mode-map magit-revision-mode-map)
"C-j" nil
"C-k" nil)
(:map transient-map
"q" #'transient-quit-one))
(map! (:when (featurep! :tools debugger)
:after realgud
:map realgud:shortkey-mode-map
:n "j" #'evil-next-line
:n "k" #'evil-previous-line
:n "h" #'evil-backward-char
:n "l" #'evil-forward-char
:n "c" #'realgud:cmd-continue
:m "n" #'realgud:cmd-next
:m "b" #'realgud:cmd-break
:m "B" #'realgud:cmd-clear)
(:when (featurep! :tools eval)
:g "M-r" #'+eval/buffer
:nv "gr" #'+eval:region
:n "gR" #'+eval/buffer
:v "gR" #'+eval:replace-region)
(:when (featurep! :tools flyspell)
;; Keybinds that have no Emacs+evil analogues (i.e. don't exist):
;; zq - mark word at point as good word
;; zw - mark word at point as bad
;; zu{q,w} - undo last marking
;; Keybinds that evil define:
;; z= - correct flyspell word at point
;; ]s - jump to previous spelling error
;; [s - jump to next spelling error
(:map flyspell-mouse-map
"RET" #'flyspell-correct-word-generic
[return] #'flyspell-correct-word-generic
[mouse-1] #'flyspell-correct-word-generic))
(:when (featurep! :tools flycheck)
:m "]e" #'next-error
:m "[e" #'previous-error
(:after flycheck
:map flycheck-error-list-mode-map
:n "C-n" #'flycheck-error-list-next-error
:n "C-p" #'flycheck-error-list-previous-error
:n "j" #'flycheck-error-list-next-error
:n "k" #'flycheck-error-list-previous-error
:n "RET" #'flycheck-error-list-goto-error
:n [return] #'flycheck-error-list-goto-error))
(:when (featurep! :tools gist)
:after gist
@ -484,7 +468,22 @@
:n "q" #'kill-this-buffer
:n "s" #'gist-star
:n "S" #'gist-unstar
:n "y" #'gist-print-current-url))
:n "y" #'gist-print-current-url)
(:when (featurep! :tools lookup)
:nv "K" #'+lookup/documentation
:nv "gd" #'+lookup/definition
:nv "gD" #'+lookup/references
:nv "gf" #'+lookup/file)
(:when (featurep! :tools magit)
(:after evil-magit
;; fix conflicts with private bindings
:map (magit-status-mode-map magit-revision-mode-map)
"C-j" nil
"C-k" nil)
(:map transient-map
"q" #'transient-quit-one)))
;;; :lang
(map! (:when (featurep! :lang markdown)
@ -512,7 +511,7 @@
:desc "Find file" "." #'find-file
:desc "Switch buffer" "," #'switch-to-buffer
(:when (featurep! :feature workspaces)
(:when (featurep! :ui workspaces)
:desc "Switch workspace buffer" "," #'persp-switch-to-buffer
:desc "Switch buffer" "<" #'switch-to-buffer)
@ -536,7 +535,7 @@
:desc "Look up online" "o" #'+lookup/online-select
:desc "Search project" "p" #'+default/search-project)
(:when (featurep! :feature workspaces)
(:when (featurep! :ui workspaces)
(:prefix ("TAB" . "workspace")
:desc "Display tab bar" "TAB" #'+workspace/display
:desc "Switch workspace" "." #'+workspace/switch-to
@ -564,10 +563,10 @@
:desc "Toggle narrowing" "-" #'doom/clone-and-narrow-buffer
:desc "Previous buffer" "[" #'previous-buffer
:desc "Next buffer" "]" #'next-buffer
(:when (featurep! :feature workspaces)
(:when (featurep! :ui workspaces)
:desc "Switch workspace buffer" "b" #'persp-switch-to-buffer
:desc "Switch buffer" "B" #'switch-to-buffer)
(:unless (featurep! :feature workspaces)
(:unless (featurep! :ui workspaces)
:desc "Switch buffer" "b" #'switch-to-buffer)
:desc "Kill buffer" "k" #'kill-this-buffer
:desc "Next buffer" "n" #'next-buffer
@ -763,7 +762,7 @@
:desc "Browse remote files" "." #'ssh-deploy-browse-remote-handler
:desc "Detect remote changes" ">" #'ssh-deploy-remote-changes-handler))
(:when (featurep! :feature snippets)
(:when (featurep! :editor snippets)
(:prefix ("s" . "snippets")
:desc "New snippet" "n" #'yas-new-snippet
:desc "Insert snippet" "i" #'yas-insert-snippet
@ -835,7 +834,7 @@ To change these keys see `+default-repeat-keys'."
;;
;;; Universal evil integration
(when (featurep! :feature evil +everywhere)
(when (featurep! :editor evil +everywhere)
;; Have C-u behave similarly to `doom/backward-to-bol-or-indent'.
;; NOTE SPC u replaces C-u as the universal argument.
(map! :gi "C-u" #'doom/backward-kill-to-bol-and-indent

View file

@ -43,7 +43,7 @@ Don't want to use provided one? Then add this to your private module,
#+END_SRC
** I'm not an evil user...
That's fine. All evil configuration is ignored if =:feature evil= is disabled.
That's fine. All evil configuration is ignored if =:editor evil= is disabled.
* Appendix
** Commands

View file

@ -1,6 +1,6 @@
;; -*- no-byte-compile: t; -*-
;;; config/default/packages.el
(unless (featurep! :feature evil)
(unless (featurep! :editor evil)
(package! winum)
(package! expand-region))

View file

@ -1,4 +1,4 @@
;;; feature/evil/+commands.el -*- lexical-binding: t; -*-
;;; editor/evil/+commands.el -*- lexical-binding: t; -*-
(evil-define-operator +evil:open-scratch-buffer (bang)
(interactive "<!>")

View file

@ -1,4 +1,4 @@
;;; feature/evil/+everywhere.el -*- lexical-binding: t; -*-
;;; editor/evil/+everywhere.el -*- lexical-binding: t; -*-
;; We load evil-collection ourselves for these reasons:
;;

View file

@ -137,7 +137,7 @@ And these are text objects added by this module:
** Removing evil-mode
You must do two things to remove Evil:
1. Remove =:feature evil= from =~/.doom.d/init.el=,
1. Remove =:editor evil= from =~/.doom.d/init.el=,
2. Run ~doom refresh~ to clean up lingering dependencies and refresh yuor
autoloads files.
3. [OPTIONAL] You may want to assign new values to ~doom-leader-alt-key~ and
@ -149,7 +149,7 @@ non-evil sessions.
#+end_quote
Evil-specific configuration and keybindings (defined with ~map!~) will be
ignored without =:feature evil= present (and omitted when byte-compiling).
ignored without =:editor evil= present (and omitted when byte-compiling).
Keep in mind that, at the time of this writing, Doom was designed by a vimmer,
for vimmers. Little consideration has been put into designing a keybind scheme

View file

@ -1,4 +1,4 @@
;;; feature/evil/autoload/advice.el -*- lexical-binding: t; -*-
;;; editor/evil/autoload/advice.el -*- lexical-binding: t; -*-
(defun +evil--insert-newline (&optional above _noextranewline)
(let ((pos (save-excursion (beginning-of-line-text) (point)))
@ -148,7 +148,7 @@ more information on modifiers."
path file-name t t 1))))
(replace-regexp-in-string regexp "\\1" file-name t)))
;;;###autoload (autoload '+evil*window-split "feature/evil/autoload/advice" nil t)
;;;###autoload (autoload '+evil*window-split "editor/evil/autoload/advice" nil t)
(evil-define-command +evil*window-split (&optional count file)
"Same as `evil-window-split', but focuses (and recenters) the new split."
:repeat nil
@ -164,7 +164,7 @@ more information on modifiers."
(balance-windows (window-parent)))
(if file (evil-edit file)))
;;;###autoload (autoload '+evil*window-vsplit "feature/evil/autoload/advice" nil t)
;;;###autoload (autoload '+evil*window-vsplit "editor/evil/autoload/advice" nil t)
(evil-define-command +evil*window-vsplit (&optional count file)
"Same as `evil-window-vsplit', but focuses (and recenters) the new split."
:repeat nil

View file

@ -1,4 +1,4 @@
;;; feature/evil/autoload/embrace.el -*- lexical-binding: t; -*-
;;; editor/evil/autoload/embrace.el -*- lexical-binding: t; -*-
;;;###autoload
(defun +evil--embrace-get-pair (char)

View file

@ -1,5 +1,5 @@
;; feature/evil/autoload/evil.el -*- lexical-binding: t; -*-
;;;###if (featurep! :feature evil)
;; editor/evil/autoload/evil.el -*- lexical-binding: t; -*-
;;;###if (featurep! :editor evil)
;;;###autodef
(defun set-evil-initial-state! (modes state)
@ -113,7 +113,7 @@ integration."
;;
;;; Evil commands/operators
;;;###autoload (autoload '+evil:apply-macro "feature/evil/autoload/evil" nil t)
;;;###autoload (autoload '+evil:apply-macro "editor/evil/autoload/evil" nil t)
(evil-define-operator +evil:apply-macro (beg end)
"Apply macro to each line."
:move-point nil
@ -139,14 +139,14 @@ integration."
(apply-macro-to-region-lines beg end macro)
(message "Applied macro in %c register %d times...DONE" register lines)))))
;;;###autoload (autoload '+evil:retab "feature/evil/autoload/evil" nil t)
;;;###autoload (autoload '+evil:retab "editor/evil/autoload/evil" nil t)
(evil-define-operator +evil:retab (&optional beg end)
"Wrapper around `doom/retab'."
:motion nil :move-point nil :type line
(interactive "<r>")
(doom/retab beg end))
;;;###autoload (autoload '+evil:narrow-buffer "feature/evil/autoload/evil" nil t)
;;;###autoload (autoload '+evil:narrow-buffer "editor/evil/autoload/evil" nil t)
(evil-define-operator +evil:narrow-buffer (beg end &optional bang)
"Wrapper around `doom/clone-and-narrow-buffer'."
:move-point nil
@ -219,7 +219,7 @@ integration."
(let ((result (car-safe (evil-delimited-arguments arg 2))))
(+evil--ex-buffer-match result hl-name nil (point-min) (point-max))))))
;;;###autoload (autoload '+evil:align "feature/evil/autoload/evil" nil t)
;;;###autoload (autoload '+evil:align "editor/evil/autoload/evil" nil t)
(evil-define-operator +evil:align (beg end pattern &optional bang)
"Ex interface to `align-regexp'. PATTERN is a vim-style regexp. If BANG,
repeat the alignment for all matches (otherwise just the first match on each
@ -230,7 +230,7 @@ line)."
(concat "\\(\\s-*\\)" (evil-transform-vim-style-regexp pattern))
1 1 bang))
;;;###autoload (autoload '+evil:align-right "feature/evil/autoload/evil" nil t)
;;;###autoload (autoload '+evil:align-right "editor/evil/autoload/evil" nil t)
(evil-define-operator +evil:align-right (beg end pattern &optional bang)
"Like `+evil:align', except alignments are right-justified. PATTERN is a
vim-style regexp. If BANG, repeat the alignment for all matches (otherwise just
@ -245,7 +245,7 @@ the first match on each line)."
;;
;;; wgrep
;;;###autoload (autoload '+evil-delete "feature/evil/autoload/evil" nil t)
;;;###autoload (autoload '+evil-delete "editor/evil/autoload/evil" nil t)
(evil-define-operator +evil-delete (beg end type register yank-handler)
"A wrapper around `evil-delete' for `wgrep' buffers that will invoke
`wgrep-mark-deletion' on lines you try to delete."

View file

@ -1,6 +1,6 @@
;;; feature/evil/autoload/files.el -*- lexical-binding: t; -*-
;;; editor/evil/autoload/files.el -*- lexical-binding: t; -*-
;;;###autoload (autoload '+evil:delete-this-file "feature/evil/autoload/files" nil t)
;;;###autoload (autoload '+evil:delete-this-file "editor/evil/autoload/files" nil t)
(evil-define-command +evil:delete-this-file (&optional filename force-p)
"Delete FILENAME (defaults to the file associated with current buffer) and
kills the buffer. If FORCE-P, force the deletion (don't ask for confirmation)."
@ -9,7 +9,7 @@ kills the buffer. If FORCE-P, force the deletion (don't ask for confirmation)."
(doom/delete-this-file (or filename (file-truename buffer-file-name))
force-p))
;;;###autoload (autoload '+evil:move-this-file "feature/evil/autoload/files" nil t)
;;;###autoload (autoload '+evil:move-this-file "editor/evil/autoload/files" nil t)
(evil-define-command +evil:move-this-file (new-path &optional force-p)
"Move current buffer's file to NEW-PATH. Replaces %, # and other vim-esque
filename modifiers (see `+evil*ex-replace-special-filenames'). If FORCE-P,
@ -20,7 +20,7 @@ overwrite the destination file if it exists, without confirmation."
(user-error "No new path was specified"))
(doom/move-this-file new-path force-p))
;;;###autoload (autoload '+evil:copy-this-file "feature/evil/autoload/files" nil nil)
;;;###autoload (autoload '+evil:copy-this-file "editor/evil/autoload/files" nil nil)
(evil-define-command +evil:copy-this-file (new-path &optional force-p)
"Copy current buffer's file to NEW-PATH. Replaces %, # and other vim-esque
filename modifiers (see `+evil*ex-replace-special-filenames'). If FORCE-P,

View file

@ -1,4 +1,4 @@
;;; feature/evil/config.el -*- lexical-binding: t; -*-
;;; editor/evil/config.el -*- lexical-binding: t; -*-
;; I'm a vimmer at heart. Its modal philosophy suits me better, and this module
;; strives to make Emacs a much better vim than vim was.

View file

@ -1,5 +1,5 @@
;; -*- no-byte-compile: t; -*-
;;; feature/evil/packages.el
;;; editor/evil/packages.el
(package! evil)
(package! evil-args)

View file

@ -1,10 +1,10 @@
;; -*- no-byte-compile: t; -*-
;;; feature/evil/test/test-evil.el
;;; editor/evil/test/test-evil.el
(describe "feature/evil"
:var (resv project-root)
(before-all
(require! :feature evil)
(require! :editor evil)
(require 'evil)
(load! "../autoload/evil"))
(after-all

View file

@ -1,4 +1,4 @@
#+TITLE: feature/file-templates
#+TITLE: editor/file-templates
#+DATE: February 11, 2017
#+SINCE: v2.0
#+STARTUP: inlineimages

View file

@ -1,4 +1,4 @@
;;; feature/file-templates/autoload.el -*- lexical-binding: t; -*-
;;; editor/file-templates/autoload.el -*- lexical-binding: t; -*-
(defun +file-templates--set (pred plist)
(if (null (car-safe plist))

View file

@ -1,4 +1,4 @@
;;; feature/file-templates/config.el -*- lexical-binding: t; -*-
;;; editor/file-templates/config.el -*- lexical-binding: t; -*-
(defvar +file-templates-dir
(expand-file-name "templates/" (file-name-directory load-file-name))
@ -122,7 +122,7 @@ must be non-read-only, empty, and there must be a rule in
;; Bootstrap
(after! yasnippet
(if (featurep! :feature snippets)
(if (featurep! :editor snippets)
(add-to-list 'yas-snippet-dirs '+file-templates-dir 'append #'eq)
(setq yas-prompt-functions (delq #'yas-dropdown-prompt yas-prompt-functions)
yas-snippet-dirs '(+file-templates-dir))

View file

@ -1,5 +1,5 @@
;; -*- no-byte-compile: t; -*-
;;; feature/file-templates/packages.el
;;; editor/file-templates/packages.el
(package! yasnippet)

Some files were not shown because too many files have changed in this diff Show more