use-package icon indicating copy to clipboard operation
use-package copied to clipboard

"Many-to-many" hooks

Open d125q opened this issue 6 years ago • 1 comments

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.

d125q avatar May 09 '18 15:05 d125q

I appreciate the desire to make everything declarative, but I'm very reticent to make :hook any more magical than it is already.

jwiegley avatar May 09 '18 17:05 jwiegley