* lisp/info-look.el (info-lookup-select-mode): If major-mode has no
info-lookup-alist entry then search up derived-mode-parent. Fixes: debbugs:8660
This commit is contained in:
parent
c793958519
commit
a9bc03e28e
2 changed files with 20 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2013-02-16 Kevin Ryde <user42@zip.com.au>
|
||||
|
||||
* info-look.el (info-lookup-select-mode): If major-mode has no
|
||||
info-lookup-alist entry then search up derived-mode-parent (bug#8660).
|
||||
|
||||
2013-02-16 Jambunathan K <kjambunathan@gmail.com>
|
||||
|
||||
* replace.el (read-regexp): Tighten the regexp that matches tag.
|
||||
|
|
|
@ -298,6 +298,21 @@ If optional argument QUERY is non-nil, query for the help mode."
|
|||
(when (string-match (caar file-name-alist) file-name)
|
||||
(setq info-lookup-mode (cdar file-name-alist)))
|
||||
(setq file-name-alist (cdr file-name-alist)))))
|
||||
|
||||
;; If major-mode has no setups in info-lookup-alist, under any topic, then
|
||||
;; search up through derived-mode-parent to find a parent mode which does
|
||||
;; have some setups. This means that a `define-derived-mode' with no
|
||||
;; setups of its own will select its parent mode for lookups, if one of
|
||||
;; its parents has some setups. Good for example on `makefile-gmake-mode'
|
||||
;; and similar derivatives of `makefile-mode'.
|
||||
;;
|
||||
(let ((mode major-mode)) ;; Look for `mode' with some setups.
|
||||
(while (and mode (not info-lookup-mode))
|
||||
(dolist (topic-cell info-lookup-alist) ;; Usually only two topics here.
|
||||
(if (info-lookup->mode-value (car topic-cell) mode)
|
||||
(setq info-lookup-mode mode)))
|
||||
(setq mode (get mode 'derived-mode-parent))))
|
||||
|
||||
(or info-lookup-mode (setq info-lookup-mode major-mode)))
|
||||
|
||||
(defun info-lookup-change-mode (topic)
|
||||
|
|
Loading…
Add table
Reference in a new issue