;;; msb.el --- customizable buffer-selection with multiple menus
;; Copyright (C) 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002,
-;; 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+;; 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
;; Author: Lars Lindberg <lars.lindberg@home.se>
;; Maintainer: FSF
;; This file is part of GNU Emacs.
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
(msb-menu-bar-update-buffers t)))
(defcustom msb-menu-cond msb--very-many-menus
- "*List of criteria for splitting the mouse buffer menu.
+ "List of criteria for splitting the mouse buffer menu.
The elements in the list should be of this type:
(CONDITION MENU-SORT-KEY MENU-TITLE ITEM-HANDLING-FN ITEM-SORT-FN).
:version "20.3")
(defcustom msb-separator-diff 100
- "*Non-nil means use separators.
+ "Non-nil means use separators.
The separators will appear between all menus that have a sorting key
that differs by this value or more."
:type '(choice integer (const nil))
"*The sort key for files sorted by directory.")
(defcustom msb-max-menu-items 15
- "*The maximum number of items in a menu.
+ "The maximum number of items in a menu.
If this variable is set to 15 for instance, then the submenu will be
split up in minor parts, 15 items each. A value of nil means no limit."
:type '(choice integer (const nil))
:group 'msb)
(defcustom msb-max-file-menu-items 10
- "*The maximum number of items from different directories.
+ "The maximum number of items from different directories.
When the menu is of type `file by directory', this is the maximum
number of buffers that are clumped together from different
:group 'msb)
(defcustom msb-most-recently-used-sort-key -1010
- "*Where should the menu with the most recently used buffers be placed?"
+ "Where should the menu with the most recently used buffers be placed?"
:type 'integer
:set 'msb-custom-set
:group 'msb)
(defcustom msb-display-most-recently-used 15
- "*How many buffers should be in the most-recently-used menu.
+ "How many buffers should be in the most-recently-used menu.
No buffers at all if less than 1 or nil (or any non-number)."
:type 'integer
:set 'msb-custom-set
:group 'msb)
(defcustom msb-most-recently-used-title "Most recently used (%d)"
- "*The title for the most-recently-used menu."
+ "The title for the most-recently-used menu."
:type 'string
:set 'msb-custom-set
:group 'msb)
"*Function that specifies how many pixels to shift the top menu leftwards.")
(defcustom msb-display-invisible-buffers-p nil
- "*Show invisible buffers or not.
+ "Show invisible buffers or not.
Non-nil means that the buffer menu should include buffers that have
names that starts with a space character."
:type 'boolean
information.")
(defcustom msb-item-sort-function 'msb-sort-by-name
- "*The order of items in a buffer menu.
+ "The order of items in a buffer menu.
The default function to call for handling the order of items in a menu
item. This function is called like a sort function. The items look
:group 'msb)
(defcustom msb-files-by-directory nil
- "*Non-nil means that files should be sorted by directory.
+ "Non-nil means that files should be sorted by directory.
This is instead of the groups in `msb-menu-cond'."
:type 'boolean
:set 'msb-custom-set
(with-current-buffer buffer
(when (and (not (msb-invisible-buffer-p))
(not (assq major-mode mode-list)))
- (push (cons major-mode mode-name)
+ (push (cons major-mode
+ (format-mode-line mode-name nil nil buffer))
mode-list))))
mode-list)
(lambda (item1 item2)