use-package
use-package copied to clipboard
"Many-to-many" hooks
Consider my use-package
entry for AUCTeX:
(use-package tex-site
:ensure auctex
:after tex-mode
:config
;; TeX.
(use-package tex
:custom
(TeX-auto-save t)
(TeX-byte-compile t)
(TeX-clean-confirm nil)
(TeX-complete-expert-commands t)
(TeX-debug-bad-boxes t)
(TeX-debug-warnings t)
(TeX-electric-escape t)
(TeX-electric-math t)
(TeX-electric-sub-and-superscript t)
(TeX-master 'dwim)
(TeX-parse-self t)
(TeX-view-program-selection '((output-pdf "Okular")
(output-html "xdg-open")))
(TeX-Omega-command "aleph")
(TeX-PDF-mode t)
(TeX-source-correlate-mode t)
(TeX-source-correlate-start-server t))
;; LaTeX.
(use-package latex
:config
(set-fill-column 80)
:custom
(LaTeX-default-style "scrartcl")
(LaTeX-default-options '("version=last" "paper=A4" "parskip=half"))
(LaTeX-electric-left-right-brace t)
:hook ((LaTeX-mode . LaTeX-math-mode)
(LaTeX-mode . flyspell-mode)
(LaTeX-mode . reftex-mode)
(LaTeX-mode . auto-fill-mode)
(LaTeX-mode . visual-line-mode)))
;; Embed preview images.
(use-package preview
:custom
(preview-auto-cache-preamble t)
(preview-preserve-counters t)
(preview-preseve-indentation t)))
Ideally, I would like to add all functions to LaTeX-mode-hook
in one go, e.g.:
:hook (LaTeX-mode . (LaTeX-math-mode flyspell-mode
reftex-mode auto-fill-mode visual-line-mode)
This, however, is not possible given the current code. What is, however, supported is adding one function to multiple mode hooks at the same time. It should be a relatively simple change to support a "many-to-many" way of adding hooks, too.
I appreciate the desire to make everything declarative, but I'm very reticent to make :hook
any more magical than it is already.