Make hs-special-modes-alist also work for modes derived from those modes

* lisp/progmodes/hideshow.el (hs-grok-mode-type): Also set up
hideshow variables based on hs-special-modes-alist in derived
modes (bug#39354).
This commit is contained in:
Tobias Zawada 2020-08-21 14:42:20 +02:00 committed by Lars Ingebrigtsen
parent 47b3adf8bb
commit a415179b56
2 changed files with 9 additions and 1 deletions

View file

@ -820,6 +820,10 @@ window after starting). This variable defaults to nil.
** Miscellaneous
---
*** 'hs-special-modes-alist' is now also heeded for modes derived from
the modes in that list.
+++
*** New global mode 'global-goto-address-mode'
This will enable 'goto-address-mode' in all buffers.

View file

@ -225,6 +225,8 @@
;;---------------------------------------------------------------------------
;; user-configurable variables
(require 'cl-lib)
(defgroup hideshow nil
"Minor mode for hiding and showing program and comment blocks."
:prefix "hs-"
@ -652,7 +654,9 @@ Otherwise, guess start, end and `comment-start' regexps; `forward-sexp'
function; and adjust-block-beginning function."
(if (and (bound-and-true-p comment-start)
(bound-and-true-p comment-end))
(let* ((lookup (assoc major-mode hs-special-modes-alist))
(let* ((lookup (cl-assoc-if (lambda (mode)
(derived-mode-p major-mode mode))
hs-special-modes-alist))
(start-elem (or (nth 1 lookup) "\\s(")))
(if (listp start-elem)
;; handle (START-REGEXP MDATA-SELECT)