• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.9.5/emacs-92/emacs/lisp/

Lines Matching defs:menu

1 ;;; buff-menu.el --- buffer menu main function and support functions -*- coding:utf-8 -*-
36 ;; Buffer-menu-view: New function
37 ;; Buffer-menu-view-other-window: New function
39 ;; Merged by esr with recent mods to Emacs 19 buff-menu, 23 Mar 1993
43 ;; Added optional backup argument to 'Buffer-menu-unmark' to make it undelete
51 ;;simple scenarios, when you enter the buffer menu, use it, and exit it.
58 ;;But since then, I changed buffer-menu to use the selected window,
61 ;;(defvar Buffer-menu-window-config nil
62 ;; "Window configuration saved from entry to `buffer-menu'.")
65 ;; so that from now on even list-buffers is enough to get a buffer menu.
67 (defgroup Buffer-menu nil
68 "Show a menu of all buffers in a buffer."
72 (defcustom Buffer-menu-use-header-line t
75 :group 'Buffer-menu)
77 (defface buffer-menu-buffer
79 "Face used to highlight buffer names in the buffer menu."
80 :group 'Buffer-menu)
81 (put 'Buffer-menu-buffer 'face-alias 'buffer-menu-buffer)
83 (defcustom Buffer-menu-buffer+size-width 26
86 :group 'Buffer-menu)
88 (defcustom Buffer-menu-mode-width 16
91 :group 'Buffer-menu)
93 (defcustom Buffer-menu-use-frame-buffer-list t
100 :group 'Buffer-menu
104 (defvar Buffer-menu-sort-column nil
105 "Which column to sort the menu on.
109 (defconst Buffer-menu-buffer-column 4)
111 (defvar Buffer-menu-mode-map nil
112 "Local keymap for `Buffer-menu-mode' buffers.")
114 (defvar Buffer-menu-files-only nil
115 "Non-nil if the current buffer-menu lists only file buffers.
123 (make-variable-buffer-local 'Buffer-menu-files-only)
125 (if Buffer-menu-mode-map
127 (setq Buffer-menu-mode-map (make-keymap))
128 (suppress-keymap Buffer-menu-mode-map t)
129 (define-key Buffer-menu-mode-map "q" 'quit-window)
130 (define-key Buffer-menu-mode-map "v" 'Buffer-menu-select)
131 (define-key Buffer-menu-mode-map "2" 'Buffer-menu-2-window)
132 (define-key Buffer-menu-mode-map "1" 'Buffer-menu-1-window)
133 (define-key Buffer-menu-mode-map "f" 'Buffer-menu-this-window)
134 (define-key Buffer-menu-mode-map "e" 'Buffer-menu-this-window)
135 (define-key Buffer-menu-mode-map "\C-m" 'Buffer-menu-this-window)
136 (define-key Buffer-menu-mode-map "o" 'Buffer-menu-other-window)
137 (define-key Buffer-menu-mode-map "\C-o" 'Buffer-menu-switch-other-window)
138 (define-key Buffer-menu-mode-map "s" 'Buffer-menu-save)
139 (define-key Buffer-menu-mode-map "d" 'Buffer-menu-delete)
140 (define-key Buffer-menu-mode-map "k" 'Buffer-menu-delete)
141 (define-key Buffer-menu-mode-map "\C-d" 'Buffer-menu-delete-backwards)
142 (define-key Buffer-menu-mode-map "\C-k" 'Buffer-menu-delete)
143 (define-key Buffer-menu-mode-map "x" 'Buffer-menu-execute)
144 (define-key Buffer-menu-mode-map " " 'next-line)
145 (define-key Buffer-menu-mode-map "n" 'next-line)
146 (define-key Buffer-menu-mode-map "p" 'previous-line)
147 (define-key Buffer-menu-mode-map "\177" 'Buffer-menu-backup-unmark)
148 (define-key Buffer-menu-mode-map "~" 'Buffer-menu-not-modified)
149 (define-key Buffer-menu-mode-map "?" 'describe-mode)
150 (define-key Buffer-menu-mode-map "u" 'Buffer-menu-unmark)
151 (define-key Buffer-menu-mode-map "m" 'Buffer-menu-mark)
152 (define-key Buffer-menu-mode-map "t" 'Buffer-menu-visit-tags-table)
153 (define-key Buffer-menu-mode-map "%" 'Buffer-menu-toggle-read-only)
154 (define-key Buffer-menu-mode-map "b" 'Buffer-menu-bury)
155 (define-key Buffer-menu-mode-map "g" 'Buffer-menu-revert)
156 (define-key Buffer-menu-mode-map "V" 'Buffer-menu-view)
157 (define-key Buffer-menu-mode-map "T" 'Buffer-menu-toggle-files-only)
158 (define-key Buffer-menu-mode-map [mouse-2] 'Buffer-menu-mouse-select)
159 (define-key Buffer-menu-mode-map [follow-link] 'mouse-face)
163 (put 'Buffer-menu-mode 'mode-class 'special)
165 (defun Buffer-menu-mode ()
169 \\<Buffer-menu-mode-map>
170 \\[Buffer-menu-mouse-select] -- select buffer you click on, in place of the buffer menu.
171 \\[Buffer-menu-this-window] -- select current line's buffer in place of the buffer menu.
172 \\[Buffer-menu-other-window] -- select that buffer in another window,
173 so the buffer menu buffer remains visible in its window.
174 \\[Buffer-menu-view] -- select current line's buffer, but in view-mode.
175 \\[Buffer-menu-view-other-window] -- select that buffer in
177 \\[Buffer-menu-switch-other-window] -- make another window display that buffer.
178 \\[Buffer-menu-mark] -- mark current line's buffer to be displayed.
179 \\[Buffer-menu-select] -- select current line's buffer.
181 \\[Buffer-menu-1-window] -- select that buffer in full-frame window.
182 \\[Buffer-menu-2-window] -- select that buffer in one window,
184 \\[Buffer-menu-visit-tags-table] -- visit-tags-table this buffer.
185 \\[Buffer-menu-not-modified] -- clear modified-flag on that buffer.
186 \\[Buffer-menu-save] -- mark that buffer to be saved, and move down.
187 \\[Buffer-menu-delete] -- mark that buffer to be deleted, and move down.
188 \\[Buffer-menu-delete-backwards] -- mark that buffer to be deleted, and move up.
189 \\[Buffer-menu-execute] -- delete or save marked buffers.
190 \\[Buffer-menu-unmark] -- remove all kinds of marks from current line.
192 \\[Buffer-menu-backup-unmark] -- back up a line and remove marks.
193 \\[Buffer-menu-toggle-read-only] -- toggle read-only status of buffer on this line.
194 \\[Buffer-menu-revert] -- update the list of buffers.
195 \\[Buffer-menu-toggle-files-only] -- toggle whether the menu displays only file buffers.
196 \\[Buffer-menu-bury] -- bury the buffer listed on this line."
198 (use-local-map Buffer-menu-mode-map)
199 (setq major-mode 'Buffer-menu-mode)
202 'Buffer-menu-revert-function)
207 (run-mode-hooks 'buffer-menu-mode-hook))
209 ;; This function exists so we can make the doc string of Buffer-menu-mode
211 (defun Buffer-menu-revert ()
216 (defun Buffer-menu-revert-function (ignore1 ignore2)
233 (list-buffers-noselect Buffer-menu-files-only))
241 (defun Buffer-menu-toggle-files-only (arg)
242 "Toggle whether the current buffer-menu displays only file buffers.
246 (setq Buffer-menu-files-only
247 (cond ((not arg) (not Buffer-menu-files-only))
253 (defun Buffer-menu-buffer (error-if-non-existent-p)
254 "Return buffer described by this line of buffer menu."
257 (+ (point) Buffer-menu-buffer-column)))
272 (defun buffer-menu (&optional arg)
273 "Make a menu of buffers so you can save, delete or select them.
276 Type q to remove the buffer menu from the display.
289 ;;; (setq Buffer-menu-window-config (current-window-configuration))
294 (defun buffer-menu-other-window (&optional arg)
299 Type q to remove the buffer menu from the display.
300 For more information, see the function `buffer-menu'."
302 ;;; (setq Buffer-menu-window-config (current-window-configuration))
307 (defun Buffer-menu-no-header ()
309 (if (or Buffer-menu-use-header-line
316 (defun Buffer-menu-mark ()
317 "Mark buffer on this line for being displayed by \\<Buffer-menu-mode-map>\\[Buffer-menu-select] command."
319 (when (Buffer-menu-no-header)
325 (defun Buffer-menu-unmark (&optional backup)
329 (when (Buffer-menu-no-header)
330 (let* ((buf (Buffer-menu-buffer t))
338 (defun Buffer-menu-backup-unmark ()
342 (Buffer-menu-unmark)
345 (defun Buffer-menu-delete (&optional arg)
346 "Mark buffer on this line to be deleted by \\<Buffer-menu-mode-map>\\[Buffer-menu-execute] command.
350 (when (Buffer-menu-no-header)
360 (Buffer-menu-no-header))
366 (defun Buffer-menu-delete-backwards (&optional arg)
367 "Mark buffer on this line to be deleted by \\<Buffer-menu-mode-map>\\[Buffer-menu-execute] command
370 (Buffer-menu-delete (- (or arg 1))))
372 (defun Buffer-menu-save ()
373 "Mark buffer on this line to be saved by \\<Buffer-menu-mode-map>\\[Buffer-menu-execute] command."
375 (when (Buffer-menu-no-header)
382 (defun Buffer-menu-not-modified (&optional arg)
386 (set-buffer (Buffer-menu-buffer t))
396 (defun Buffer-menu-beginning ()
398 (unless Buffer-menu-use-header-line
401 (defun Buffer-menu-execute ()
402 "Save and/or delete buffers marked with \\<Buffer-menu-mode-map>\\[Buffer-menu-save] or \\<Buffer-menu-mode-map>\\[Buffer-menu-delete] commands."
405 (Buffer-menu-beginning)
409 (set-buffer (Buffer-menu-buffer t))
416 (Buffer-menu-beginning)
417 (let ((buff-menu-buffer (current-buffer))
421 (let ((buf (Buffer-menu-buffer nil)))
423 (eq buf buff-menu-buffer)
432 (defun Buffer-menu-select ()
434 You can mark buffers with the \\<Buffer-menu-mode-map>\\[Buffer-menu-mark] command.
438 (let ((buff (Buffer-menu-buffer t))
439 (menu (current-buffer))
442 (Buffer-menu-beginning)
444 (setq tem (Buffer-menu-buffer t))
453 (or (eq menu buff)
454 (bury-buffer menu))
459 ;;; (if Buffer-menu-window-config
461 ;;; (set-window-configuration Buffer-menu-window-config)
462 ;;; (setq Buffer-menu-window-config nil)))
475 (defun Buffer-menu-visit-tags-table ()
478 (let ((file (buffer-file-name (Buffer-menu-buffer t))))
483 (defun Buffer-menu-1-window ()
486 (switch-to-buffer (Buffer-menu-buffer t))
490 (defun Buffer-menu-mouse-select (event)
498 (setq buffer (Buffer-menu-buffer t))))
505 (defun Buffer-menu-this-window ()
508 (switch-to-buffer (Buffer-menu-buffer t)))
510 (defun Buffer-menu-other-window ()
511 "Select this line's buffer in other window, leaving buffer menu visible."
513 (switch-to-buffer-other-window (Buffer-menu-buffer t)))
515 (defun Buffer-menu-switch-other-window ()
522 (display-buffer (Buffer-menu-buffer t))))
524 (defun Buffer-menu-2-window ()
527 (let ((buff (Buffer-menu-buffer t))
528 (menu (current-buffer))
535 (bury-buffer menu)))
537 (defun Buffer-menu-toggle-read-only ()
542 (set-buffer (Buffer-menu-buffer t))
553 (defun Buffer-menu-bury ()
556 (when (Buffer-menu-no-header)
559 (bury-buffer (Buffer-menu-buffer t))
568 (defun Buffer-menu-view ()
571 (view-buffer (Buffer-menu-buffer t)))
574 (defun Buffer-menu-view-other-window ()
577 (view-buffer-other-window (Buffer-menu-buffer t)))
589 For more information, see the function `buffer-menu'."
593 (defun Buffer-menu-buffer+size (name size &optional name-props size-props)
594 (if (> (+ (length name) (length size) 2) Buffer-menu-buffer+size-width)
598 (- Buffer-menu-buffer+size-width
606 (- Buffer-menu-buffer+size-width
615 (make-string (- Buffer-menu-buffer+size-width
621 (defun Buffer-menu-sort (column)
622 "Sort the buffer menu by COLUMN."
628 (setq Buffer-menu-sort-column column)
631 (Buffer-menu-beginning)
641 (Buffer-menu-revert)
644 (Buffer-menu-beginning)
659 (defun Buffer-menu-sort-by-column (&optional e)
660 "Sort the buffer menu by the column clicked on."
668 (Buffer-menu-sort col)))
670 (defvar Buffer-menu-sort-button-map
673 ;; Buffer-menu-use-header-line.
674 (define-key map [header-line mouse-1] 'Buffer-menu-sort-by-column)
675 (define-key map [header-line mouse-2] 'Buffer-menu-sort-by-column)
676 (define-key map [mouse-2] 'Buffer-menu-sort-by-column)
678 (define-key map "\C-m" 'Buffer-menu-sort-by-column)
680 "Local keymap for Buffer menu sort buttons.")
682 (defun Buffer-menu-make-sort-button (name column)
683 (if (equal column Buffer-menu-sort-column) (setq column nil))
687 (if Buffer-menu-use-header-line
692 'keymap Buffer-menu-sort-button-map))
703 For more information, see the function `buffer-menu'."
706 (mode-end (make-string (- Buffer-menu-mode-width 2) ?\s))
708 (Buffer-menu-buffer+size
709 (Buffer-menu-make-sort-button "Buffer" 2)
710 (Buffer-menu-make-sort-button "Size" 3))
712 (Buffer-menu-make-sort-button "Mode" 4) mode-end
713 (Buffer-menu-make-sort-button "File" 5) "\n"))
715 (when Buffer-menu-use-header-line
736 (unless Buffer-menu-use-header-line
748 (when Buffer-menu-use-frame-buffer-list
808 (if Buffer-menu-sort-column
810 (if (eq Buffer-menu-sort-column 3)
812 (< (nth Buffer-menu-sort-column a)
813 (nth Buffer-menu-sort-column b)))
815 (string< (nth Buffer-menu-sort-column a)
816 (nth Buffer-menu-sort-column b)))))
824 (Buffer-menu-buffer+size (nth 2 buffer)
828 font-lock-face buffer-menu-buffer
832 (if (> (length (nth 4 buffer)) Buffer-menu-mode-width)
833 (substring (nth 4 buffer) 0 Buffer-menu-mode-width)
836 (indent-to (+ Buffer-menu-buffer-column Buffer-menu-buffer+size-width
837 Buffer-menu-mode-width 4) 1)
840 (Buffer-menu-mode)
841 (when Buffer-menu-use-header-line
847 (setq Buffer-menu-files-only files-only)
852 ;;; buff-menu.el ends here