diff --git a/modules/editor/evil/config.el b/modules/editor/evil/config.el index 6517260cb..a48518826 100644 --- a/modules/editor/evil/config.el +++ b/modules/editor/evil/config.el @@ -49,7 +49,11 @@ directives. By default, this only recognizes C directives.") evil-ex-interactive-search-highlight 'selected-window ;; It's infuriating that innocuous "beginning of line" or "end of line" ;; errors will abort macros, so suppress them: - evil-kbd-macro-suppress-motion-error t) + evil-kbd-macro-suppress-motion-error t + evil-undo-system + (cond ((featurep! :emacs undo +tree) 'undo-tree) + ((featurep! :emacs undo) 'undo-fu) + (EMACS28+ 'undo-redo))) ;; Slow this down from 0.02 to prevent blocking in large or folded buffers ;; like magit while incrementally highlighting matches. diff --git a/modules/editor/evil/init.el b/modules/editor/evil/init.el index cbbdf6e9a..e8c3b318b 100644 --- a/modules/editor/evil/init.el +++ b/modules/editor/evil/init.el @@ -84,6 +84,8 @@ variable for an explanation of the defaults (in comments). See anaconda-mode apropos arc-mode + auto-package-update + bm bookmark (buff-menu "buff-menu") calc @@ -123,6 +125,7 @@ variable for an explanation of the defaults (in comments). See eval-sexp-fu evil-mc eww + finder flycheck flymake free-keys @@ -143,6 +146,7 @@ variable for an explanation of the defaults (in comments). See image image-dired image+ + imenu imenu-list indium info @@ -163,10 +167,13 @@ variable for an explanation of the defaults (in comments). See mu4e mu4e-conversation neotree + newsticker notmuch nov (occur replace) omnisharp + org-present + osx-dictionary outline p4 (package-menu package) @@ -182,6 +189,7 @@ variable for an explanation of the defaults (in comments). See realgud reftex restclient + rg rjsx-mode robe rtags @@ -194,8 +202,11 @@ variable for an explanation of the defaults (in comments). See tar-mode (term term ansi-term multi-term) tetris + ,@(if EMACS27+ '(thread)) tide + timer-list transmission + trashed typescript-mode vc-annotate vc-dir @@ -231,8 +242,8 @@ and complains if a module is loaded too early (during startup)." (funcall-interactively orig-fn))) ;; These modes belong to packages that Emacs always loads at startup, causing - ;; evil-collection to load immediately. We avoid this by loading them after - ;; evil-collection has first loaded... + ;; evil-collection and it's co-packages to all load immediately. We avoid this + ;; by loading them after evil-collection has first loaded... (with-eval-after-load 'evil-collection ;; Don't let evil-collection interfere with certain keys (setq evil-collection-key-blacklist @@ -268,6 +279,13 @@ and complains if a module is loaded too early (during startup)." (+evil-collection-init '(process-menu simple))) (add-transient-hook! 'xwidget-webkit-mode (+evil-collection-init 'xwidget)) + (add-transient-hook! 'tabulated-list-mode + (+evil-collection-init 'tabulated-list)) + (add-transient-hook! 'tab-bar-mode + (+evil-collection-init 'tabulated-list)) + (when EMACS27+ + (add-transient-hook! 'tab-bar-mode + (+evil-collection-init 'tab-bar))) ;; HACK Do this ourselves because evil-collection break's `eval-after-load' ;; load order by loading their target plugin before applying keys. This diff --git a/modules/editor/evil/packages.el b/modules/editor/evil/packages.el index 89efbe124..70547349e 100644 --- a/modules/editor/evil/packages.el +++ b/modules/editor/evil/packages.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; -*- ;;; editor/evil/packages.el -(package! evil :pin "1e7aa5bfbd86feff0ed5982e487070352d326b90") +(package! evil :pin "373a57e5fc41b9597ed7f7223806ae2ffc16ade6") (package! evil-args :pin "758ad5ae54ad34202064fec192c88151c08cb387") (package! evil-easymotion :pin "f96c2ed38ddc07908db7c3c11bcd6285a3e8c2e9") (package! evil-embrace :pin "4379adea032b25e359d01a36301b4a5afdd0d1b7") @@ -11,7 +11,7 @@ (package! evil-exchange :pin "3030e21ee16a42dfce7f7cf86147b778b3f5d8c1") (package! evil-indent-plus :pin "0c7501e6efed661242c3a20e0a6c79a6455c2c40") (package! evil-lion :pin "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab") -(package! evil-nerd-commenter :pin "87734b9c7fcd047f73a072b9d03ec05f786eeb03") +(package! evil-nerd-commenter :pin "b670f69b646693b50645760ee3b12bd1b9eba46b") (package! evil-numbers :recipe (:host github :repo "janpath/evil-numbers") :pin "006da406d175c05fedca4431cccd569e20bef92c") @@ -33,4 +33,4 @@ (package! neotree) (autoload 'neotree-make-executor "neotree" nil nil 'macro)) - (package! evil-collection :pin "c136589d9584e5d01a4b3f2e4cf8ac5f5a23be63")) + (package! evil-collection :pin "a21725fd3256f024beb5355b7913d4f7d09d849a")) diff --git a/modules/emacs/undo/config.el b/modules/emacs/undo/config.el index 19c68fff5..3fd8bd4e2 100644 --- a/modules/emacs/undo/config.el +++ b/modules/emacs/undo/config.el @@ -3,10 +3,6 @@ (use-package! undo-fu :unless (featurep! +tree) :hook (doom-first-buffer . undo-fu-mode) - :init - ;; `evil' activates undo-tree, so we must pre-emptively disable it. - (after! undo-tree - (global-undo-tree-mode -1)) :config ;; Store more undo history to prevent loss of data (setq undo-limit 400000 diff --git a/modules/tools/lookup/config.el b/modules/tools/lookup/config.el index 5bdfbf5e2..ace43b855 100644 --- a/modules/tools/lookup/config.el +++ b/modules/tools/lookup/config.el @@ -153,8 +153,10 @@ Dictionary.app behind the scenes to get definitions.") (let ((xref-backend-functions '(etags--xref-backend t))) (funcall orig-fn))) - ;; Use `better-jumper' instead of xref's marker stack - (advice-add #'xref-push-marker-stack :around #'doom-set-jump-a) + ;; This integration is already built into evil + (unless (featurep! :editor evil) + ;; Use `better-jumper' instead of xref's marker stack + (advice-add #'xref-push-marker-stack :around #'doom-set-jump-a)) (use-package! ivy-xref :when (featurep! :completion ivy)