aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Andrus2012-04-23 22:07:40 -0400
committerStefan Monnier2012-04-23 22:07:40 -0400
commitc4cf6d91f36ebd8d05109926d9e16ba02693cb9f (patch)
tree4edfbaf9968173bf0bc7a6458e7df633a7b8e7cb
parent02fd101be2379fabdc5c45bf9ebd890e7c4bc58f (diff)
downloademacs-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/NEWS2
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/ibuf-ext.el24
-rw-r--r--lisp/ibuffer.el3
4 files changed, 29 insertions, 6 deletions
diff --git a/etc/NEWS b/etc/NEWS
index fcf9fc9397e..8dcd70b413b 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -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 @@
12012-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
12012-04-23 Andreas Politz <politza@fh-trier.de> 72012-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.
978If INCLUDE-PARENTS is non-nil then include parent modes.
978The list returned will be of the form (\"MODE-NAME\" . MODE-SYMBOL)." 979The 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" "\