Make menu bar entries only point to named functions, not lambdas
* lisp/menu-bar.el () (menu-bar--display-line-numbers-mode-visual) (menu-bar--display-line-numbers-mode-relative) (menu-bar--display-line-numbers-mode-absolute) (menu-bar--display-line-numbers-mode-none) (menu-bar--visual-line-mode-enable) (menu-bar--toggle-truncate-long-lines) (menu-bar--wrap-long-lines-window-edge): Make lambdas into trivial wrapper functions so that `C-h k' on the menu items work (bug#13841). (menu-bar-showhide-line-numbers-menu) (menu-bar-line-wrapping-menu): Use them.
This commit is contained in:
parent
f2cbc7214f
commit
43310f4387
1 changed files with 60 additions and 38 deletions
|
@ -1118,46 +1118,58 @@ The selected font will be the default on both the existing and future frames."
|
|||
(global-display-line-numbers-mode)
|
||||
(display-line-numbers-mode)))
|
||||
|
||||
(defun menu-bar--display-line-numbers-mode-visual ()
|
||||
"Turn on visual line number mode."
|
||||
(interactive)
|
||||
(menu-bar-display-line-numbers-mode 'visual)
|
||||
(message "Visual line numbers enabled"))
|
||||
|
||||
(defun menu-bar--display-line-numbers-mode-relative ()
|
||||
"Turn on relative line number mode."
|
||||
(interactive)
|
||||
(menu-bar-display-line-numbers-mode 'relative)
|
||||
(message "Relative line numbers enabled"))
|
||||
|
||||
(defun menu-bar--display-line-numbers-mode-absolute ()
|
||||
"Turn on absolute line number mode."
|
||||
(interactive)
|
||||
(menu-bar-display-line-numbers-mode t)
|
||||
(setq display-line-numbers t)
|
||||
(message "Absolute line numbers enabled"))
|
||||
|
||||
(defun menu-bar--display-line-numbers-mode-none ()
|
||||
"Disable line numbers."
|
||||
(interactive)
|
||||
(menu-bar-display-line-numbers-mode nil)
|
||||
(message "Line numbers disabled"))
|
||||
|
||||
(defvar menu-bar-showhide-line-numbers-menu
|
||||
(let ((menu (make-sparse-keymap "Line Numbers")))
|
||||
|
||||
(bindings--define-key menu [visual]
|
||||
`(menu-item "Visual Line Numbers"
|
||||
,(lambda ()
|
||||
(interactive)
|
||||
(menu-bar-display-line-numbers-mode 'visual)
|
||||
(message "Visual line numbers enabled"))
|
||||
'(menu-item "Visual Line Numbers"
|
||||
menu-bar--display-line-numbers-mode-visual
|
||||
:help "Enable visual line numbers"
|
||||
:button (:radio . (eq display-line-numbers 'visual))
|
||||
:visible (menu-bar-menu-frame-live-and-visible-p)))
|
||||
|
||||
(bindings--define-key menu [relative]
|
||||
`(menu-item "Relative Line Numbers"
|
||||
,(lambda ()
|
||||
(interactive)
|
||||
(menu-bar-display-line-numbers-mode 'relative)
|
||||
(message "Relative line numbers enabled"))
|
||||
'(menu-item "Relative Line Numbers"
|
||||
menu-bar--display-line-numbers-mode-relative
|
||||
:help "Enable relative line numbers"
|
||||
:button (:radio . (eq display-line-numbers 'relative))
|
||||
:visible (menu-bar-menu-frame-live-and-visible-p)))
|
||||
|
||||
(bindings--define-key menu [absolute]
|
||||
`(menu-item "Absolute Line Numbers"
|
||||
,(lambda ()
|
||||
(interactive)
|
||||
(menu-bar-display-line-numbers-mode t)
|
||||
(setq display-line-numbers t)
|
||||
(message "Absolute line numbers enabled"))
|
||||
'(menu-item "Absolute Line Numbers"
|
||||
menu-bar--display-line-numbers-mode-absolute
|
||||
:help "Enable absolute line numbers"
|
||||
:button (:radio . (eq display-line-numbers t))
|
||||
:visible (menu-bar-menu-frame-live-and-visible-p)))
|
||||
|
||||
(bindings--define-key menu [none]
|
||||
`(menu-item "No Line Numbers"
|
||||
,(lambda ()
|
||||
(interactive)
|
||||
(menu-bar-display-line-numbers-mode nil)
|
||||
(message "Line numbers disabled"))
|
||||
'(menu-item "No Line Numbers"
|
||||
menu-bar--display-line-numbers-mode-none
|
||||
:help "Disable line numbers"
|
||||
:button (:radio . (null display-line-numbers))
|
||||
:visible (menu-bar-menu-frame-live-and-visible-p)))
|
||||
|
@ -1266,16 +1278,33 @@ mail status in mode line"))
|
|||
'tool-bar-lines))))))
|
||||
menu))
|
||||
|
||||
(defun menu-bar--visual-line-mode-enable ()
|
||||
"Enable visual line mode."
|
||||
(interactive)
|
||||
(unless visual-line-mode
|
||||
(visual-line-mode 1))
|
||||
(message "Visual-Line mode enabled"))
|
||||
|
||||
(defun menu-bar--toggle-truncate-long-lines ()
|
||||
"Toggle long lines mode."
|
||||
(interactive)
|
||||
(if visual-line-mode (visual-line-mode 0))
|
||||
(setq word-wrap nil)
|
||||
(toggle-truncate-lines 1))
|
||||
|
||||
(defun menu-bar--wrap-long-lines-window-edge ()
|
||||
"Wrap long lines at window edge."
|
||||
(interactive)
|
||||
(if visual-line-mode (visual-line-mode 0))
|
||||
(setq word-wrap nil)
|
||||
(if truncate-lines (toggle-truncate-lines -1)))
|
||||
|
||||
(defvar menu-bar-line-wrapping-menu
|
||||
(let ((menu (make-sparse-keymap "Line Wrapping")))
|
||||
|
||||
(bindings--define-key menu [word-wrap]
|
||||
`(menu-item "Word Wrap (Visual Line mode)"
|
||||
,(lambda ()
|
||||
(interactive)
|
||||
(unless visual-line-mode
|
||||
(visual-line-mode 1))
|
||||
(message "Visual-Line mode enabled"))
|
||||
'(menu-item "Word Wrap (Visual Line mode)"
|
||||
menu-bar--visual-line-mode-enable
|
||||
:help "Wrap long lines at word boundaries"
|
||||
:button (:radio
|
||||
. (and (null truncate-lines)
|
||||
|
@ -1284,12 +1313,8 @@ mail status in mode line"))
|
|||
:visible (menu-bar-menu-frame-live-and-visible-p)))
|
||||
|
||||
(bindings--define-key menu [truncate]
|
||||
`(menu-item "Truncate Long Lines"
|
||||
,(lambda ()
|
||||
(interactive)
|
||||
(if visual-line-mode (visual-line-mode 0))
|
||||
(setq word-wrap nil)
|
||||
(toggle-truncate-lines 1))
|
||||
'(menu-item "Truncate Long Lines"
|
||||
menu-bar--toggle-truncate-long-lines
|
||||
:help "Truncate long lines at window edge"
|
||||
:button (:radio . (or truncate-lines
|
||||
(truncated-partial-width-window-p)))
|
||||
|
@ -1297,11 +1322,8 @@ mail status in mode line"))
|
|||
:enable (not (truncated-partial-width-window-p))))
|
||||
|
||||
(bindings--define-key menu [window-wrap]
|
||||
`(menu-item "Wrap at Window Edge"
|
||||
,(lambda () (interactive)
|
||||
(if visual-line-mode (visual-line-mode 0))
|
||||
(setq word-wrap nil)
|
||||
(if truncate-lines (toggle-truncate-lines -1)))
|
||||
'(menu-item "Wrap at Window Edge"
|
||||
menu-bar--wrap-long-lines-window-edge
|
||||
:help "Wrap long lines at window edge"
|
||||
:button (:radio
|
||||
. (and (null truncate-lines)
|
||||
|
|
Loading…
Add table
Reference in a new issue