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)) ))
> 
>