diff options
| author | Ivan Andrus | 2012-04-23 22:07:40 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2012-04-23 22:07:40 -0400 |
| commit | c4cf6d91f36ebd8d05109926d9e16ba02693cb9f (patch) | |
| tree | 4edfbaf9968173bf0bc7a6458e7df633a7b8e7cb | |
| parent | 02fd101be2379fabdc5c45bf9ebd890e7c4bc58f (diff) | |
| download | emacs-c4cf6d91f36ebd8d05109926d9e16ba02693cb9f.tar.gz emacs-c4cf6d91f36ebd8d05109926d9e16ba02693cb9f.zip | |
* lisp/ibuf-ext.el (ibuffer-list-buffer-modes): Add `include-parents' arg.
(ibuffer-filter-by-derived-mode): New filter.
* lisp/ibuffer.el (ibuffer-mode-map): Bind to `/ w'.
| -rw-r--r-- | etc/NEWS | 2 | ||||
| -rw-r--r-- | lisp/ChangeLog | 6 | ||||
| -rw-r--r-- | lisp/ibuf-ext.el | 24 | ||||
| -rw-r--r-- | lisp/ibuffer.el | 3 |
4 files changed, 29 insertions, 6 deletions
| @@ -74,6 +74,8 @@ character when doing minibuffer filename prompts. | |||
| 74 | 74 | ||
| 75 | * Changes in Specialized Modes and Packages in Emacs 24.2 | 75 | * Changes in Specialized Modes and Packages in Emacs 24.2 |
| 76 | 76 | ||
| 77 | ** New `derived-mode' filter for Ibuffer, bound to `/ w'. | ||
| 78 | |||
| 77 | ** Apropos | 79 | ** Apropos |
| 78 | 80 | ||
| 79 | *** The faces used by Apropos are now directly customizable. | 81 | *** The faces used by Apropos are now directly customizable. |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c6a024a36e0..8b4409fec0a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2012-04-24 Ivan Andrus <darthandrus@gmail.com> (tiny change) | ||
| 2 | |||
| 3 | * ibuf-ext.el (ibuffer-list-buffer-modes): Add `include-parents' arg. | ||
| 4 | (ibuffer-filter-by-derived-mode): New filter. | ||
| 5 | * ibuffer.el (ibuffer-mode-map): Bind to `/ w'. | ||
| 6 | |||
| 1 | 2012-04-23 Andreas Politz <politza@fh-trier.de> | 7 | 2012-04-23 Andreas Politz <politza@fh-trier.de> |
| 2 | 8 | ||
| 3 | * subr.el (accept-change-group): Fix arg usage (Bug#6095). | 9 | * subr.el (accept-change-group): Fix arg usage (Bug#6095). |
diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el index 22ec2f5df1f..dc90617f92e 100644 --- a/lisp/ibuf-ext.el +++ b/lisp/ibuf-ext.el | |||
| @@ -973,8 +973,9 @@ Interactively, prompt for NAME, and use the current filters." | |||
| 973 | (concat " [" (cadr type) ": " (format "%s]" (cdr qualifier))))))) | 973 | (concat " [" (cadr type) ": " (format "%s]" (cdr qualifier))))))) |
| 974 | 974 | ||
| 975 | 975 | ||
| 976 | (defun ibuffer-list-buffer-modes () | 976 | (defun ibuffer-list-buffer-modes (&optional include-parents) |
| 977 | "Create an alist of buffer modes currently in use. | 977 | "Create an alist of buffer modes currently in use. |
| 978 | If INCLUDE-PARENTS is non-nil then include parent modes. | ||
| 978 | The list returned will be of the form (\"MODE-NAME\" . MODE-SYMBOL)." | 979 | The list returned will be of the form (\"MODE-NAME\" . MODE-SYMBOL)." |
| 979 | (let ((bufs (buffer-list)) | 980 | (let ((bufs (buffer-list)) |
| 980 | (modes) | 981 | (modes) |
| @@ -982,10 +983,13 @@ The list returned will be of the form (\"MODE-NAME\" . MODE-SYMBOL)." | |||
| 982 | (while bufs | 983 | (while bufs |
| 983 | (setq this-mode (buffer-local-value 'major-mode (car bufs)) | 984 | (setq this-mode (buffer-local-value 'major-mode (car bufs)) |
| 984 | bufs (cdr bufs)) | 985 | bufs (cdr bufs)) |
| 985 | (add-to-list | 986 | (while this-mode |
| 986 | 'modes | 987 | (add-to-list |
| 987 | `(,(symbol-name this-mode) . | 988 | 'modes |
| 988 | ,this-mode))) | 989 | `(,(symbol-name this-mode) . |
| 990 | ,this-mode)) | ||
| 991 | (setq this-mode (and include-parents | ||
| 992 | (get this-mode 'derived-mode-parent))))) | ||
| 989 | modes)) | 993 | modes)) |
| 990 | 994 | ||
| 991 | 995 | ||
| @@ -1027,6 +1031,16 @@ currently used by buffers." | |||
| 1027 | ""))))) | 1031 | ""))))) |
| 1028 | (eq qualifier (buffer-local-value 'major-mode buf))) | 1032 | (eq qualifier (buffer-local-value 'major-mode buf))) |
| 1029 | 1033 | ||
| 1034 | (define-ibuffer-filter derived-mode | ||
| 1035 | "Toggle current view to buffers whose major mode inherits from QUALIFIER." | ||
| 1036 | (:description "derived mode" | ||
| 1037 | :reader | ||
| 1038 | (intern | ||
| 1039 | (completing-read "Filter by derived mode: " | ||
| 1040 | (ibuffer-list-buffer-modes t) | ||
| 1041 | nil nil ""))) | ||
| 1042 | (with-current-buffer buf (derived-mode-p qualifier))) | ||
| 1043 | |||
| 1030 | ;;;###autoload (autoload 'ibuffer-filter-by-name "ibuf-ext") | 1044 | ;;;###autoload (autoload 'ibuffer-filter-by-name "ibuf-ext") |
| 1031 | (define-ibuffer-filter name | 1045 | (define-ibuffer-filter name |
| 1032 | "Toggle current view to buffers with name matching QUALIFIER." | 1046 | "Toggle current view to buffers with name matching QUALIFIER." |
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el index 464b35fc3a6..b8c000b6884 100644 --- a/lisp/ibuffer.el +++ b/lisp/ibuffer.el | |||
| @@ -503,6 +503,7 @@ directory, like `default-directory'." | |||
| 503 | 503 | ||
| 504 | (define-key map (kbd "/ m") 'ibuffer-filter-by-mode) | 504 | (define-key map (kbd "/ m") 'ibuffer-filter-by-mode) |
| 505 | (define-key map (kbd "/ M") 'ibuffer-filter-by-used-mode) | 505 | (define-key map (kbd "/ M") 'ibuffer-filter-by-used-mode) |
| 506 | (define-key map (kbd "/ w") 'ibuffer-filter-by-derived-mode) | ||
| 506 | (define-key map (kbd "/ n") 'ibuffer-filter-by-name) | 507 | (define-key map (kbd "/ n") 'ibuffer-filter-by-name) |
| 507 | (define-key map (kbd "/ c") 'ibuffer-filter-by-content) | 508 | (define-key map (kbd "/ c") 'ibuffer-filter-by-content) |
| 508 | (define-key map (kbd "/ e") 'ibuffer-filter-by-predicate) | 509 | (define-key map (kbd "/ e") 'ibuffer-filter-by-predicate) |
| @@ -2645,7 +2646,7 @@ will be inserted before the group at point." | |||
| 2645 | ;;;;;; ibuffer-backward-filter-group ibuffer-forward-filter-group | 2646 | ;;;;;; ibuffer-backward-filter-group ibuffer-forward-filter-group |
| 2646 | ;;;;;; ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group | 2647 | ;;;;;; ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group |
| 2647 | ;;;;;; ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode | 2648 | ;;;;;; ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode |
| 2648 | ;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" "1400db1bc3d4a3010cbc4807a6725072") | 2649 | ;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" "b2b8f11ad22546ad05d6db0b7d388ac1") |
| 2649 | ;;; Generated autoloads from ibuf-ext.el | 2650 | ;;; Generated autoloads from ibuf-ext.el |
| 2650 | 2651 | ||
| 2651 | (autoload 'ibuffer-auto-mode "ibuf-ext" "\ | 2652 | (autoload 'ibuffer-auto-mode "ibuf-ext" "\ |