Allow specifying in which major modes to enable 'global-hl-line-mode'
* lisp/hl-line.el (global-hl-line-modes): New user option. (global-hl-line-highlight): Obey the new variable. (Bug#77022) * etc/NEWS: Document new variable.
This commit is contained in:
parent
b1db48c0fc
commit
77ad6518bb
2 changed files with 33 additions and 1 deletions
4
etc/NEWS
4
etc/NEWS
|
@ -1587,6 +1587,10 @@ commands. When nil, clicking on an inactive Emacs frame will only
|
|||
activate it. When t (the default), the click will both activate the
|
||||
frame and be interpreted as a command.
|
||||
|
||||
*** New variable 'global-hl-line-modes'.
|
||||
This specifies in which major modes should the 'global-hl-line-mode' be
|
||||
switched on.
|
||||
|
||||
---
|
||||
*** New user option 'display-fill-column-indicator-warning'.
|
||||
Customize it to a non-nil value to have the fill-column indicators
|
||||
|
|
|
@ -122,6 +122,33 @@ the command `global-hl-line-mode' to turn Global Hl-Line mode on."
|
|||
:version "24.1"
|
||||
:group 'hl-line)
|
||||
|
||||
(defcustom global-hl-line-modes t
|
||||
"Which major modes `hl-line-mode' is switched on in.
|
||||
This variable can be either t (all major modes), nil (no major modes),
|
||||
or a list of modes and (not modes) to switch use this minor mode or
|
||||
not. For instance
|
||||
|
||||
(c-mode (not message-mode mail-mode) text-mode)
|
||||
|
||||
means \"use this mode in all modes derived from `c-mode', don't use in
|
||||
modes derived from `message-mode' or `mail-mode', but do use in other
|
||||
modes derived from `text-mode'\". An element with value t means \"use\"
|
||||
and nil means \"don't use\". There's an implicit nil at the end of the
|
||||
list."
|
||||
:type
|
||||
'(choice (const :tag "Enable in all major modes" t)
|
||||
(repeat :tag "Rules (earlier takes precedence)..."
|
||||
(choice
|
||||
(const :tag "Enable in all (other) modes" t)
|
||||
(symbol :value fundamental-mode :tag
|
||||
"Enable in major mode")
|
||||
(cons :tag "Don't enable in major modes"
|
||||
(const :tag "Don't enable in..." not)
|
||||
(repeat
|
||||
(symbol :value fundamental-mode :tag
|
||||
"Major mode"))))))
|
||||
:version "31.1")
|
||||
|
||||
(defvar hl-line-range-function nil
|
||||
"If non-nil, function to call to return highlight range.
|
||||
The function of no args should return a cons cell; its car value
|
||||
|
@ -236,7 +263,8 @@ on `post-command-hook'."
|
|||
|
||||
(defun global-hl-line-highlight ()
|
||||
"Highlight the current line in the current window."
|
||||
(when global-hl-line-mode ; Might be changed outside the mode function.
|
||||
(when (and global-hl-line-mode ; Might be changed outside the mode function.
|
||||
(easy-mmode--globalized-predicate-p global-hl-line-modes))
|
||||
(unless (window-minibuffer-p)
|
||||
(unless (overlayp global-hl-line-overlay)
|
||||
(setq global-hl-line-overlay (hl-line-make-overlay))) ; To be moved.
|
||||
|
|
Loading…
Add table
Reference in a new issue