diff options
| author | Luc Teirlinck | 2004-03-27 02:09:45 +0000 |
|---|---|---|
| committer | Luc Teirlinck | 2004-03-27 02:09:45 +0000 |
| commit | 7b0a86abd0e209e7b290ae9c8f7a176517efe9d1 (patch) | |
| tree | 775e1abfcbdad596c63368552adb08b4502a4df0 | |
| parent | bdc52f22de7e3026a73c1972b35f0d5b3f628ea1 (diff) | |
| download | emacs-7b0a86abd0e209e7b290ae9c8f7a176517efe9d1.tar.gz emacs-7b0a86abd0e209e7b290ae9c8f7a176517efe9d1.zip | |
(Buffer-menu-revert-function): Make it suitable for
Auto Revert mode.
(Buffer-menu-files-only): New variable.
(Buffer-menu-toggle-files-only): New function.
(Buffer-menu-mode-map): Bind it to `T'.
(Buffer-menu-mode): Mention `T' in docstring.
Set buffer-stale-function.
(list-buffers-noselect): Mark buffer non-modified and set
Buffer-menu-files-only.
| -rw-r--r-- | lisp/buff-menu.el | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el index 02f93a0cff2..a1b0f4093c7 100644 --- a/lisp/buff-menu.el +++ b/lisp/buff-menu.el | |||
| @@ -99,6 +99,14 @@ nil for default sorting by visited order.") | |||
| 99 | (defvar Buffer-menu-mode-map nil | 99 | (defvar Buffer-menu-mode-map nil |
| 100 | "Local keymap for `Buffer-menu-mode' buffers.") | 100 | "Local keymap for `Buffer-menu-mode' buffers.") |
| 101 | 101 | ||
| 102 | (defvar Buffer-menu-files-only nil | ||
| 103 | "Non-nil if the current buffer-menu lists only file buffers. | ||
| 104 | This variable determines whether reverting the buffer lists only | ||
| 105 | file buffers. It affects both manual reverting and reverting by | ||
| 106 | Auto Revert Mode.") | ||
| 107 | |||
| 108 | (make-variable-buffer-local 'Buffer-menu-files-only) | ||
| 109 | |||
| 102 | (if Buffer-menu-mode-map | 110 | (if Buffer-menu-mode-map |
| 103 | () | 111 | () |
| 104 | (setq Buffer-menu-mode-map (make-keymap)) | 112 | (setq Buffer-menu-mode-map (make-keymap)) |
| @@ -131,6 +139,7 @@ nil for default sorting by visited order.") | |||
| 131 | (define-key Buffer-menu-mode-map "b" 'Buffer-menu-bury) | 139 | (define-key Buffer-menu-mode-map "b" 'Buffer-menu-bury) |
| 132 | (define-key Buffer-menu-mode-map "g" 'Buffer-menu-revert) | 140 | (define-key Buffer-menu-mode-map "g" 'Buffer-menu-revert) |
| 133 | (define-key Buffer-menu-mode-map "V" 'Buffer-menu-view) | 141 | (define-key Buffer-menu-mode-map "V" 'Buffer-menu-view) |
| 142 | (define-key Buffer-menu-mode-map "T" 'Buffer-menu-toggle-files-only) | ||
| 134 | (define-key Buffer-menu-mode-map [mouse-2] 'Buffer-menu-mouse-select) | 143 | (define-key Buffer-menu-mode-map [mouse-2] 'Buffer-menu-mouse-select) |
| 135 | ) | 144 | ) |
| 136 | 145 | ||
| @@ -167,13 +176,16 @@ Letters do not insert themselves; instead, they are commands. | |||
| 167 | \\[Buffer-menu-backup-unmark] -- back up a line and remove marks. | 176 | \\[Buffer-menu-backup-unmark] -- back up a line and remove marks. |
| 168 | \\[Buffer-menu-toggle-read-only] -- toggle read-only status of buffer on this line. | 177 | \\[Buffer-menu-toggle-read-only] -- toggle read-only status of buffer on this line. |
| 169 | \\[Buffer-menu-revert] -- update the list of buffers. | 178 | \\[Buffer-menu-revert] -- update the list of buffers. |
| 179 | \\[Buffer-menu-toggle-files-only] -- toggle whether the menu displays only file buffers. | ||
| 170 | \\[Buffer-menu-bury] -- bury the buffer listed on this line." | 180 | \\[Buffer-menu-bury] -- bury the buffer listed on this line." |
| 171 | (kill-all-local-variables) | 181 | (kill-all-local-variables) |
| 172 | (use-local-map Buffer-menu-mode-map) | 182 | (use-local-map Buffer-menu-mode-map) |
| 173 | (setq major-mode 'Buffer-menu-mode) | 183 | (setq major-mode 'Buffer-menu-mode) |
| 174 | (setq mode-name "Buffer Menu") | 184 | (setq mode-name "Buffer Menu") |
| 175 | (make-local-variable 'revert-buffer-function) | 185 | (set (make-local-variable 'revert-buffer-function) |
| 176 | (setq revert-buffer-function 'Buffer-menu-revert-function) | 186 | 'Buffer-menu-revert-function) |
| 187 | (set (make-local-variable 'buffer-stale-function) | ||
| 188 | #'(lambda (&optional noconfirm) t)) | ||
| 177 | (setq truncate-lines t) | 189 | (setq truncate-lines t) |
| 178 | (setq buffer-read-only t) | 190 | (setq buffer-read-only t) |
| 179 | (run-hooks 'buffer-menu-mode-hook)) | 191 | (run-hooks 'buffer-menu-mode-hook)) |
| @@ -184,7 +196,21 @@ Letters do not insert themselves; instead, they are commands. | |||
| 184 | (revert-buffer)) | 196 | (revert-buffer)) |
| 185 | 197 | ||
| 186 | (defun Buffer-menu-revert-function (ignore1 ignore2) | 198 | (defun Buffer-menu-revert-function (ignore1 ignore2) |
| 187 | (list-buffers)) | 199 | ;; We can not use save-excursion here. The buffer gets erased. |
| 200 | (let ((old-point (point))) | ||
| 201 | (list-buffers-noselect Buffer-menu-files-only) | ||
| 202 | (goto-char old-point))) | ||
| 203 | |||
| 204 | (defun Buffer-menu-toggle-files-only (arg) | ||
| 205 | "Toggle whether the current buffer-menu displays only file buffers. | ||
| 206 | With a positive ARG display only file buffers. With zero or | ||
| 207 | negative ARG, display other buffers as well." | ||
| 208 | (interactive "P") | ||
| 209 | (setq Buffer-menu-files-only | ||
| 210 | (cond ((not arg) (not Buffer-menu-files-only)) | ||
| 211 | ((> (prefix-numeric-value arg) 0) t))) | ||
| 212 | (revert-buffer)) | ||
| 213 | |||
| 188 | 214 | ||
| 189 | (defun Buffer-menu-buffer (error-if-non-existent-p) | 215 | (defun Buffer-menu-buffer (error-if-non-existent-p) |
| 190 | "Return buffer described by this line of buffer menu." | 216 | "Return buffer described by this line of buffer menu." |
| @@ -681,6 +707,8 @@ For more information, see the function `buffer-menu'." | |||
| 681 | ;; current buffer is not displayed for some reason. | 707 | ;; current buffer is not displayed for some reason. |
| 682 | (and desired-point | 708 | (and desired-point |
| 683 | (goto-char desired-point)) | 709 | (goto-char desired-point)) |
| 710 | (setq Buffer-menu-files-only files-only) | ||
| 711 | (set-buffer-modified-p nil) | ||
| 684 | (current-buffer)))) | 712 | (current-buffer)))) |
| 685 | 713 | ||
| 686 | ;;; arch-tag: e7dfcfc9-6cb2-46e4-bf55-8ef1936d83c6 | 714 | ;;; arch-tag: e7dfcfc9-6cb2-46e4-bf55-8ef1936d83c6 |