Re: Configuring mode-specific outline-regexp for outline-minor-mode
Heime <[email protected]> Sun, 05 Jul 2026 13:30:29 +0000
| Newsgroups | gmane.emacs.help |
|---|---|
| Message-ID | <NaKi_arQR__WFV8BOsHZPzkWIFnUzW-WUp0-k1UIONRocv6i9pa3lcM4rytIvbSarXrEQOJ65Kq3o5k-zRgfLjMsfNdN6XmsAhl7IBizstU=@protonmail.com> |
Would I need to apply 2 functions to the major mode hooks For instance (add-hook sh-mode-hook #'kronaire-regexp) ; [A] (add-hook sh-mode-hook #'outline-minor-mode) ; [B] [A] would add the new regexp, whereas [B] would allow outline-minor-mode to be automatically activated. On Sunday, July 5th, 2026 at 11:52 AM, Heime <[email protected]> wrote: > I am constructing outline-regexp for outline-minor-mode based > upon the comment character. But wonder whether I should specify > the regexp specifically for each major mode, rather than relying > on the generic comment start. > > How would I activate outline-minor-mode for the loaded mode and > associate the corresponding outline-regexp? > > (defun kronaire-levels (n &optional tag method) > (let ( (prefix (if (= (length comment-start) 1) > ;; Single character comment start > (make-string 3 (string-to-char comment-start)) > ;; Multiple character comment start > comment-start)) > (tag (if tag (format "%s" tag) "")) ) > (cl-loop for i from 1 to n > collect (cons (format "%s %s%d%s%s" prefix "<" i ">" tag) i)))) > > > (defun kronaire-regexp () > (interactive) > > (let ( (hrkl (kronaire-levels 8)) ) > (when hrkl > (setq outline-regexp > (concat (regexp-opt (mapcar 'car hrkl)) "\\>")) > (setq outline-heading-alist hrkl) > (setq-local outline-level 'outline-level) > (outline-minor-mode 0) > (outline-minor-mode 1)) )) > >