From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Noam Postavsky Newsgroups: gmane.emacs.bugs Subject: bug#32731: 26.1.50; Ibuffer filter by mode: Handle >1 mode names Date: Thu, 13 Sep 2018 15:09:41 -0400 Message-ID: References: <87bm919s5y.fsf@calancha-pc.dy.bbexcite.jp> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" X-Trace: blaine.gmane.org 1536865695 25860 195.159.176.226 (13 Sep 2018 19:08:15 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 13 Sep 2018 19:08:15 +0000 (UTC) Cc: 32731@debbugs.gnu.org To: Tino Calancha Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Sep 13 21:08:10 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g0WyE-0006Xr-Fa for geb-bug-gnu-emacs@m.gmane.org; Thu, 13 Sep 2018 21:08:06 +0200 Original-Received: from localhost ([::1]:43965 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g0X0L-0007rk-2f for geb-bug-gnu-emacs@m.gmane.org; Thu, 13 Sep 2018 15:10:17 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38994) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g0X0D-0007rO-2Q for bug-gnu-emacs@gnu.org; Thu, 13 Sep 2018 15:10:11 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g0X08-0005At-QM for bug-gnu-emacs@gnu.org; Thu, 13 Sep 2018 15:10:08 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:35356) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g0X06-00056r-BA for bug-gnu-emacs@gnu.org; Thu, 13 Sep 2018 15:10:04 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1g0X06-0001uv-2M for bug-gnu-emacs@gnu.org; Thu, 13 Sep 2018 15:10:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Noam Postavsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 13 Sep 2018 19:10:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 32731 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 32731-submit@debbugs.gnu.org id=B32731.15368657907344 (code B ref 32731); Thu, 13 Sep 2018 19:10:02 +0000 Original-Received: (at 32731) by debbugs.gnu.org; 13 Sep 2018 19:09:50 +0000 Original-Received: from localhost ([127.0.0.1]:39614 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g0Wzt-0001uO-ND for submit@debbugs.gnu.org; Thu, 13 Sep 2018 15:09:49 -0400 Original-Received: from mail-ot1-f51.google.com ([209.85.210.51]:39288) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g0Wzs-0001uA-Ho for 32731@debbugs.gnu.org; Thu, 13 Sep 2018 15:09:48 -0400 Original-Received: by mail-ot1-f51.google.com with SMTP id c12-v6so2303639otl.6 for <32731@debbugs.gnu.org>; Thu, 13 Sep 2018 12:09:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=woUlzvZYxiDds8GHr/tVRs7PQOAjhJNoNcL+66lFYrk=; b=ANQJpMUb7/B1EYJHil0khDEuuTRXZRk5cNLApCQH1zrv22ohVvHqVK6DwUcM3JOPx0 1DLXGQe1lfr9tUauGDOjrhEgsfaPLKct2levuZSyXT/sub/lx+c1cbMVvmrqnZPSOwE/ RGll5g7ALqNbArK3lp1b6YUxbC87PmaYil0gSwDqrlliukq9f4i4fjL8JC336FuSmqJm fyTCsGc9Z5tCzT4Biy1OzWSzDFwhxXEqK/0DJCdTk7jvAPX8wSn9D3/xmVNlzE2TP3E8 08otmBwG9BWdUB3zkSiC74qNLYAJIYoe6Mf9xPgUgUoeiLZc3X+JIlFkSGnmi7augWPW pfXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=woUlzvZYxiDds8GHr/tVRs7PQOAjhJNoNcL+66lFYrk=; b=te9YmqKLZjB7iquAt/bt3YAYZe9qmPBneqdm+aC8uFcWBl0aML+0tS0K0ImolQ/+4D UCceYijlXavrzGXrCkyD77oyQPvSEeUehztgv8kS+JWKKzwsNbhsbdR+hjCfn4sch2rd gb5Ouxh1/5SA+xQYP5Lc0jd0jAk38R/Il5bokpaU963K4Ni5fmhMJRF5S80r8rFnTnsw CKCtFR76I36foBRYfTds7QxaGXW1VB4XwZ/cdBcscaWnVUtEVBYlpnm5XIxYOaMzBfUI GJ1NrIxYyluMxM8Ra0/glfCD0Al7DtlIhMpfxXXHummIMaNC2aSyhs9+UvHuAyETekTl InSA== X-Gm-Message-State: APzg51Du+Ta/miPuse5828jzpPXqm4zrTstVEiNatAQaOyTACyFd2OqE eFgFiBCBb8JFyNRydvwTLsd8hjZ6fVKwMXy8h2M= X-Google-Smtp-Source: ANB0VdY8INmHA/8i++w9z/TpkDIiIKeBmzO79sUItf96asrVRmc28frKu1LS6F7qA52DilsJ7laWA2dCGA43Mxesg9U= X-Received: by 2002:a9d:3f85:: with SMTP id r5-v6mr2121111otc.202.1536865782584; Thu, 13 Sep 2018 12:09:42 -0700 (PDT) Original-Received: by 2002:a9d:540f:0:0:0:0:0 with HTTP; Thu, 13 Sep 2018 12:09:41 -0700 (PDT) In-Reply-To: <87bm919s5y.fsf@calancha-pc.dy.bbexcite.jp> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:150297 Archived-At: On 13 September 2018 at 14:19, Tino Calancha 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)