aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColin Walters2002-08-06 06:04:44 +0000
committerColin Walters2002-08-06 06:04:44 +0000
commit0e1701c45f65bfd3644ea1c846390aaef0c3dcda (patch)
tree781b05792d0508de1abc78227a5e85d9a123bcb7
parent5bc06df9fe280630c1db91bda476920b45a79667 (diff)
downloademacs-0e1701c45f65bfd3644ea1c846390aaef0c3dcda.tar.gz
emacs-0e1701c45f65bfd3644ea1c846390aaef0c3dcda.zip
(ibuffer-list-buffer-modes): New.
(ibuffer-filter-by-used-mode): New.
-rw-r--r--lisp/ibuf-ext.el39
1 files changed, 39 insertions, 0 deletions
diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el
index ff4e8b76e81..6c279d2642f 100644
--- a/lisp/ibuf-ext.el
+++ b/lisp/ibuf-ext.el
@@ -922,6 +922,26 @@ of replacing the current filters."
922 (error "Ibuffer: bad qualifier %s" qualifier)) 922 (error "Ibuffer: bad qualifier %s" qualifier))
923 (concat " [" (cadr type) ": " (format "%s]" (cdr qualifier))))))) 923 (concat " [" (cadr type) ": " (format "%s]" (cdr qualifier)))))))
924 924
925
926(defun ibuffer-list-buffer-modes ()
927 "Create an alist of buffer modes currently in use.
928The list returned will be of the form ("MODE-NAME" . MODE-SYMBOL)."
929 (let ((bufs (buffer-list))
930 (modes)
931 (this-mode))
932 (while bufs
933 (setq this-mode
934 (with-current-buffer
935 (car bufs)
936 major-mode)
937 bufs (cdr bufs))
938 (add-to-list
939 'modes
940 `(,(symbol-name this-mode) .
941 ,this-mode)))
942 modes))
943
944
925;;; Extra operation definitions 945;;; Extra operation definitions
926 946
927;;;###autoload (autoload 'ibuffer-filter-by-mode "ibuf-ext.el") 947;;;###autoload (autoload 'ibuffer-filter-by-mode "ibuf-ext.el")
@@ -942,6 +962,25 @@ of replacing the current filters."
942 ""))))) 962 "")))))
943 (eq qualifier (with-current-buffer buf major-mode))) 963 (eq qualifier (with-current-buffer buf major-mode)))
944 964
965;;;###autoload (autoload 'ibuffer-filter-by-used-mode "ibuf-ext.el")
966(define-ibuffer-filter used-mode
967 "Toggle current view to buffers with major mode QUALIFIER.
968Called interactively, this function allows selection of modes
969currently used by buffers."
970 (:description "major mode in use"
971 :reader
972 (intern
973 (completing-read "Filter by major mode: "
974 (ibuffer-list-buffer-modes)
975 nil
976 t
977 (let ((buf (ibuffer-current-buffer)))
978 (if (and buf (buffer-live-p buf))
979 (with-current-buffer buf
980 (symbol-name major-mode))
981 "")))))
982 (eq qualifier (with-current-buffer buf major-mode)))
983
945;;;###autoload (autoload 'ibuffer-filter-by-name "ibuf-ext.el") 984;;;###autoload (autoload 'ibuffer-filter-by-name "ibuf-ext.el")
946(define-ibuffer-filter name 985(define-ibuffer-filter name
947 "Toggle current view to buffers with name matching QUALIFIER." 986 "Toggle current view to buffers with name matching QUALIFIER."