Mercurial > emacs
changeset 94264:6d96ac31f7cd
(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.
author | Juri Linkov <juri@jurta.org> |
---|---|
date | Tue, 22 Apr 2008 20:35:46 +0000 |
parents | cd726e3a759a |
children | 9f3c22487cd5 |
files | lisp/menu-bar.el |
diffstat | 1 files changed, 31 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/menu-bar.el Tue Apr 22 20:32:56 2008 +0000 +++ b/lisp/menu-bar.el Tue Apr 22 20:35:46 2008 +0000 @@ -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 @@ (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 @@ (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 @@ (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))