mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-01 11:14:55 +00:00
(define-global-minor-mode): Pass all specified keyword args on to
`define-minor-mode'. Update docstring.
This commit is contained in:
parent
61f570e290
commit
0ceed14b2e
@ -272,8 +272,14 @@ With zero or negative ARG turn mode off.
|
||||
"Make GLOBAL-MODE out of the buffer-local minor MODE.
|
||||
TURN-ON is a function that will be called with no args in every buffer
|
||||
and that should try to turn MODE on if applicable for that buffer.
|
||||
KEYS is a list of CL-style keyword arguments:
|
||||
:group to specify the custom group.
|
||||
KEYS is a list of CL-style keyword arguments. As the minor mode
|
||||
defined by this function is always global, any :global keyword is
|
||||
ignored. Other keywords have the same meaning as in `define-minor-mode',
|
||||
which see. In particular, :group specifies the custom group.
|
||||
The most useful keywords are those that are passed on to the
|
||||
`defcustom'. It normally makes no sense to pass the :lighter
|
||||
or :keymap keywords to `define-global-minor-mode', since these
|
||||
are usually passed to the buffer-local version of the minor mode.
|
||||
|
||||
If MODE's set-up depends on the major mode in effect when it was
|
||||
enabled, then disabling and reenabling MODE should make MODE work
|
||||
@ -285,21 +291,23 @@ call another major mode in their body."
|
||||
(pretty-name (easy-mmode-pretty-mode-name mode))
|
||||
(pretty-global-name (easy-mmode-pretty-mode-name global-mode))
|
||||
(group nil)
|
||||
(extra-args nil)
|
||||
(extra-keywords nil)
|
||||
(MODE-buffers (intern (concat global-mode-name "-buffers")))
|
||||
(MODE-enable-in-buffers
|
||||
(intern (concat global-mode-name "-enable-in-buffers")))
|
||||
(MODE-check-buffers
|
||||
(intern (concat global-mode-name "-check-buffers")))
|
||||
(MODE-cmhh (intern (concat global-mode-name "-cmhh")))
|
||||
(MODE-major-mode (intern (concat (symbol-name mode) "-major-mode"))))
|
||||
(MODE-major-mode (intern (concat (symbol-name mode) "-major-mode")))
|
||||
keyw)
|
||||
|
||||
;; Check keys.
|
||||
(while (keywordp (car keys))
|
||||
(case (pop keys)
|
||||
(:extra-args (setq extra-args (pop keys)))
|
||||
(while (keywordp (setq keyw (car keys)))
|
||||
(setq keys (cdr keys))
|
||||
(case keyw
|
||||
(:group (setq group (nconc group (list :group (pop keys)))))
|
||||
(t (setq keys (cdr keys)))))
|
||||
(:global (setq keys (cdr keys)))
|
||||
(t (push keyw extra-keywords) (push (pop keys) extra-keywords))))
|
||||
|
||||
(unless group
|
||||
;; We might as well provide a best-guess default group.
|
||||
@ -317,7 +325,7 @@ With prefix ARG, turn %s on if and only if ARG is positive.
|
||||
%s is actually not turned on in every buffer but only in those
|
||||
in which `%s' turns it on."
|
||||
pretty-name pretty-global-name pretty-name turn-on)
|
||||
:global t :extra-args ,extra-args ,@group
|
||||
:global t ,@group ,@(nreverse extra-keywords)
|
||||
|
||||
;; Setup hook to handle future mode changes and new buffers.
|
||||
(if ,global-mode
|
||||
|
Loading…
Reference in New Issue
Block a user