From unknown Mon Aug 18 09:05:48 2025 X-Loop: help-debbugs@gnu.org Subject: bug#11295: 24.0.95; New ibuffer filter derived-mode Resent-From: Ivan Andrus Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Apr 2012 11:13:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 11295 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 11295@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.133500674517491 (code B ref -1); Sat, 21 Apr 2012 11:13:01 +0000 Received: (at submit) by debbugs.gnu.org; 21 Apr 2012 11:12:25 +0000 Received: from localhost ([127.0.0.1]:45158 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SLYEr-0004Y3-3S for submit@debbugs.gnu.org; Sat, 21 Apr 2012 07:12:25 -0400 Received: from eggs.gnu.org ([208.118.235.92]:41813) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SLYEo-0004Xo-Dm for submit@debbugs.gnu.org; Sat, 21 Apr 2012 07:12:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SLYED-0002b3-SR for submit@debbugs.gnu.org; Sat, 21 Apr 2012 07:11:47 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:44529) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SLYED-0002au-Ma for submit@debbugs.gnu.org; Sat, 21 Apr 2012 07:11:45 -0400 Received: from eggs.gnu.org ([208.118.235.92]:48615) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SLYEB-00022T-Uy for bug-gnu-emacs@gnu.org; Sat, 21 Apr 2012 07:11:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SLYE9-0002ZM-0s for bug-gnu-emacs@gnu.org; Sat, 21 Apr 2012 07:11:43 -0400 Received: from mail-wi0-f169.google.com ([209.85.212.169]:41357) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SLYE8-0002Ye-Ny for bug-gnu-emacs@gnu.org; Sat, 21 Apr 2012 07:11:40 -0400 Received: by wibhm17 with SMTP id hm17so1302356wib.0 for ; Sat, 21 Apr 2012 04:11:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:content-type:content-transfer-encoding:subject:date:message-id :to:mime-version:x-mailer; bh=Di8LWDmgdL1Kpfebh0hJTs5FTVmOC0b4aY65SHU4Rcg=; b=XVmirM6wzyqx/2s+oAwCnT5ErgpJa6KXfYospOjDVWi2Zt+lRZQVSu93dPzdkVPh39 alIXCkVPdOwz1MUDAGmX/f+1LM0+UeOz2qjvhditALfSZ3639rPucvnFrqqmNU5VsoDi xqZAG4dRTDwm//wpHXnsqsH8mZtMEzTu88tIaRBTb7iisO6LpJ9otHTsbL+aQSNk3zTm iHcAAzmNP0QUuTnLLuW13zT1midcI1Lhny1vq8H9+6CDhn3eBCaWjikjXBPqo/woFdBd HVHl2GtbiMM0UbIIsxTF6+7g5EoPJeyeO25MEkQiAtZPghZdIEbrmUW5t6/iW+DVbJ8O N5sA== Received: by 10.180.95.34 with SMTP id dh2mr5393901wib.15.1335006698046; Sat, 21 Apr 2012 04:11:38 -0700 (PDT) Received: from [10.0.2.16] (catv-80-99-177-93.catv.broadband.hu. [80.99.177.93]) by mx.google.com with ESMTPS id ca3sm4863576wib.6.2012.04.21.04.11.36 (version=SSLv3 cipher=OTHER); Sat, 21 Apr 2012 04:11:37 -0700 (PDT) From: Ivan Andrus Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Date: Sat, 21 Apr 2012 13:11:35 +0200 Message-Id: <5DACA6C4-9C85-4464-B488-5FEEB6919839@gmail.com> Mime-Version: 1.0 (Apple Message framework v1084) X-Mailer: Apple Mail (2.1084) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 208.118.235.17 X-Spam-Score: -6.1 (------) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.1 (------) I have often wished to be able to use derived-mode instead of mode when filtering in ibuffer. This allows, for example, grouping all make files without specifying each variant make file mode individually. I finally looked into adding this and it's very easy. I have attached one possible implemention below. I feel it's definitely a trivial addition (I don't have papers on file with the FSF) since it consists mostly of copy/paste from `derived-mode-p' and the `mode' ibuffer-filter. If, however, you disagree that it's not trivial, please reimplement as needed. You can also contact me about papers, though it seems like a lot of work for such a small addition. (define-ibuffer-filter derived-mode "Toggle current view to buffers whose major mode inherits from = QUALIFIER." (:description "major mode" :reader (intern (completing-read "Filter by major mode: " obarray #'(lambda (e) (string-match "-mode$" (symbol-name e))) t (let ((buf = (ibuffer-current-buffer))) (if (and buf (buffer-live-p buf)) (symbol-name = (buffer-local-value 'major-mode buf)) ""))))) (let ((parent (buffer-local-value 'major-mode buf))) (while (and (not (eq parent qualifier)) (setq parent (get parent 'derived-mode-parent)))) (eq parent qualifier))) In GNU Emacs 24.0.95.1 (i386-apple-darwin10.8.0, NS = apple-appkit-1038.36) of 2012-04-07 on oroszlan.local From unknown Mon Aug 18 09:05:48 2025 X-Loop: help-debbugs@gnu.org Subject: bug#11295: 24.0.95; New ibuffer filter derived-mode Resent-From: Stefan Monnier Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Apr 2012 14:26:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 11295 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Ivan Andrus Cc: 11295@debbugs.gnu.org Received: via spool by 11295-submit@debbugs.gnu.org id=B11295.13350183345735 (code B ref 11295); Sat, 21 Apr 2012 14:26:02 +0000 Received: (at 11295) by debbugs.gnu.org; 21 Apr 2012 14:25:34 +0000 Received: from localhost ([127.0.0.1]:45790 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SLbFm-0001UR-4W for submit@debbugs.gnu.org; Sat, 21 Apr 2012 10:25:34 -0400 Received: from ironport-out.teksavvy.com ([206.248.143.162]:58687) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SLbFj-0001UB-NI for 11295@debbugs.gnu.org; Sat, 21 Apr 2012 10:25:31 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjIKACxOgk/O+K5t/2dsb2JhbABDtheCDAOBDIEIggkBAQQBViMFCwsOJhIUGA0kiBwFtjKLYYR5BKRFgV2DAw X-IronPort-AV: E=Sophos;i="4.75,391,1330923600"; d="scan'208";a="175740678" Received: from 206-248-174-109.dsl.teksavvy.com (HELO pastel.home) ([206.248.174.109]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 21 Apr 2012 10:24:55 -0400 Received: by pastel.home (Postfix, from userid 20848) id D4C0258D2D; Sat, 21 Apr 2012 10:24:54 -0400 (EDT) From: Stefan Monnier Message-ID: References: <5DACA6C4-9C85-4464-B488-5FEEB6919839@gmail.com> Date: Sat, 21 Apr 2012 10:24:54 -0400 In-Reply-To: <5DACA6C4-9C85-4464-B488-5FEEB6919839@gmail.com> (Ivan Andrus's message of "Sat, 21 Apr 2012 13:11:35 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.94 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.9 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) > (define-ibuffer-filter derived-mode > "Toggle current view to buffers whose major mode inherits from QUALIFIER." > (:description "major mode" > :reader > (intern > (completing-read "Filter by major mode: " obarray > #'(lambda (e) > (string-match "-mode$" > (symbol-name e))) This completion table doesn't sound very good. Much better would be to collect all major modes in use and all their parents. > t > (let ((buf (ibuffer-current-buffer))) > (if (and buf (buffer-live-p buf)) > (symbol-name (buffer-local-value 'major-mode buf)) > ""))))) > (let ((parent (buffer-local-value 'major-mode buf))) > (while (and (not (eq parent qualifier)) > (setq parent (get parent 'derived-mode-parent)))) > (eq parent qualifier))) Why not use (with-current-buffer buf (derived-mode-p parent))? Another question: couldn't it simply *replace* the existing mode filter? I guess it could be a bit annoying if you want to see fundamental-mode buffers (since most modes derive from it), but that's the only downside I can think of. Stefan From unknown Mon Aug 18 09:05:48 2025 X-Loop: help-debbugs@gnu.org Subject: bug#11295: 24.0.95; New ibuffer filter derived-mode Resent-From: Ivan Andrus Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Apr 2012 15:26:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 11295 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 11295@debbugs.gnu.org Received: via spool by 11295-submit@debbugs.gnu.org id=B11295.133502193911124 (code B ref 11295); Sat, 21 Apr 2012 15:26:01 +0000 Received: (at 11295) by debbugs.gnu.org; 21 Apr 2012 15:25:39 +0000 Received: from localhost ([127.0.0.1]:45814 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SLcBv-0002tI-DC for submit@debbugs.gnu.org; Sat, 21 Apr 2012 11:25:39 -0400 Received: from mail-wg0-f46.google.com ([74.125.82.46]:54191) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SLcBs-0002t3-RI for 11295@debbugs.gnu.org; Sat, 21 Apr 2012 11:25:38 -0400 Received: by wgbdq11 with SMTP id dq11so11044932wgb.15 for <11295@debbugs.gnu.org>; Sat, 21 Apr 2012 08:25:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date :content-transfer-encoding:message-id:references:to:x-mailer; bh=ink8UyWk0MI66yAoL7lPX5W7Ohiz6uvA3HTlY5D8wIk=; b=S/wY0momgYIoEwj6B7KiDiN5Xvyv+oJim+x6giOq/fyJfpLwyyzla8HP6i2CUJw8AA 2TXRoPEoCpsCmkvx5jOrA4sKQqfhaaLZHDzNDdr+0ed5AHg6dhiOpXEbVZhTqcof1fyS xzpaOUkfT13XRXPRFH6LlxaiuLJNKznZNw8vIFhIBJWVTJ+rLcFZnRjhsvrtqdOpznZP h5d79D787OCmP9fDzKZ73uYJU+FFdEFfQv3LIgIwzJrhvjAT/vNksg0kVVcfs3NObzlM M2AJ5pKd4x49cXZ62QQDKbJwOU+H+oi+Nn+zas2t7l/49+5UFn9gQjchlwWiMeumLfA6 F06Q== Received: by 10.180.103.35 with SMTP id ft3mr6842215wib.0.1335021900250; Sat, 21 Apr 2012 08:25:00 -0700 (PDT) Received: from [10.0.2.16] (catv-80-99-177-93.catv.broadband.hu. [80.99.177.93]) by mx.google.com with ESMTPS id ff9sm6627923wib.2.2012.04.21.08.24.58 (version=SSLv3 cipher=OTHER); Sat, 21 Apr 2012 08:24:59 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Apple Message framework v1084) From: Ivan Andrus In-Reply-To: Date: Sat, 21 Apr 2012 17:24:58 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: References: <5DACA6C4-9C85-4464-B488-5FEEB6919839@gmail.com> X-Mailer: Apple Mail (2.1084) X-Spam-Score: -2.6 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) On Apr 21, 2012, at 4:24 PM, Stefan Monnier wrote: >> (define-ibuffer-filter derived-mode >> "Toggle current view to buffers whose major mode inherits from = QUALIFIER." >> (:description "major mode" >> :reader >> (intern >> (completing-read "Filter by major mode: " obarray >> #'(lambda (e) >> (string-match "-mode$" >> (symbol-name e))) >=20 > This completion table doesn't sound very good. Much better would be = to > collect all major modes in use and all their parents. That is a much better idea. As I said, I just copy/pasted without = thinking too much. My main use case is for = `ibuffer-saved-filter-groups' so completion doesn't matter at all there. >> t >> (let ((buf = (ibuffer-current-buffer))) >> (if (and buf (buffer-live-p buf)) >> (symbol-name = (buffer-local-value 'major-mode buf)) >> ""))))) >> (let ((parent (buffer-local-value 'major-mode buf))) >> (while (and (not (eq parent qualifier)) >> (setq parent (get parent 'derived-mode-parent)))) >> (eq parent qualifier))) >=20 > Why not use (with-current-buffer buf (derived-mode-p parent))? Uh. That would have been too easy. :-) > Another question: couldn't it simply *replace* the existing mode = filter? > I guess it could be a bit annoying if you want to see fundamental-mode > buffers (since most modes derive from it), but that's the only = downside > I can think of. I thought about it, but I do in fact filter by fundamental-mode (and a = few other modes) to hide "useless" buffers. =20 -Ivan= From unknown Mon Aug 18 09:05:48 2025 X-Loop: help-debbugs@gnu.org Subject: bug#11295: 24.0.95; New ibuffer filter derived-mode Resent-From: Stefan Monnier Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Apr 2012 19:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 11295 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Ivan Andrus Cc: 11295@debbugs.gnu.org Received: via spool by 11295-submit@debbugs.gnu.org id=B11295.13350375202203 (code B ref 11295); Sat, 21 Apr 2012 19:46:01 +0000 Received: (at 11295) by debbugs.gnu.org; 21 Apr 2012 19:45:20 +0000 Received: from localhost ([127.0.0.1]:46061 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SLgFE-0000ZU-5e for submit@debbugs.gnu.org; Sat, 21 Apr 2012 15:45:20 -0400 Received: from ironport-out.teksavvy.com ([206.248.143.162]:27331) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SLgFC-0000ZI-Sy for 11295@debbugs.gnu.org; Sat, 21 Apr 2012 15:45:19 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjEKACxOgk/O+K5t/2dsb2JhbABDtheCDAOBDIEIggkBAQQBViMQCw4mEhQYDSSIHAW2MothhHkEpEWBXYMD X-IronPort-AV: E=Sophos;i="4.75,391,1330923600"; d="scan'208";a="175821428" Received: from 206-248-174-109.dsl.teksavvy.com (HELO pastel.home) ([206.248.174.109]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 21 Apr 2012 15:44:41 -0400 Received: by pastel.home (Postfix, from userid 20848) id 0FBE658D2D; Sat, 21 Apr 2012 15:44:41 -0400 (EDT) From: Stefan Monnier Message-ID: References: <5DACA6C4-9C85-4464-B488-5FEEB6919839@gmail.com> Date: Sat, 21 Apr 2012 15:44:41 -0400 In-Reply-To: (Ivan Andrus's message of "Sat, 21 Apr 2012 17:24:58 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.94 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.9 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) >> Why not use (with-current-buffer buf (derived-mode-p parent))? > Uh. That would have been too easy. :-) I can relate to that. >> Another question: couldn't it simply *replace* the existing mode filter? >> I guess it could be a bit annoying if you want to see fundamental-mode >> buffers (since most modes derive from it), but that's the only downside >> I can think of. > I thought about it, but I do in fact filter by fundamental-mode (and a few > other modes) to hide "useless" buffers. Fair enough. Please send us an updated patch, so we can install it, Stefan From unknown Mon Aug 18 09:05:48 2025 X-Loop: help-debbugs@gnu.org Subject: bug#11295: 24.0.95; New ibuffer filter derived-mode Resent-From: Ivan Andrus Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 23 Apr 2012 18:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 11295 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Stefan Monnier Cc: 11295@debbugs.gnu.org Received: via spool by 11295-submit@debbugs.gnu.org id=B11295.13352071376751 (code B ref 11295); Mon, 23 Apr 2012 18:53:02 +0000 Received: (at 11295) by debbugs.gnu.org; 23 Apr 2012 18:52:17 +0000 Received: from localhost ([127.0.0.1]:49308 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SMOMz-0001ko-58 for submit@debbugs.gnu.org; Mon, 23 Apr 2012 14:52:17 -0400 Received: from mail-bk0-f44.google.com ([209.85.214.44]:35508) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SMOMv-0001kH-SL for 11295@debbugs.gnu.org; Mon, 23 Apr 2012 14:52:14 -0400 Received: by bkuw5 with SMTP id w5so8714762bku.3 for <11295@debbugs.gnu.org>; Mon, 23 Apr 2012 11:51:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:mime-version:content-type:from:in-reply-to:date:cc :message-id:references:to:x-mailer; bh=P40b7KRqTm2Ko6WVpp97O1ggZ0XhRiNnXQJM0mVcNCY=; b=g8Jvh1ZsrfbkWVJA0B7xHzyIW8ZnHzVqdkOjvU9IZi7aS0lMSg7YTq3KUsF6TaYLcY rgaZTG5656jYXlshR3MUfMj8LZfuI9HynK8vfHBQoBVVm3OfMHnykiGmzBp+spRhkgBb 4/RbypL2NAmimTXKGyF3mCtirRdG8kxVCojLyC29W+KTNZivON4U2+OvJiK3g1l4b99b AGr4K/etEeNTjMTw0PBF3RwkJHJkFzQo9UWFCsr9bg+xu1poFmEbLZDxP0Z9iLaNyRwL KSPjqqpDPyIDLkqhDCW1HgBlyAYkvBDsCpOhl9npV6uNA1qEVlYoafpXSl8OYFkmvF5V 0y2w== Received: by 10.204.128.75 with SMTP id j11mr4908031bks.2.1335207085092; Mon, 23 Apr 2012 11:51:25 -0700 (PDT) Received: from [10.0.2.16] (catv-80-99-177-93.catv.broadband.hu. [80.99.177.93]) by mx.google.com with ESMTPS id iq2sm7372128bkc.1.2012.04.23.11.51.22 (version=SSLv3 cipher=OTHER); Mon, 23 Apr 2012 11:51:23 -0700 (PDT) Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: multipart/mixed; boundary=Apple-Mail-40-417595815 From: Ivan Andrus In-Reply-To: Date: Mon, 23 Apr 2012 20:51:21 +0200 Message-Id: References: <5DACA6C4-9C85-4464-B488-5FEEB6919839@gmail.com> X-Mailer: Apple Mail (2.1084) X-Spam-Score: -2.6 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) --Apple-Mail-40-417595815 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii On Apr 21, 2012, at 9:44 PM, Stefan Monnier wrote: >>> Why not use (with-current-buffer buf (derived-mode-p parent))? >> Uh. That would have been too easy. :-) >=20 > I can relate to that. >=20 >>> Another question: couldn't it simply *replace* the existing mode = filter? >>> I guess it could be a bit annoying if you want to see = fundamental-mode >>> buffers (since most modes derive from it), but that's the only = downside >>> I can think of. >> I thought about it, but I do in fact filter by fundamental-mode (and = a few >> other modes) to hide "useless" buffers. =20 >=20 > Fair enough. Please send us an updated patch, so we can install it, Attached is an updated patch. I also added a keybinding, though I'm not = entirely happy with it. I chose / w since w is an upside down m. My = first choices of m, M, p, P, d, and D were all taken. They were for = mode, parent, and derived. Feel free to ignore or change that portion. = Perhaps the key should replace one of the current mode filter keys m and = M. FWIW, I contacted assign@gnu.org for some changes in expand-region.el. -Ivan --Apple-Mail-40-417595815 Content-Disposition: attachment; filename=ibuffer.patch Content-Type: application/octet-stream; name="ibuffer.patch" Content-Transfer-Encoding: 7bit === modified file 'lisp/ibuf-ext.el' --- lisp/ibuf-ext.el 2012-01-19 07:21:25 +0000 +++ lisp/ibuf-ext.el 2012-04-23 17:58:13 +0000 @@ -973,8 +973,9 @@ (concat " [" (cadr type) ": " (format "%s]" (cdr qualifier))))))) -(defun ibuffer-list-buffer-modes () +(defun ibuffer-list-buffer-modes (&optional include-parents) "Create an alist of buffer modes currently in use. +If INCLUDE-PARENTS is non-nil then include parent modes. The list returned will be of the form (\"MODE-NAME\" . MODE-SYMBOL)." (let ((bufs (buffer-list)) (modes) @@ -982,10 +983,13 @@ (while bufs (setq this-mode (buffer-local-value 'major-mode (car bufs)) bufs (cdr bufs)) - (add-to-list - 'modes - `(,(symbol-name this-mode) . - ,this-mode))) + (while this-mode + (add-to-list + 'modes + `(,(symbol-name this-mode) . + ,this-mode)) + (setq this-mode (and include-parents + (get this-mode 'derived-mode-parent))))) modes)) @@ -1027,6 +1031,16 @@ ""))))) (eq qualifier (buffer-local-value 'major-mode buf))) +(define-ibuffer-filter derived-mode + "Toggle current view to buffers whose major mode inherits from QUALIFIER." + (:description "derived mode" + :reader + (intern + (completing-read "Filter by derived mode: " + (ibuffer-list-buffer-modes t) + nil nil ""))) + (with-current-buffer buf (derived-mode-p qualifier))) + ;;;###autoload (autoload 'ibuffer-filter-by-name "ibuf-ext") (define-ibuffer-filter name "Toggle current view to buffers with name matching QUALIFIER." === modified file 'lisp/ibuffer.el' --- lisp/ibuffer.el 2012-03-12 02:41:22 +0000 +++ lisp/ibuffer.el 2012-04-23 16:04:06 +0000 @@ -504,6 +504,7 @@ (define-key map (kbd "/ m") 'ibuffer-filter-by-mode) (define-key map (kbd "/ M") 'ibuffer-filter-by-used-mode) + (define-key map (kbd "/ w") 'ibuffer-filter-by-derived-mode) (define-key map (kbd "/ n") 'ibuffer-filter-by-name) (define-key map (kbd "/ c") 'ibuffer-filter-by-content) (define-key map (kbd "/ e") 'ibuffer-filter-by-predicate) --Apple-Mail-40-417595815-- From unknown Mon Aug 18 09:05:48 2025 X-Loop: help-debbugs@gnu.org Subject: bug#11295: 24.0.95; New ibuffer filter derived-mode Resent-From: Stefan Monnier Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 24 Apr 2012 03:48:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 11295 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Ivan Andrus Cc: 11295@debbugs.gnu.org Received: via spool by 11295-submit@debbugs.gnu.org id=B11295.133523923424035 (code B ref 11295); Tue, 24 Apr 2012 03:48:01 +0000 Received: (at 11295) by debbugs.gnu.org; 24 Apr 2012 03:47:14 +0000 Received: from localhost ([127.0.0.1]:49711 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SMWig-0006Fb-G8 for submit@debbugs.gnu.org; Mon, 23 Apr 2012 23:47:14 -0400 Received: from ironport-out.teksavvy.com ([206.248.143.162]:52710) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SMWif-0006FO-CZ for 11295@debbugs.gnu.org; Mon, 23 Apr 2012 23:47:13 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApYIACxOgk/O+Jnc/2dsb2JhbABDuCMDgQyBCIIJAQEEAVYjBQsLDiYSFBgNJBOICQW2MothhHkEpEWBXYMD X-IronPort-AV: E=Sophos;i="4.75,391,1330923600"; d="scan'208";a="176393075" Received: from 206-248-153-220.dsl.teksavvy.com (HELO pastel.home) ([206.248.153.220]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 23 Apr 2012 23:46:21 -0400 Received: by pastel.home (Postfix, from userid 20848) id 9244358EB0; Mon, 23 Apr 2012 23:46:21 -0400 (EDT) From: Stefan Monnier Message-ID: References: <5DACA6C4-9C85-4464-B488-5FEEB6919839@gmail.com> Date: Mon, 23 Apr 2012 23:46:21 -0400 In-Reply-To: (Ivan Andrus's message of "Mon, 23 Apr 2012 20:51:21 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.94 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.9 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) > Attached is an updated patch. Thank you, installed. > I also added a keybinding, though I'm not > entirely happy with it. I chose / w since w is an upside down m. My first > choices of m, M, p, P, d, and D were all taken. They were for mode, parent, > and derived. Feel free to ignore or change that portion. Perhaps the key > should replace one of the current mode filter keys m and M. `/ m' and `/ M' do the same, with `/ M' being the one with better completion, so I moved the `/ M' binding to `/ m' and bound yours to `/ M'. > FWIW, I contacted assign@gnu.org for some changes in expand-region.el. Thank you very much, Stefan From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 23 23:48:00 2012 Received: (at control) by debbugs.gnu.org; 24 Apr 2012 03:48:00 +0000 Received: from localhost ([127.0.0.1]:49714 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SMWjP-0006Gf-Oi for submit@debbugs.gnu.org; Mon, 23 Apr 2012 23:48:00 -0400 Received: from ironport-out.teksavvy.com ([206.248.143.162]:43297) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SMWjO-0006GS-So for control@debbugs.gnu.org; Mon, 23 Apr 2012 23:47:59 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkMPACxOgk/O+Jnc/2dsb2JhbABDtheCBwQBA4EMgQiCBQUBBRk9Mws0EhQYDYV/BwGCKBa2MothgVWDJASkRYFdgwM X-IronPort-AV: E=Sophos;i="4.75,391,1330923600"; d="scan'208";a="176393093" Received: from 206-248-153-220.dsl.teksavvy.com (HELO pastel.home) ([206.248.153.220]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 23 Apr 2012 23:47:08 -0400 Received: by pastel.home (Postfix, from userid 20848) id 17F3E58EB0; Mon, 23 Apr 2012 23:47:08 -0400 (EDT) From: Stefan Monnier To: control@debbugs.gnu.org Subject: Re: bug#11295: 24.0.95; New ibuffer filter derived-mode Message-ID: References: <5DACA6C4-9C85-4464-B488-5FEEB6919839@gmail.com> Date: Mon, 23 Apr 2012 23:47:08 -0400 In-Reply-To: (Ivan Andrus's message of "Mon, 23 Apr 2012 20:51:21 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.94 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) close 11295 thanks