comparison lisp/ibuf-ext.el @ 108220:0b37f86b040e

Use define-minor-mode where applicable. * mh-show.el (mh-showing-mode): Move function to mh-e.el. * mh-e.el (mh-showing-mode): * url-dired.el (url-dired-minor-mode): * org-table.el (orgtbl-mode): * view.el (view-mode): * type-break.el (type-break-query-mode) (type-break-mode-line-message-mode): * textmodes/reftex.el (reftex-mode): * term/vt100.el (vt100-wide-mode): * tar-mode.el (tar-subfile-mode): * savehist.el (savehist-mode): * ibuf-ext.el (ibuffer-auto-mode): * composite.el (auto-composition-mode): * progmodes/vhdl-mode.el (vhdl-electric-mode, vhdl-stutter-mode): Use define-minor-mode. (vhdl-mode): Use static mode-line format. (vhdl-mode-line-update): Delete. (vhdl-create-mode-menu, vhdl-activate-customizations) (vhdl-hs-minor-mode): Don't bother calling it.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sun, 02 May 2010 22:29:46 -0400
parents 1d1d5d9bd884
children a3e1f7134e6e
comparison
equal deleted inserted replaced
108219:252a60daa4fb 108220:0b37f86b040e
88 (defvar ibuffer-tmp-hide-regexps nil 88 (defvar ibuffer-tmp-hide-regexps nil
89 "A list of regexps which should match buffer names to not show.") 89 "A list of regexps which should match buffer names to not show.")
90 90
91 (defvar ibuffer-tmp-show-regexps nil 91 (defvar ibuffer-tmp-show-regexps nil
92 "A list of regexps which should match buffer names to always show.") 92 "A list of regexps which should match buffer names to always show.")
93
94 (defvar ibuffer-auto-mode nil
95 "If non-nil, Ibuffer auto-mode should be enabled for this buffer.
96 Do not set this variable directly! Use the function
97 `ibuffer-auto-mode' instead.")
98 93
99 (defvar ibuffer-auto-buffers-changed nil) 94 (defvar ibuffer-auto-buffers-changed nil)
100 95
101 (defcustom ibuffer-saved-filters '(("gnus" 96 (defcustom ibuffer-saved-filters '(("gnus"
102 ((or (mode . message-mode) 97 ((or (mode . message-mode)
218 (not (eq ibuffer-buf buf)))) 213 (not (eq ibuffer-buf buf))))
219 (or 214 (or
220 (ibuffer-included-in-filters-p buf ibuffer-filtering-qualifiers) 215 (ibuffer-included-in-filters-p buf ibuffer-filtering-qualifiers)
221 (ibuffer-buf-matches-predicates buf ibuffer-always-show-predicates))))) 216 (ibuffer-buf-matches-predicates buf ibuffer-always-show-predicates)))))
222 217
218 ;;;###autoload
219 (define-minor-mode ibuffer-auto-mode
220 "Toggle use of Ibuffer's auto-update facility.
221 With numeric ARG, enable auto-update if and only if ARG is positive."
222 nil nil nil
223 (unless (derived-mode-p 'ibuffer-mode)
224 (error "This buffer is not in Ibuffer mode"))
225 (frame-or-buffer-changed-p 'ibuffer-auto-buffers-changed) ; Initialize state vector
226 (add-hook 'post-command-hook 'ibuffer-auto-update-changed))
227
223 (defun ibuffer-auto-update-changed () 228 (defun ibuffer-auto-update-changed ()
224 (when (frame-or-buffer-changed-p 'ibuffer-auto-buffers-changed) 229 (when (frame-or-buffer-changed-p 'ibuffer-auto-buffers-changed)
225 (dolist (buf (buffer-list)) 230 (dolist (buf (buffer-list))
226 (ignore-errors 231 (ignore-errors
227 (with-current-buffer buf 232 (with-current-buffer buf
228 (when (and ibuffer-auto-mode 233 (when (and ibuffer-auto-mode
229 (derived-mode-p 'ibuffer-mode)) 234 (derived-mode-p 'ibuffer-mode))
230 (ibuffer-update nil t))))))) 235 (ibuffer-update nil t)))))))
231
232 ;;;###autoload
233 (defun ibuffer-auto-mode (&optional arg)
234 "Toggle use of Ibuffer's auto-update facility.
235 With numeric ARG, enable auto-update if and only if ARG is positive."
236 (interactive)
237 (unless (derived-mode-p 'ibuffer-mode)
238 (error "This buffer is not in Ibuffer mode"))
239 (set (make-local-variable 'ibuffer-auto-mode)
240 (if arg
241 (plusp arg)
242 (not ibuffer-auto-mode)))
243 (frame-or-buffer-changed-p 'ibuffer-auto-buffers-changed) ; Initialize state vector
244 (add-hook 'post-command-hook 'ibuffer-auto-update-changed))
245 236
246 ;;;###autoload 237 ;;;###autoload
247 (defun ibuffer-mouse-filter-by-mode (event) 238 (defun ibuffer-mouse-filter-by-mode (event)
248 "Enable or disable filtering by the major mode chosen via mouse." 239 "Enable or disable filtering by the major mode chosen via mouse."
249 (interactive "e") 240 (interactive "e")