aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/menu-bar.el98
1 files changed, 60 insertions, 38 deletions
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index b7967b858ae..c404145dff4 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -1118,46 +1118,58 @@ The selected font will be the default on both the existing and future frames."
1118 (global-display-line-numbers-mode) 1118 (global-display-line-numbers-mode)
1119 (display-line-numbers-mode))) 1119 (display-line-numbers-mode)))
1120 1120
1121(defun menu-bar--display-line-numbers-mode-visual ()
1122 "Turn on visual line number mode."
1123 (interactive)
1124 (menu-bar-display-line-numbers-mode 'visual)
1125 (message "Visual line numbers enabled"))
1126
1127(defun menu-bar--display-line-numbers-mode-relative ()
1128 "Turn on relative line number mode."
1129 (interactive)
1130 (menu-bar-display-line-numbers-mode 'relative)
1131 (message "Relative line numbers enabled"))
1132
1133(defun menu-bar--display-line-numbers-mode-absolute ()
1134 "Turn on absolute line number mode."
1135 (interactive)
1136 (menu-bar-display-line-numbers-mode t)
1137 (setq display-line-numbers t)
1138 (message "Absolute line numbers enabled"))
1139
1140(defun menu-bar--display-line-numbers-mode-none ()
1141 "Disable line numbers."
1142 (interactive)
1143 (menu-bar-display-line-numbers-mode nil)
1144 (message "Line numbers disabled"))
1145
1121(defvar menu-bar-showhide-line-numbers-menu 1146(defvar menu-bar-showhide-line-numbers-menu
1122 (let ((menu (make-sparse-keymap "Line Numbers"))) 1147 (let ((menu (make-sparse-keymap "Line Numbers")))
1123 1148
1124 (bindings--define-key menu [visual] 1149 (bindings--define-key menu [visual]
1125 `(menu-item "Visual Line Numbers" 1150 '(menu-item "Visual Line Numbers"
1126 ,(lambda () 1151 menu-bar--display-line-numbers-mode-visual
1127 (interactive)
1128 (menu-bar-display-line-numbers-mode 'visual)
1129 (message "Visual line numbers enabled"))
1130 :help "Enable visual line numbers" 1152 :help "Enable visual line numbers"
1131 :button (:radio . (eq display-line-numbers 'visual)) 1153 :button (:radio . (eq display-line-numbers 'visual))
1132 :visible (menu-bar-menu-frame-live-and-visible-p))) 1154 :visible (menu-bar-menu-frame-live-and-visible-p)))
1133 1155
1134 (bindings--define-key menu [relative] 1156 (bindings--define-key menu [relative]
1135 `(menu-item "Relative Line Numbers" 1157 '(menu-item "Relative Line Numbers"
1136 ,(lambda () 1158 menu-bar--display-line-numbers-mode-relative
1137 (interactive)
1138 (menu-bar-display-line-numbers-mode 'relative)
1139 (message "Relative line numbers enabled"))
1140 :help "Enable relative line numbers" 1159 :help "Enable relative line numbers"
1141 :button (:radio . (eq display-line-numbers 'relative)) 1160 :button (:radio . (eq display-line-numbers 'relative))
1142 :visible (menu-bar-menu-frame-live-and-visible-p))) 1161 :visible (menu-bar-menu-frame-live-and-visible-p)))
1143 1162
1144 (bindings--define-key menu [absolute] 1163 (bindings--define-key menu [absolute]
1145 `(menu-item "Absolute Line Numbers" 1164 '(menu-item "Absolute Line Numbers"
1146 ,(lambda () 1165 menu-bar--display-line-numbers-mode-absolute
1147 (interactive)
1148 (menu-bar-display-line-numbers-mode t)
1149 (setq display-line-numbers t)
1150 (message "Absolute line numbers enabled"))
1151 :help "Enable absolute line numbers" 1166 :help "Enable absolute line numbers"
1152 :button (:radio . (eq display-line-numbers t)) 1167 :button (:radio . (eq display-line-numbers t))
1153 :visible (menu-bar-menu-frame-live-and-visible-p))) 1168 :visible (menu-bar-menu-frame-live-and-visible-p)))
1154 1169
1155 (bindings--define-key menu [none] 1170 (bindings--define-key menu [none]
1156 `(menu-item "No Line Numbers" 1171 '(menu-item "No Line Numbers"
1157 ,(lambda () 1172 menu-bar--display-line-numbers-mode-none
1158 (interactive)
1159 (menu-bar-display-line-numbers-mode nil)
1160 (message "Line numbers disabled"))
1161 :help "Disable line numbers" 1173 :help "Disable line numbers"
1162 :button (:radio . (null display-line-numbers)) 1174 :button (:radio . (null display-line-numbers))
1163 :visible (menu-bar-menu-frame-live-and-visible-p))) 1175 :visible (menu-bar-menu-frame-live-and-visible-p)))
@@ -1266,16 +1278,33 @@ mail status in mode line"))
1266 'tool-bar-lines)))))) 1278 'tool-bar-lines))))))
1267 menu)) 1279 menu))
1268 1280
1281(defun menu-bar--visual-line-mode-enable ()
1282 "Enable visual line mode."
1283 (interactive)
1284 (unless visual-line-mode
1285 (visual-line-mode 1))
1286 (message "Visual-Line mode enabled"))
1287
1288(defun menu-bar--toggle-truncate-long-lines ()
1289 "Toggle long lines mode."
1290 (interactive)
1291 (if visual-line-mode (visual-line-mode 0))
1292 (setq word-wrap nil)
1293 (toggle-truncate-lines 1))
1294
1295(defun menu-bar--wrap-long-lines-window-edge ()
1296 "Wrap long lines at window edge."
1297 (interactive)
1298 (if visual-line-mode (visual-line-mode 0))
1299 (setq word-wrap nil)
1300 (if truncate-lines (toggle-truncate-lines -1)))
1301
1269(defvar menu-bar-line-wrapping-menu 1302(defvar menu-bar-line-wrapping-menu
1270 (let ((menu (make-sparse-keymap "Line Wrapping"))) 1303 (let ((menu (make-sparse-keymap "Line Wrapping")))
1271 1304
1272 (bindings--define-key menu [word-wrap] 1305 (bindings--define-key menu [word-wrap]
1273 `(menu-item "Word Wrap (Visual Line mode)" 1306 '(menu-item "Word Wrap (Visual Line mode)"
1274 ,(lambda () 1307 menu-bar--visual-line-mode-enable
1275 (interactive)
1276 (unless visual-line-mode
1277 (visual-line-mode 1))
1278 (message "Visual-Line mode enabled"))
1279 :help "Wrap long lines at word boundaries" 1308 :help "Wrap long lines at word boundaries"
1280 :button (:radio 1309 :button (:radio
1281 . (and (null truncate-lines) 1310 . (and (null truncate-lines)
@@ -1284,12 +1313,8 @@ mail status in mode line"))
1284 :visible (menu-bar-menu-frame-live-and-visible-p))) 1313 :visible (menu-bar-menu-frame-live-and-visible-p)))
1285 1314
1286 (bindings--define-key menu [truncate] 1315 (bindings--define-key menu [truncate]
1287 `(menu-item "Truncate Long Lines" 1316 '(menu-item "Truncate Long Lines"
1288 ,(lambda () 1317 menu-bar--toggle-truncate-long-lines
1289 (interactive)
1290 (if visual-line-mode (visual-line-mode 0))
1291 (setq word-wrap nil)
1292 (toggle-truncate-lines 1))
1293 :help "Truncate long lines at window edge" 1318 :help "Truncate long lines at window edge"
1294 :button (:radio . (or truncate-lines 1319 :button (:radio . (or truncate-lines
1295 (truncated-partial-width-window-p))) 1320 (truncated-partial-width-window-p)))
@@ -1297,11 +1322,8 @@ mail status in mode line"))
1297 :enable (not (truncated-partial-width-window-p)))) 1322 :enable (not (truncated-partial-width-window-p))))
1298 1323
1299 (bindings--define-key menu [window-wrap] 1324 (bindings--define-key menu [window-wrap]
1300 `(menu-item "Wrap at Window Edge" 1325 '(menu-item "Wrap at Window Edge"
1301 ,(lambda () (interactive) 1326 menu-bar--wrap-long-lines-window-edge
1302 (if visual-line-mode (visual-line-mode 0))
1303 (setq word-wrap nil)
1304 (if truncate-lines (toggle-truncate-lines -1)))
1305 :help "Wrap long lines at window edge" 1327 :help "Wrap long lines at window edge"
1306 :button (:radio 1328 :button (:radio
1307 . (and (null truncate-lines) 1329 . (and (null truncate-lines)