Add line numbers display to the Options menu

* lisp/menu-bar.el (toggle-display-line-numbers): Remove.
(menu-bar-display-line-numbers-mode): New defun.
(menu-bar-showhide-line-numbers-menu): New defvar.
(menu-bar-showhide-menu): Use `menu-bar-showhide-line-numbers-menu'
This commit is contained in:
Michael Albinus 2017-07-22 20:24:24 +02:00
parent c7df97f8fa
commit 640fc129fd

View file

@ -1101,23 +1101,68 @@ The selected font will be the default on both the existing and future frames."
:button (:radio . (eq tool-bar-mode nil))))
menu)))
(defun toggle-display-line-numbers ()
(interactive)
(if display-line-numbers
(setq display-line-numbers nil)
(setq display-line-numbers t))
(force-mode-line-update))
(defun menu-bar-display-line-numbers-mode (type)
(setq display-line-numbers-type type)
(if global-display-line-numbers-mode
(global-display-line-numbers-mode)
(display-line-numbers-mode)))
(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"))
: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"))
: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"))
: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"))
:help "Disable line numbers"
:button (:radio . (null display-line-numbers))
:visible (menu-bar-menu-frame-live-and-visible-p)))
(bindings--define-key menu [global]
(menu-bar-make-mm-toggle global-display-line-numbers-mode
"Global Line Numbers Mode"
"Set line numbers globally"))
menu))
(defvar menu-bar-showhide-menu
(let ((menu (make-sparse-keymap "Show/Hide")))
(bindings--define-key menu [display-line-numbers]
`(menu-item "Line Numbers for All Lines"
,(lambda ()
(interactive)
(toggle-display-line-numbers))
:help "Show the line number alongside each line"
:button (:toggle . display-line-numbers)))
,menu-bar-showhide-line-numbers-menu))
(bindings--define-key menu [column-number-mode]
(menu-bar-make-mm-toggle column-number-mode