summaryrefslogtreecommitdiff
path: root/lisp/menu-bar.el
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2017-07-22 20:24:24 +0200
committerMichael Albinus <michael.albinus@gmx.de>2017-07-22 20:24:24 +0200
commit640fc129fdf75c86c43ce15b0215d224e240052f (patch)
tree79ecd94c05eec5cfd894bd1435ee40ae570e951b /lisp/menu-bar.el
parentc7df97f8fadeae528f4667aec3e9d4b4fab55004 (diff)
downloademacs-640fc129fdf75c86c43ce15b0215d224e240052f.tar.gz
emacs-640fc129fdf75c86c43ce15b0215d224e240052f.tar.bz2
emacs-640fc129fdf75c86c43ce15b0215d224e240052f.zip
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'
Diffstat (limited to 'lisp/menu-bar.el')
-rw-r--r--lisp/menu-bar.el67
1 files changed, 56 insertions, 11 deletions
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 3ca7d1b5b3d..05a336bfe28 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -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