[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#32731: 26.1.50; Ibuffer filter by mode: Handle >1 mode names
From: |
Noam Postavsky |
Subject: |
bug#32731: 26.1.50; Ibuffer filter by mode: Handle >1 mode names |
Date: |
Thu, 13 Sep 2018 15:09:41 -0400 |
On 13 September 2018 at 14:19, Tino Calancha <tino.calancha@gmail.com> wrote:
> +;;;###autoload
> +(defun ibuffer-filter-by-used-modes(modes)
> + "Limit current view to buffers with major mode in MODES.
> +MODES is a list of mode names (symbols).
> +When called interactively, accept the mode names separated by commas."
> + (interactive
> + (let* ((buf (ibuffer-current-buffer))
> + (default (if (and buf (buffer-live-p buf))
> + (symbol-name (buffer-local-value
> + 'major-mode buf)))))
> + (list
> + (mapcar #'intern
> + (split-string
> + (completing-read
> + (if default
> + (format "Filter by major mode (default %s): " default)
> + "Filter by major mode: ")
> + (ibuffer-list-buffer-modes)
> + nil nil nil nil default)
> + "\\s-*,\\s-*" t)))))
This will use completion only for the first mode, right? Perhaps
completing-read-multiple would make more sense here.
> + (setq modes (delete-dups modes))
> + (mapc #'ibuffer-filter-by-used-mode modes)
> + (let ((nb_modes (length modes)))
> + (when (>= nb_modes 2)
> + (cl-loop repeat (- nb_modes 2) do (ibuffer-or-filter))
> + (message nil)
What's this `message' call for?
> + (ibuffer-or-filter))))
Maybe it's simpler to construct the filter directly? As in:
(push `(or ,@(mapcar (lambda (m) `(used-mode . ,m)) modes))
ibuffer-filtering-qualifiers)
(ibuffer-update nil t)
- bug#32731: 26.1.50; Ibuffer filter by mode: Handle >1 mode names, Tino Calancha, 2018/09/13
- bug#32731: 26.1.50; Ibuffer filter by mode: Handle >1 mode names,
Noam Postavsky <=
- bug#32731: 26.1.50; Ibuffer filter by mode: Handle >1 mode names, Tino Calancha, 2018/09/13
- bug#32731: 26.1.50; Ibuffer filter by mode: Handle >1 mode names, Tino Calancha, 2018/09/13
- bug#32731: 26.1.50; Ibuffer filter by mode: Handle >1 mode names, Noam Postavsky, 2018/09/13
- bug#32731: 26.1.50; Ibuffer filter by mode: Handle >1 mode names, Tino Calancha, 2018/09/15
- bug#32731: 26.1.50; Ibuffer filter by mode: Handle >1 mode names, Noam Postavsky, 2018/09/15
- bug#32731: 26.1.50; Ibuffer filter by mode: Handle >1 mode names, Tino Calancha, 2018/09/17
- bug#32731: 26.1.50; Ibuffer filter by mode: Handle >1 mode names, Eli Zaretskii, 2018/09/17
- bug#32731: 26.1.50; Ibuffer filter by mode: Handle >1 mode names, Tino Calancha, 2018/09/17
- bug#32731: 26.1.50; Ibuffer filter by mode: Handle >1 mode names, Eli Zaretskii, 2018/09/18
- bug#32731: 26.1.50; Ibuffer filter by mode: Handle >1 mode names, Noam Postavsky, 2018/09/18