💥 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:
parent
52eed893fe
commit
77e4cc4d58
193 changed files with 304 additions and 303 deletions
|
@ -147,7 +147,7 @@ selection of all minor-modes, active or not."
|
||||||
(defun doom/describe-module (category module)
|
(defun doom/describe-module (category module)
|
||||||
"Open the documentation of 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
|
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
|
module derived from a `featurep!' or `require!' call, c) the module that the
|
||||||
|
|
|
@ -17,21 +17,32 @@
|
||||||
(defconst doom-obsolete-modules
|
(defconst doom-obsolete-modules
|
||||||
'((:feature (version-control (:emacs vc) (:ui vc-gutter))
|
'((:feature (version-control (:emacs vc) (:ui vc-gutter))
|
||||||
(spellcheck (:tools flyspell))
|
(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)))
|
(:tools (rotate-text (:editor rotate-text)))
|
||||||
(:emacs (electric-indent (:emacs electric))
|
(:emacs (electric-indent (:emacs electric))
|
||||||
(hideshow (:editor fold)))
|
(hideshow (:editor fold)))
|
||||||
(:ui (doom-modeline (:ui modeline)))
|
(:ui (doom-modeline (:ui modeline))
|
||||||
(:ui (fci (:ui fill-column)))
|
(fci (:ui fill-column))
|
||||||
(:ui (evil-goggles (:ui ophints))))
|
(evil-goggles (:ui ophints))))
|
||||||
"An alist of deprecated modules, mapping deprecated modules to an optional new
|
"A tree alist that maps deprecated modules to their replacement(s).
|
||||||
location (which will create an alias). Each CAR and CDR is a (CATEGORY .
|
|
||||||
MODULES). E.g.
|
|
||||||
|
|
||||||
((:emacs . electric-indent) . (:emacs electric))
|
Each entry is a three-level tree. For example:
|
||||||
((:feature . version-control) (:emacs vc) (:ui . vc-gutter))
|
|
||||||
|
|
||||||
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-module nil)
|
||||||
(defvar doom--current-flags nil)
|
(defvar doom--current-flags nil)
|
||||||
|
|
|
@ -43,7 +43,7 @@ It is recommended you don't set specify a font-size, as to inherit `doom-font's
|
||||||
size.")
|
size.")
|
||||||
|
|
||||||
(defvar doom-unicode-font nil
|
(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
|
Expects either a `font-spec', font object, a XFT font string or XLFD string. See
|
||||||
`doom-font' for examples.
|
`doom-font' for examples.
|
||||||
|
|
|
@ -8,17 +8,7 @@
|
||||||
;; More information about these modules (and what flags they support) can be
|
;; More information about these modules (and what flags they support) can be
|
||||||
;; found in modules/README.org.
|
;; found in modules/README.org.
|
||||||
|
|
||||||
(doom! :feature
|
(doom! :completion
|
||||||
;;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
|
|
||||||
company ; the ultimate code completion backend
|
company ; the ultimate code completion backend
|
||||||
;;helm ; the *other* search engine for love and life
|
;;helm ; the *other* search engine for love and life
|
||||||
;;ido ; the other *other* search engine...
|
;;ido ; the other *other* search engine...
|
||||||
|
@ -46,14 +36,18 @@
|
||||||
vc-gutter ; vcs diff in the fringe
|
vc-gutter ; vcs diff in the fringe
|
||||||
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
||||||
window-select ; visually switch windows
|
window-select ; visually switch windows
|
||||||
|
workspaces ; tab emulation, persistence & separate workspaces
|
||||||
|
|
||||||
:editor
|
:editor
|
||||||
|
(evil +everywhere); come to the dark side, we have cookies
|
||||||
|
file-templates ; auto-snippets for empty files
|
||||||
fold ; (nigh) universal code folding
|
fold ; (nigh) universal code folding
|
||||||
;;(format +onsave) ; automated prettiness
|
;;(format +onsave) ; automated prettiness
|
||||||
;;lispy ; vim for lisp, for people who dont like vim
|
;;lispy ; vim for lisp, for people who dont like vim
|
||||||
multiple-cursors ; editing in many places at once
|
multiple-cursors ; editing in many places at once
|
||||||
;;parinfer ; turn lisp into python, sort of
|
;;parinfer ; turn lisp into python, sort of
|
||||||
rotate-text ; cycle region at point between text candidates
|
rotate-text ; cycle region at point between text candidates
|
||||||
|
snippets ; my elves. They type so I don't have to
|
||||||
|
|
||||||
:emacs
|
:emacs
|
||||||
(dired ; making dired pretty [functional]
|
(dired ; making dired pretty [functional]
|
||||||
|
@ -68,13 +62,17 @@
|
||||||
|
|
||||||
:tools
|
:tools
|
||||||
;;ansible
|
;;ansible
|
||||||
|
;;debugger ; FIXME stepping through code, to help you add bugs
|
||||||
;;direnv
|
;;direnv
|
||||||
;;docker
|
;;docker
|
||||||
;;editorconfig ; let someone else argue about tabs vs spaces
|
;;editorconfig ; let someone else argue about tabs vs spaces
|
||||||
;;ein ; tame Jupyter notebooks with emacs
|
;;ein ; tame Jupyter notebooks with emacs
|
||||||
|
eval ; run code, run (also, repls)
|
||||||
flycheck ; tasing you for every semicolon you forget
|
flycheck ; tasing you for every semicolon you forget
|
||||||
;;flyspell ; tasing you for misspelling mispelling
|
;;flyspell ; tasing you for misspelling mispelling
|
||||||
;;gist ; interacting with github gists
|
;;gist ; interacting with github gists
|
||||||
|
(lookup ; helps you navigate your code and documentation
|
||||||
|
+docsets) ; ...or in Dash docsets locally
|
||||||
;;lsp
|
;;lsp
|
||||||
;;macos ; MacOS-specific commands
|
;;macos ; MacOS-specific commands
|
||||||
magit ; a git porcelain for Emacs
|
magit ; a git porcelain for Emacs
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
#+TITLE: Doom Modules
|
#+TITLE: Doom Modules
|
||||||
|
|
||||||
* Table of Contents :TOC:noexport:
|
* Table of Contents :TOC:noexport:
|
||||||
- [[#feature][:feature]]
|
|
||||||
- [[#completion][:completion]]
|
- [[#completion][:completion]]
|
||||||
- [[#ui][:ui]]
|
- [[#ui][:ui]]
|
||||||
- [[#editor][:editor]]
|
- [[#editor][:editor]]
|
||||||
|
@ -12,19 +11,9 @@
|
||||||
- [[#collab][:collab]]
|
- [[#collab][:collab]]
|
||||||
- [[#config][:config]]
|
- [[#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
|
* :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
|
+ [[file:completion/company/README.org][company]] =+auto +childframe=: The ultimate code completion backend
|
||||||
+ helm =+fuzzy +childframe=: *Another* search engine for love and life
|
+ 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:
|
+ vc-gutter:
|
||||||
+ vi-tilde-fringe:
|
+ vi-tilde-fringe:
|
||||||
+ [[file:ui/window-select/README.org][window-select]]:
|
+ [[file:ui/window-select/README.org][window-select]]:
|
||||||
|
+ [[file:ui/workspaces/README.org][workspaces]]: Isolated workspaces
|
||||||
|
|
||||||
* :editor
|
* :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/fold/README.org][fold]]: universal code folding
|
||||||
+ [[file:editor/format/README.org][format]] =+onsave=:
|
+ [[file:editor/format/README.org][format]] =+onsave=:
|
||||||
+ [[file:editor/lispy/README.org][lispy]]:
|
+ [[file:editor/lispy/README.org][lispy]]:
|
||||||
+ multiple-cursors:
|
+ multiple-cursors:
|
||||||
+ [[file:editor/parinfer/README.org][parinfer]]:
|
+ [[file:editor/parinfer/README.org][parinfer]]:
|
||||||
+ rotate-text:
|
+ rotate-text:
|
||||||
|
+ [[file:editor/snippets/README.org][snippets]]: Snippet expansion for lazy typists
|
||||||
|
|
||||||
* :emacs
|
* :emacs
|
||||||
Modules that reconfigure packages or features built into Emacs
|
Modules that reconfigure or augment packages or features built into Emacs.
|
||||||
|
|
||||||
+ dired =+ranger +icons=:
|
+ dired =+ranger +icons=:
|
||||||
+ electric:
|
+ electric:
|
||||||
|
@ -78,12 +71,15 @@ Modules that reconfigure packages or features built into Emacs
|
||||||
Small modules that give Emacs access to external tools & services.
|
Small modules that give Emacs access to external tools & services.
|
||||||
|
|
||||||
+ ansible:
|
+ ansible:
|
||||||
|
+ debugger: A (nigh-)universal debugger in Emacs
|
||||||
+ docker:
|
+ docker:
|
||||||
+ [[file:tools/editorconfig/README.org][editorconfig]]:
|
+ [[file:tools/editorconfig/README.org][editorconfig]]:
|
||||||
+ [[file:tools/ein/README.org][ein]]:
|
+ [[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
|
+ flycheck: Live error/warning highlights
|
||||||
+ flyspell: Spell checking
|
+ flyspell: Spell checking
|
||||||
+ gist:
|
+ gist:
|
||||||
|
+ [[file:tools/lookup/README.org][lookup]] =+docsets=: Universal jump-to & documentation lookup backend
|
||||||
+ [[file:tools/lsp/README.org][lsp]]:
|
+ [[file:tools/lsp/README.org][lsp]]:
|
||||||
+ macos:
|
+ macos:
|
||||||
+ magit:
|
+ magit:
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
(defun =calendar ()
|
(defun =calendar ()
|
||||||
"Activate (or switch to) `calendar' in its workspace."
|
"Activate (or switch to) `calendar' in its workspace."
|
||||||
(interactive)
|
(interactive)
|
||||||
(if (featurep! :feature workspaces)
|
(if (featurep! :ui workspaces)
|
||||||
(progn
|
(progn
|
||||||
(+workspace-switch "Calendar" t)
|
(+workspace-switch "Calendar" t)
|
||||||
(doom/switch-to-scratch-buffer)
|
(doom/switch-to-scratch-buffer)
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
(defun +calendar/quit ()
|
(defun +calendar/quit ()
|
||||||
"TODO"
|
"TODO"
|
||||||
(interactive)
|
(interactive)
|
||||||
(if (featurep! :feature workspaces)
|
(if (featurep! :ui workspaces)
|
||||||
(+workspace/delete "Calendar")
|
(+workspace/delete "Calendar")
|
||||||
(doom-kill-matching-buffers "^\\*cfw:")
|
(doom-kill-matching-buffers "^\\*cfw:")
|
||||||
(set-window-configuration +calendar--wconf)
|
(set-window-configuration +calendar--wconf)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;; app/email/autoload/evil.el -*- lexical-binding: t; -*-
|
;; app/email/autoload/evil.el -*- lexical-binding: t; -*-
|
||||||
;;;###if (featurep! :feature evil)
|
;;;###if (featurep! :editor evil)
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +email/mark (&optional beg end)
|
(defun +email/mark (&optional beg end)
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
If INHIBIT-WORKSPACE (the universal argument) is non-nil, don't spawn a new
|
If INHIBIT-WORKSPACE (the universal argument) is non-nil, don't spawn a new
|
||||||
workspace for it."
|
workspace for it."
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(cond ((and (featurep! :feature workspaces)
|
(cond ((and (featurep! :ui workspaces)
|
||||||
(+workspace-exists-p +irc--workspace-name))
|
(+workspace-exists-p +irc--workspace-name))
|
||||||
(+workspace-switch +irc--workspace-name))
|
(+workspace-switch +irc--workspace-name))
|
||||||
((not (+irc-setup-wconf inhibit-workspace))
|
((not (+irc-setup-wconf inhibit-workspace))
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
(defun =notmuch ()
|
(defun =notmuch ()
|
||||||
"Activate (or switch to) `notmuch' in its workspace."
|
"Activate (or switch to) `notmuch' in its workspace."
|
||||||
(interactive)
|
(interactive)
|
||||||
(unless (featurep! :feature workspaces)
|
(unless (featurep! :ui workspaces)
|
||||||
(user-error ":feature workspaces is required, but disabled"))
|
(user-error ":ui workspaces is required, but disabled"))
|
||||||
(condition-case-unless-debug e
|
(condition-case-unless-debug e
|
||||||
(progn
|
(progn
|
||||||
(+workspace-switch "*MAIL*" t)
|
(+workspace-switch "*MAIL*" t)
|
||||||
|
|
|
@ -57,7 +57,7 @@ easier to scroll through.")
|
||||||
(define-key! elfeed-show-mode-map
|
(define-key! elfeed-show-mode-map
|
||||||
[remap next-buffer] #'+rss/next
|
[remap next-buffer] #'+rss/next
|
||||||
[remap previous-buffer] #'+rss/previous))
|
[remap previous-buffer] #'+rss/previous))
|
||||||
(when (featurep! :feature evil +everywhere)
|
(when (featurep! :editor evil +everywhere)
|
||||||
(evil-define-key 'normal elfeed-search-mode-map
|
(evil-define-key 'normal elfeed-search-mode-map
|
||||||
"q" #'elfeed-kill-buffer
|
"q" #'elfeed-kill-buffer
|
||||||
"r" #'elfeed-search-update--force
|
"r" #'elfeed-search-update--force
|
||||||
|
|
|
@ -29,7 +29,7 @@ that works with the feature/popup module."
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
(condition-case _
|
(condition-case _
|
||||||
(progn
|
(progn
|
||||||
(if (and (not arg) (featurep! :feature workspaces))
|
(if (and (not arg) (featurep! :ui workspaces))
|
||||||
(+workspace/new +twitter-workspace-name)
|
(+workspace/new +twitter-workspace-name)
|
||||||
(setq +twitter--old-wconf (current-window-configuration))
|
(setq +twitter--old-wconf (current-window-configuration))
|
||||||
(delete-other-windows)
|
(delete-other-windows)
|
||||||
|
@ -52,7 +52,7 @@ that works with the feature/popup module."
|
||||||
(when (eq major-mode 'twittering-mode)
|
(when (eq major-mode 'twittering-mode)
|
||||||
(twittering-kill-buffer)
|
(twittering-kill-buffer)
|
||||||
(cond ((one-window-p) (+twitter/quit-all))
|
(cond ((one-window-p) (+twitter/quit-all))
|
||||||
((featurep! :feature workspaces)
|
((featurep! :ui workspaces)
|
||||||
(+workspace/close-window-or-workspace))
|
(+workspace/close-window-or-workspace))
|
||||||
((delete-window)))))
|
((delete-window)))))
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ that works with the feature/popup module."
|
||||||
(defun +twitter/quit-all ()
|
(defun +twitter/quit-all ()
|
||||||
"Close all open `twitter-mode' buffers and the associated workspace, if any."
|
"Close all open `twitter-mode' buffers and the associated workspace, if any."
|
||||||
(interactive)
|
(interactive)
|
||||||
(when (featurep! :feature workspaces)
|
(when (featurep! :ui workspaces)
|
||||||
(+workspace/delete +twitter-workspace-name))
|
(+workspace/delete +twitter-workspace-name))
|
||||||
(when +twitter--old-wconf
|
(when +twitter--old-wconf
|
||||||
(set-window-configuration +twitter--old-wconf)
|
(set-window-configuration +twitter--old-wconf)
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
[remap twittering-kill-buffer] #'+twitter/quit
|
[remap twittering-kill-buffer] #'+twitter/quit
|
||||||
[remap delete-window] #'+twitter/quit
|
[remap delete-window] #'+twitter/quit
|
||||||
[remap +workspace/close-window-or-workspace] #'+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
|
(define-key! twittering-mode-map
|
||||||
[remap evil-window-delete] #'+twitter/quit
|
[remap evil-window-delete] #'+twitter/quit
|
||||||
"f" #'twittering-favorite
|
"f" #'twittering-favorite
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
company-echo-metadata-frontend))
|
company-echo-metadata-frontend))
|
||||||
:config
|
:config
|
||||||
(add-hook 'company-mode-hook #'+company|init-backends)
|
(add-hook 'company-mode-hook #'+company|init-backends)
|
||||||
(when (featurep! :feature evil)
|
(when (featurep! :editor evil)
|
||||||
(add-hook 'company-mode-hook #'evil-normalize-keymaps))
|
(add-hook 'company-mode-hook #'evil-normalize-keymaps))
|
||||||
(global-company-mode +1))
|
(global-company-mode +1))
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; completion/helm/autoload/evil.el -*- lexical-binding: t; -*-
|
;;; completion/helm/autoload/evil.el -*- lexical-binding: t; -*-
|
||||||
;;;###if (featurep! :feature evil)
|
;;;###if (featurep! :editor evil)
|
||||||
|
|
||||||
;;
|
;;
|
||||||
;; Project searching
|
;; Project searching
|
||||||
|
|
|
@ -24,8 +24,8 @@
|
||||||
"A version of `helm-buffers-list' with its buffer list restricted to the
|
"A version of `helm-buffers-list' with its buffer list restricted to the
|
||||||
current workspace."
|
current workspace."
|
||||||
(interactive)
|
(interactive)
|
||||||
(unless (featurep! :feature workspaces)
|
(unless (featurep! :ui workspaces)
|
||||||
(user-error "This command requires the :feature workspaces module"))
|
(user-error "This command requires the :ui workspaces module"))
|
||||||
(with-no-warnings
|
(with-no-warnings
|
||||||
(with-persp-buffer-list nil (helm-buffers-list))))
|
(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
|
"A version of `helm-mini' with its buffer list restricted to the current
|
||||||
workspace."
|
workspace."
|
||||||
(interactive)
|
(interactive)
|
||||||
(unless (featurep! :feature workspaces)
|
(unless (featurep! :ui workspaces)
|
||||||
(user-error "This command requires the :feature workspaces module"))
|
(user-error "This command requires the :ui workspaces module"))
|
||||||
(with-no-warnings
|
(with-no-warnings
|
||||||
(with-persp-buffer-list nil (helm-mini))))
|
(with-persp-buffer-list nil (helm-mini))))
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ be negative.")
|
||||||
;; disable special behavior for left/right, M-left/right keys.
|
;; disable special behavior for left/right, M-left/right keys.
|
||||||
helm-ff-lynx-style-map nil)
|
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))
|
(setq helm-default-prompt-display-function #'+helm--set-prompt-display))
|
||||||
|
|
||||||
:init
|
:init
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;; completion/ivy/autoload/evil.el -*- lexical-binding: t; -*-
|
;; 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)
|
;;;###autoload (autoload '+ivy:swiper "completion/ivy/autoload/evil" nil t)
|
||||||
(evil-define-command +ivy:swiper (&optional search)
|
(evil-define-command +ivy:swiper (&optional search)
|
||||||
|
|
|
@ -276,7 +276,7 @@ immediately runs it on the current candidate (ending the ivy session)."
|
||||||
;;
|
;;
|
||||||
;; Evil key fixes
|
;; Evil key fixes
|
||||||
|
|
||||||
(map! :when (featurep! :feature evil +everywhere)
|
(map! :when (featurep! :editor evil +everywhere)
|
||||||
:after ivy
|
:after ivy
|
||||||
:map (ivy-occur-mode-map ivy-occur-grep-mode-map)
|
:map (ivy-occur-mode-map ivy-occur-grep-mode-map)
|
||||||
:m "j" #'ivy-occur-next-line
|
:m "j" #'ivy-occur-next-line
|
||||||
|
|
|
@ -105,7 +105,7 @@
|
||||||
(:prefix ("q" . "quit/restart")
|
(:prefix ("q" . "quit/restart")
|
||||||
:desc "Quit Emacs" "q" #'kill-emacs
|
:desc "Quit Emacs" "q" #'kill-emacs
|
||||||
:desc "Save and quit Emacs" "Q" #'save-buffers-kill-terminal
|
: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 "Quit Emacs & forget session" "X" #'+workspace/kill-session-and-quit)
|
||||||
:desc "Restart & restore Emacs" "r" #'doom/restart-and-restore
|
:desc "Restart & restore Emacs" "r" #'doom/restart-and-restore
|
||||||
:desc "Restart Emacs" "R" #'doom/restart)
|
:desc "Restart Emacs" "R" #'doom/restart)
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
;; Smart tab
|
;; Smart tab
|
||||||
:i [tab] (general-predicate-dispatch nil ; fall back to nearest keymap
|
: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)
|
(bound-and-true-p yas-minor-mode)
|
||||||
(yas-maybe-expand-abbrev-key-filter 'yas-expand))
|
(yas-maybe-expand-abbrev-key-filter 'yas-expand))
|
||||||
'yas-expand
|
'yas-expand
|
||||||
|
@ -165,90 +165,6 @@
|
||||||
;;
|
;;
|
||||||
;;; Module keybinds
|
;;; 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
|
;;; :completion
|
||||||
(map! (:when (featurep! :completion company)
|
(map! (:when (featurep! :completion company)
|
||||||
:i "C-@" #'+company/complete
|
:i "C-@" #'+company/complete
|
||||||
|
@ -400,7 +316,25 @@
|
||||||
|
|
||||||
(:when (featurep! :ui vc-gutter)
|
(:when (featurep! :ui vc-gutter)
|
||||||
:m "]d" #'git-gutter:next-hunk
|
: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
|
;;; :editor
|
||||||
(map! (:when (featurep! :editor fold)
|
(map! (:when (featurep! :editor fold)
|
||||||
|
@ -449,7 +383,22 @@
|
||||||
"C-p" #'evil-multiedit-prev)))
|
"C-p" #'evil-multiedit-prev)))
|
||||||
|
|
||||||
(:when (featurep! :editor rotate-text)
|
(: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
|
;;; :emacs
|
||||||
(map! (:when (featurep! :emacs vc)
|
(map! (:when (featurep! :emacs vc)
|
||||||
|
@ -463,14 +412,49 @@
|
||||||
:n "gb" #'git-timemachine-blame))
|
:n "gb" #'git-timemachine-blame))
|
||||||
|
|
||||||
;;; :tools
|
;;; :tools
|
||||||
(map! (:when (featurep! :tools magit)
|
(map! (:when (featurep! :tools debugger)
|
||||||
(:after evil-magit
|
:after realgud
|
||||||
;; fix conflicts with private bindings
|
:map realgud:shortkey-mode-map
|
||||||
:map (magit-status-mode-map magit-revision-mode-map)
|
:n "j" #'evil-next-line
|
||||||
"C-j" nil
|
:n "k" #'evil-previous-line
|
||||||
"C-k" nil)
|
:n "h" #'evil-backward-char
|
||||||
(:map transient-map
|
:n "l" #'evil-forward-char
|
||||||
"q" #'transient-quit-one))
|
: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)
|
(:when (featurep! :tools gist)
|
||||||
:after gist
|
:after gist
|
||||||
|
@ -484,7 +468,22 @@
|
||||||
:n "q" #'kill-this-buffer
|
:n "q" #'kill-this-buffer
|
||||||
:n "s" #'gist-star
|
:n "s" #'gist-star
|
||||||
:n "S" #'gist-unstar
|
: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
|
;;; :lang
|
||||||
(map! (:when (featurep! :lang markdown)
|
(map! (:when (featurep! :lang markdown)
|
||||||
|
@ -512,7 +511,7 @@
|
||||||
:desc "Find file" "." #'find-file
|
:desc "Find file" "." #'find-file
|
||||||
|
|
||||||
:desc "Switch buffer" "," #'switch-to-buffer
|
:desc "Switch buffer" "," #'switch-to-buffer
|
||||||
(:when (featurep! :feature workspaces)
|
(:when (featurep! :ui workspaces)
|
||||||
:desc "Switch workspace buffer" "," #'persp-switch-to-buffer
|
:desc "Switch workspace buffer" "," #'persp-switch-to-buffer
|
||||||
:desc "Switch buffer" "<" #'switch-to-buffer)
|
:desc "Switch buffer" "<" #'switch-to-buffer)
|
||||||
|
|
||||||
|
@ -536,7 +535,7 @@
|
||||||
:desc "Look up online" "o" #'+lookup/online-select
|
:desc "Look up online" "o" #'+lookup/online-select
|
||||||
:desc "Search project" "p" #'+default/search-project)
|
:desc "Search project" "p" #'+default/search-project)
|
||||||
|
|
||||||
(:when (featurep! :feature workspaces)
|
(:when (featurep! :ui workspaces)
|
||||||
(:prefix ("TAB" . "workspace")
|
(:prefix ("TAB" . "workspace")
|
||||||
:desc "Display tab bar" "TAB" #'+workspace/display
|
:desc "Display tab bar" "TAB" #'+workspace/display
|
||||||
:desc "Switch workspace" "." #'+workspace/switch-to
|
:desc "Switch workspace" "." #'+workspace/switch-to
|
||||||
|
@ -564,10 +563,10 @@
|
||||||
:desc "Toggle narrowing" "-" #'doom/clone-and-narrow-buffer
|
:desc "Toggle narrowing" "-" #'doom/clone-and-narrow-buffer
|
||||||
:desc "Previous buffer" "[" #'previous-buffer
|
:desc "Previous buffer" "[" #'previous-buffer
|
||||||
:desc "Next buffer" "]" #'next-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 workspace buffer" "b" #'persp-switch-to-buffer
|
||||||
:desc "Switch buffer" "B" #'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 "Switch buffer" "b" #'switch-to-buffer)
|
||||||
:desc "Kill buffer" "k" #'kill-this-buffer
|
:desc "Kill buffer" "k" #'kill-this-buffer
|
||||||
:desc "Next buffer" "n" #'next-buffer
|
:desc "Next buffer" "n" #'next-buffer
|
||||||
|
@ -763,7 +762,7 @@
|
||||||
:desc "Browse remote files" "." #'ssh-deploy-browse-remote-handler
|
:desc "Browse remote files" "." #'ssh-deploy-browse-remote-handler
|
||||||
:desc "Detect remote changes" ">" #'ssh-deploy-remote-changes-handler))
|
:desc "Detect remote changes" ">" #'ssh-deploy-remote-changes-handler))
|
||||||
|
|
||||||
(:when (featurep! :feature snippets)
|
(:when (featurep! :editor snippets)
|
||||||
(:prefix ("s" . "snippets")
|
(:prefix ("s" . "snippets")
|
||||||
:desc "New snippet" "n" #'yas-new-snippet
|
:desc "New snippet" "n" #'yas-new-snippet
|
||||||
:desc "Insert snippet" "i" #'yas-insert-snippet
|
:desc "Insert snippet" "i" #'yas-insert-snippet
|
||||||
|
@ -835,7 +834,7 @@ To change these keys see `+default-repeat-keys'."
|
||||||
;;
|
;;
|
||||||
;;; Universal evil integration
|
;;; 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'.
|
;; Have C-u behave similarly to `doom/backward-to-bol-or-indent'.
|
||||||
;; NOTE SPC u replaces C-u as the universal argument.
|
;; NOTE SPC u replaces C-u as the universal argument.
|
||||||
(map! :gi "C-u" #'doom/backward-kill-to-bol-and-indent
|
(map! :gi "C-u" #'doom/backward-kill-to-bol-and-indent
|
||||||
|
|
|
@ -43,7 +43,7 @@ Don't want to use provided one? Then add this to your private module,
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** I'm not an evil user...
|
** 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
|
* Appendix
|
||||||
** Commands
|
** Commands
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; config/default/packages.el
|
;;; config/default/packages.el
|
||||||
|
|
||||||
(unless (featurep! :feature evil)
|
(unless (featurep! :editor evil)
|
||||||
(package! winum)
|
(package! winum)
|
||||||
(package! expand-region))
|
(package! expand-region))
|
||||||
|
|
|
@ -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)
|
(evil-define-operator +evil:open-scratch-buffer (bang)
|
||||||
(interactive "<!>")
|
(interactive "<!>")
|
|
@ -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:
|
;; We load evil-collection ourselves for these reasons:
|
||||||
;;
|
;;
|
|
@ -137,7 +137,7 @@ And these are text objects added by this module:
|
||||||
** Removing evil-mode
|
** Removing evil-mode
|
||||||
You must do two things to remove Evil:
|
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
|
2. Run ~doom refresh~ to clean up lingering dependencies and refresh yuor
|
||||||
autoloads files.
|
autoloads files.
|
||||||
3. [OPTIONAL] You may want to assign new values to ~doom-leader-alt-key~ and
|
3. [OPTIONAL] You may want to assign new values to ~doom-leader-alt-key~ and
|
||||||
|
@ -149,7 +149,7 @@ non-evil sessions.
|
||||||
#+end_quote
|
#+end_quote
|
||||||
|
|
||||||
Evil-specific configuration and keybindings (defined with ~map!~) will be
|
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,
|
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
|
for vimmers. Little consideration has been put into designing a keybind scheme
|
|
@ -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)
|
(defun +evil--insert-newline (&optional above _noextranewline)
|
||||||
(let ((pos (save-excursion (beginning-of-line-text) (point)))
|
(let ((pos (save-excursion (beginning-of-line-text) (point)))
|
||||||
|
@ -148,7 +148,7 @@ more information on modifiers."
|
||||||
path file-name t t 1))))
|
path file-name t t 1))))
|
||||||
(replace-regexp-in-string regexp "\\1" file-name t)))
|
(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)
|
(evil-define-command +evil*window-split (&optional count file)
|
||||||
"Same as `evil-window-split', but focuses (and recenters) the new split."
|
"Same as `evil-window-split', but focuses (and recenters) the new split."
|
||||||
:repeat nil
|
:repeat nil
|
||||||
|
@ -164,7 +164,7 @@ more information on modifiers."
|
||||||
(balance-windows (window-parent)))
|
(balance-windows (window-parent)))
|
||||||
(if file (evil-edit file)))
|
(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)
|
(evil-define-command +evil*window-vsplit (&optional count file)
|
||||||
"Same as `evil-window-vsplit', but focuses (and recenters) the new split."
|
"Same as `evil-window-vsplit', but focuses (and recenters) the new split."
|
||||||
:repeat nil
|
:repeat nil
|
|
@ -1,4 +1,4 @@
|
||||||
;;; feature/evil/autoload/embrace.el -*- lexical-binding: t; -*-
|
;;; editor/evil/autoload/embrace.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +evil--embrace-get-pair (char)
|
(defun +evil--embrace-get-pair (char)
|
|
@ -1,5 +1,5 @@
|
||||||
;; feature/evil/autoload/evil.el -*- lexical-binding: t; -*-
|
;; editor/evil/autoload/evil.el -*- lexical-binding: t; -*-
|
||||||
;;;###if (featurep! :feature evil)
|
;;;###if (featurep! :editor evil)
|
||||||
|
|
||||||
;;;###autodef
|
;;;###autodef
|
||||||
(defun set-evil-initial-state! (modes state)
|
(defun set-evil-initial-state! (modes state)
|
||||||
|
@ -113,7 +113,7 @@ integration."
|
||||||
;;
|
;;
|
||||||
;;; Evil commands/operators
|
;;; 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)
|
(evil-define-operator +evil:apply-macro (beg end)
|
||||||
"Apply macro to each line."
|
"Apply macro to each line."
|
||||||
:move-point nil
|
:move-point nil
|
||||||
|
@ -139,14 +139,14 @@ integration."
|
||||||
(apply-macro-to-region-lines beg end macro)
|
(apply-macro-to-region-lines beg end macro)
|
||||||
(message "Applied macro in %c register %d times...DONE" register lines)))))
|
(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)
|
(evil-define-operator +evil:retab (&optional beg end)
|
||||||
"Wrapper around `doom/retab'."
|
"Wrapper around `doom/retab'."
|
||||||
:motion nil :move-point nil :type line
|
:motion nil :move-point nil :type line
|
||||||
(interactive "<r>")
|
(interactive "<r>")
|
||||||
(doom/retab beg end))
|
(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)
|
(evil-define-operator +evil:narrow-buffer (beg end &optional bang)
|
||||||
"Wrapper around `doom/clone-and-narrow-buffer'."
|
"Wrapper around `doom/clone-and-narrow-buffer'."
|
||||||
:move-point nil
|
:move-point nil
|
||||||
|
@ -219,7 +219,7 @@ integration."
|
||||||
(let ((result (car-safe (evil-delimited-arguments arg 2))))
|
(let ((result (car-safe (evil-delimited-arguments arg 2))))
|
||||||
(+evil--ex-buffer-match result hl-name nil (point-min) (point-max))))))
|
(+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)
|
(evil-define-operator +evil:align (beg end pattern &optional bang)
|
||||||
"Ex interface to `align-regexp'. PATTERN is a vim-style regexp. If 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
|
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))
|
(concat "\\(\\s-*\\)" (evil-transform-vim-style-regexp pattern))
|
||||||
1 1 bang))
|
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)
|
(evil-define-operator +evil:align-right (beg end pattern &optional bang)
|
||||||
"Like `+evil:align', except alignments are right-justified. PATTERN is a
|
"Like `+evil:align', except alignments are right-justified. PATTERN is a
|
||||||
vim-style regexp. If BANG, repeat the alignment for all matches (otherwise just
|
vim-style regexp. If BANG, repeat the alignment for all matches (otherwise just
|
||||||
|
@ -245,7 +245,7 @@ the first match on each line)."
|
||||||
;;
|
;;
|
||||||
;;; wgrep
|
;;; 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)
|
(evil-define-operator +evil-delete (beg end type register yank-handler)
|
||||||
"A wrapper around `evil-delete' for `wgrep' buffers that will invoke
|
"A wrapper around `evil-delete' for `wgrep' buffers that will invoke
|
||||||
`wgrep-mark-deletion' on lines you try to delete."
|
`wgrep-mark-deletion' on lines you try to delete."
|
|
@ -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)
|
(evil-define-command +evil:delete-this-file (&optional filename force-p)
|
||||||
"Delete FILENAME (defaults to the file associated with current buffer) and
|
"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)."
|
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))
|
(doom/delete-this-file (or filename (file-truename buffer-file-name))
|
||||||
force-p))
|
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)
|
(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
|
"Move current buffer's file to NEW-PATH. Replaces %, # and other vim-esque
|
||||||
filename modifiers (see `+evil*ex-replace-special-filenames'). If FORCE-P,
|
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"))
|
(user-error "No new path was specified"))
|
||||||
(doom/move-this-file new-path force-p))
|
(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)
|
(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
|
"Copy current buffer's file to NEW-PATH. Replaces %, # and other vim-esque
|
||||||
filename modifiers (see `+evil*ex-replace-special-filenames'). If FORCE-P,
|
filename modifiers (see `+evil*ex-replace-special-filenames'). If FORCE-P,
|
|
@ -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
|
;; 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.
|
;; strives to make Emacs a much better vim than vim was.
|
|
@ -1,5 +1,5 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; feature/evil/packages.el
|
;;; editor/evil/packages.el
|
||||||
|
|
||||||
(package! evil)
|
(package! evil)
|
||||||
(package! evil-args)
|
(package! evil-args)
|
|
@ -1,10 +1,10 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; feature/evil/test/test-evil.el
|
;;; editor/evil/test/test-evil.el
|
||||||
|
|
||||||
(describe "feature/evil"
|
(describe "feature/evil"
|
||||||
:var (resv project-root)
|
:var (resv project-root)
|
||||||
(before-all
|
(before-all
|
||||||
(require! :feature evil)
|
(require! :editor evil)
|
||||||
(require 'evil)
|
(require 'evil)
|
||||||
(load! "../autoload/evil"))
|
(load! "../autoload/evil"))
|
||||||
(after-all
|
(after-all
|
|
@ -1,4 +1,4 @@
|
||||||
#+TITLE: feature/file-templates
|
#+TITLE: editor/file-templates
|
||||||
#+DATE: February 11, 2017
|
#+DATE: February 11, 2017
|
||||||
#+SINCE: v2.0
|
#+SINCE: v2.0
|
||||||
#+STARTUP: inlineimages
|
#+STARTUP: inlineimages
|
|
@ -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)
|
(defun +file-templates--set (pred plist)
|
||||||
(if (null (car-safe plist))
|
(if (null (car-safe plist))
|
|
@ -1,4 +1,4 @@
|
||||||
;;; feature/file-templates/config.el -*- lexical-binding: t; -*-
|
;;; editor/file-templates/config.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
(defvar +file-templates-dir
|
(defvar +file-templates-dir
|
||||||
(expand-file-name "templates/" (file-name-directory load-file-name))
|
(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
|
;; Bootstrap
|
||||||
|
|
||||||
(after! yasnippet
|
(after! yasnippet
|
||||||
(if (featurep! :feature snippets)
|
(if (featurep! :editor snippets)
|
||||||
(add-to-list 'yas-snippet-dirs '+file-templates-dir 'append #'eq)
|
(add-to-list 'yas-snippet-dirs '+file-templates-dir 'append #'eq)
|
||||||
(setq yas-prompt-functions (delq #'yas-dropdown-prompt yas-prompt-functions)
|
(setq yas-prompt-functions (delq #'yas-dropdown-prompt yas-prompt-functions)
|
||||||
yas-snippet-dirs '(+file-templates-dir))
|
yas-snippet-dirs '(+file-templates-dir))
|
|
@ -1,5 +1,5 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; feature/file-templates/packages.el
|
;;; editor/file-templates/packages.el
|
||||||
|
|
||||||
(package! yasnippet)
|
(package! yasnippet)
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue