I have a function (tika-outlhg-regexp
) that sets custom outline headings based on major mode.
I activate this with major-mode hooks. Is there some other way?
(defun tika-addhook-hgptn ()
(add-hook 'emacs-lisp-mode-hook #'tika-outlhg-regexp)
(add-hook 'sh-mode-hook #'tika-outlhg-regexp)
(add-hook 'f90-mode-hook #'tika-outlhg-regexp)
(add-hook 'fortran-mode-hook #'tika-outlhg-regexp)
(add-hook 'latex-mode-hook #'tika-outlhg-regexp)
(add-hook 'plain-tex-mode-hook #'tika-outlhg-regexp) )
Here is the major mode dependent function for setting custom outline headings.
(defun tika-outlhg-regexp ()
(cond
((eq major-mode 'emacs-lisp-mode)
(let ( (hrklevels tika-elisp-hrklevels) )
(setq outline-regexp
(concat (regexp-opt (mapcar 'car hrklevels)) "\\>"))
(setq outline-heading-alist hrklevels)
(setq-local outline-level 'outline-level)))
((eq major-mode 'sh-mode)
(let ( (hrklevels tika-bash-hrklevels) )
(setq outline-regexp
(concat (regexp-opt (mapcar 'car hrklevels)) "\\>"))
(setq outline-heading-alist hrklevels)))
((eq major-mode 'f90-mode)
(let ( (hrklevels tika-fortran-hrklevels) )
(setq outline-regexp
(concat (regexp-opt (mapcar 'car hrklevels)) "\\>"))
(setq outline-heading-alist hrklevels)))
((eq major-mode 'fortran-mode)
(let ( (hrklevels tika-f77-hrklevels) )
(setq outline-regexp
(concat (regexp-opt (mapcar 'car hrklevels)) "\\>"))
(setq outline-heading-alist hrklevels)))
((eq major-mode 'latex-mode)
(let ( (hrklevels tika-latex-hrklevels) )
(setq outline-regexp
(concat (regexp-opt (mapcar 'car hrklevels)) "\\>"))
(setq outline-heading-alist hrklevels)
(setq-local outline-level 'outline-level)))
((eq major-mode 'plain-tex-mode)
(let ( (hrklevels tika-tex-hrklevels) )
(setq outline-regexp
(concat (regexp-opt (mapcar 'car hrklevels)) "\\>"))
(setq outline-heading-alist hrklevels))) ))