💥 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) (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

View file

@ -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)

View file

@ -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.

View file

@ -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

View file

@ -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:

View file

@ -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)

View file

@ -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)

View file

@ -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))

View file

@ -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)

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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))

View file

@ -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

View file

@ -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))))

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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))

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) (evil-define-operator +evil:open-scratch-buffer (bang)
(interactive "<!>") (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: ;; 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 ** 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

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) (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

View file

@ -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)

View file

@ -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."

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) (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,

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 ;; 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.

View file

@ -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)

View file

@ -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

View file

@ -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

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) (defun +file-templates--set (pred plist)
(if (null (car-safe 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 (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))

View file

@ -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