feat(emacs-lisp): extend config to lisp-{data,interaction}-mode

So these modes (and particularly .doom* dotfiles and .dir-locals.el) can
benefit from smarter syntax highlighting and integration with other
modules.
This commit is contained in:
Henrik Lissner 2024-09-14 17:15:13 -04:00
parent 037b018cdd
commit 22d5e3059f
No known key found for this signature in database
GPG key ID: B60957CA074D39A3

View file

@ -32,24 +32,25 @@ See `+emacs-lisp-non-package-mode' for details.")
:mode ("\\.Cask\\'" . emacs-lisp-mode) :mode ("\\.Cask\\'" . emacs-lisp-mode)
:interpreter ("doomscript" . emacs-lisp-mode) :interpreter ("doomscript" . emacs-lisp-mode)
:config :config
(set-repl-handler! '(emacs-lisp-mode lisp-interaction-mode) #'+emacs-lisp/open-repl) (let ((modes '(emacs-lisp-mode lisp-interaction-mode lisp-data-mode)))
(set-eval-handler! '(emacs-lisp-mode lisp-interaction-mode) #'+emacs-lisp-eval) (set-repl-handler! modes #'+emacs-lisp/open-repl)
(set-lookup-handlers! '(emacs-lisp-mode lisp-interaction-mode helpful-mode) (set-eval-handler! modes #'+emacs-lisp-eval)
:definition #'+emacs-lisp-lookup-definition (set-lookup-handlers! `(,@modes helpful-mode)
:documentation #'+emacs-lisp-lookup-documentation) :definition #'+emacs-lisp-lookup-definition
(set-docsets! '(emacs-lisp-mode lisp-interaction-mode) "Emacs Lisp") :documentation #'+emacs-lisp-lookup-documentation)
(set-ligatures! 'emacs-lisp-mode :lambda "lambda") (set-docsets! modes "Emacs Lisp")
(set-formatter! 'lisp-indent #'apheleia-indent-lisp-buffer :modes '(emacs-lisp-mode)) (set-ligatures! modes :lambda "lambda")
(set-rotate-patterns! 'emacs-lisp-mode (set-formatter! 'lisp-indent #'apheleia-indent-lisp-buffer :modes modes)
:symbols '(("t" "nil") (set-rotate-patterns! modes
("let" "let*") :symbols '(("t" "nil")
("when" "unless") ("let" "let*")
("advice-add" "advice-remove") ("when" "unless")
("defadvice!" "undefadvice!") ("advice-add" "advice-remove")
("add-hook" "remove-hook") ("defadvice!" "undefadvice!")
("add-hook!" "remove-hook!") ("add-hook" "remove-hook")
("it" "xit") ("add-hook!" "remove-hook!")
("describe" "xdescribe"))) ("it" "xit")
("describe" "xdescribe"))))
(setq-hook! 'emacs-lisp-mode-hook (setq-hook! 'emacs-lisp-mode-hook
;; Emacs' built-in elisp files use a hybrid tab->space indentation scheme ;; Emacs' built-in elisp files use a hybrid tab->space indentation scheme
@ -83,7 +84,7 @@ See `+emacs-lisp-non-package-mode' for details.")
;; and `editorconfig' would force fixed indentation on elisp. ;; and `editorconfig' would force fixed indentation on elisp.
(add-to-list 'doom-detect-indentation-excluded-modes 'emacs-lisp-mode) (add-to-list 'doom-detect-indentation-excluded-modes 'emacs-lisp-mode)
(add-hook! 'emacs-lisp-mode-hook (add-hook! '(emacs-lisp-mode-hook lisp-data-mode-local-vars-hook)
;; Allow folding of outlines in comments ;; Allow folding of outlines in comments
#'outline-minor-mode #'outline-minor-mode
;; Make parenthesis depth easier to distinguish at a glance ;; Make parenthesis depth easier to distinguish at a glance