From d3434a5b8a034f288cc905c2e8c42ddf91484668 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Tue, 22 Apr 2008 20:36:08 +0000 Subject: [PATCH] (buffers-menu-max-size): Move its definition down to the "Buffers Menu" section. Change group name `mouse' to `menu'. (yank-menu-length): Change group name `mouse' to `menu'. (buffers-menu-buffer-name-length): New user option. (menu-bar-update-buffers): Use buffers-menu-buffer-name-length instead of the hard-coded number 27. --- lisp/ChangeLog | 9 +++++++++ lisp/menu-bar.el | 48 +++++++++++++++++++++++++++++++----------------- 2 files changed, 40 insertions(+), 17 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7db5250f09..fac09bccdb 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,12 @@ +2008-04-22 Juri Linkov + + * menu-bar.el (buffers-menu-max-size): Move its definition down to + the "Buffers Menu" section. Change group name `mouse' to `menu'. + (yank-menu-length): Change group name `mouse' to `menu'. + (buffers-menu-buffer-name-length): New user option. + (menu-bar-update-buffers): Use buffers-menu-buffer-name-length + instead of the hard-coded number 27. + 2008-04-22 Juri Linkov * isearch.el (eval-when-compile): Require `help-macro'. diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index 00f76789b3..fe15c81c17 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el @@ -30,17 +30,6 @@ ;;; Code: -;;; User options: - -(defcustom buffers-menu-max-size 10 - "*Maximum number of entries which may appear on the Buffers menu. -If this is 10, then only the ten most-recently-selected buffers are shown. -If this is nil, then all buffers are shown. -A large number or nil slows down menu responsiveness." - :type '(choice integer - (const :tag "All" nil)) - :group 'mouse) - ;; Don't clobber an existing menu-bar keymap, to preserve any menu-bar key ;; definitions made in loaddefs.el. (or (lookup-key global-map [menu-bar]) @@ -1482,7 +1471,7 @@ using `abort-recursive-edit'." (defcustom yank-menu-length 20 "*Maximum length to display in the yank-menu." :type 'integer - :group 'mouse) + :group 'menu) (defun menu-bar-update-yank-menu (string old) (let ((front (car (cdr yank-menu))) @@ -1519,6 +1508,26 @@ The menu shows all the killed text sequences stored in `kill-ring'." (insert last-command-event)) +;;; Buffers Menu + +(defcustom buffers-menu-max-size 10 + "*Maximum number of entries which may appear on the Buffers menu. +If this is 10, then only the ten most-recently-selected buffers are shown. +If this is nil, then all buffers are shown. +A large number or nil slows down menu responsiveness." + :type '(choice integer + (const :tag "All" nil)) + :group 'menu) + +(defcustom buffers-menu-buffer-name-length 30 + "*Maximum length of the buffer name on the Buffers menu. +If this is a number, then buffer names are truncated to this length. +If this is nil, then buffer names are shown in full. +A large number or nil makes the menu too wide." + :type '(choice integer + (const :tag "Full length" nil)) + :group 'menu) + (defcustom buffers-menu-show-directories 'unless-uniquify "If non-nil, show directories in the Buffers menu for buffers that have them. The special value `unless-uniquify' means that directories will be shown @@ -1606,11 +1615,16 @@ Buffers menu is regenerated." (unless (eq ?\s (aref name 0)) (push (menu-bar-update-buffers-1 (cons buf - (if (> (length name) 27) - (concat (substring name 0 12) - "..." - (substring name -12)) - name))) + (if (and (integerp buffers-menu-buffer-name-length) + (> (length name) buffers-menu-buffer-name-length)) + (concat + (substring + name 0 (/ buffers-menu-buffer-name-length 2)) + "..." + (substring + name (- (/ buffers-menu-buffer-name-length 2)))) + name) + )) alist)))) ;; Now make the actual list of items. (let ((buffers-vec (make-vector (length alist) nil)) -- 2.20.1