From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Damien Cassou Newsgroups: gmane.emacs.bugs Subject: bug#27134: 25.2; Add imenu support to package-menu-mode Date: Mon, 29 May 2017 20:39:36 +0200 Message-ID: <87h903fqxj.fsf@cassou.me> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: blaine.gmane.org 1496083276 4101 195.159.176.226 (29 May 2017 18:41:16 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 29 May 2017 18:41:16 +0000 (UTC) To: 27134@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon May 29 20:41:08 2017 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 1dFPbH-0000mP-NS for geb-bug-gnu-emacs@m.gmane.org; Mon, 29 May 2017 20:41:08 +0200 Original-Received: from localhost ([::1]:50012 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFPbM-0006MQ-UB for geb-bug-gnu-emacs@m.gmane.org; Mon, 29 May 2017 14:41:12 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:59241) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFPbG-0006Ku-5s for bug-gnu-emacs@gnu.org; Mon, 29 May 2017 14:41:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dFPbC-0002Qp-Iw for bug-gnu-emacs@gnu.org; Mon, 29 May 2017 14:41:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:41010) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dFPbC-0002Ql-Df for bug-gnu-emacs@gnu.org; Mon, 29 May 2017 14:41:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dFPbC-0002Tv-7e for bug-gnu-emacs@gnu.org; Mon, 29 May 2017 14:41:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Damien Cassou Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 29 May 2017 18:41:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 27134 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.14960832069407 (code B ref -1); Mon, 29 May 2017 18:41:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 29 May 2017 18:40:06 +0000 Original-Received: from localhost ([127.0.0.1]:43685 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dFPaH-0002Rf-TS for submit@debbugs.gnu.org; Mon, 29 May 2017 14:40:06 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:39898) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dFPaF-0002R6-Ak for submit@debbugs.gnu.org; Mon, 29 May 2017 14:40:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dFPa9-0002DV-B7 for submit@debbugs.gnu.org; Mon, 29 May 2017 14:39:58 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:41557) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dFPa9-0002DR-7D for submit@debbugs.gnu.org; Mon, 29 May 2017 14:39:57 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:59096) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFPa7-0006EI-R4 for bug-gnu-emacs@gnu.org; Mon, 29 May 2017 14:39:57 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dFPa4-0002CS-GX for bug-gnu-emacs@gnu.org; Mon, 29 May 2017 14:39:55 -0400 Original-Received: from mail.choca.pics ([62.210.108.126]:46528) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dFPa4-0002BR-4f for bug-gnu-emacs@gnu.org; Mon, 29 May 2017 14:39:52 -0400 Original-Received: from localhost (localhost.localdomain [IPv6:::1]) by mail.choca.pics (Postfix) with ESMTP id 24958232B8F6 for ; Mon, 29 May 2017 20:39:40 +0200 (CEST) Original-Received: from mail.choca.pics ([IPv6:::1]) by localhost (mail.choca.pics [IPv6:::1]) (amavisd-new, port 10032) with ESMTP id gCt2ps--eYJY for ; Mon, 29 May 2017 20:39:39 +0200 (CEST) Original-Received: from localhost (localhost.localdomain [IPv6:::1]) by mail.choca.pics (Postfix) with ESMTP id 3B2A3232B8F7 for ; Mon, 29 May 2017 20:39:39 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.choca.pics 3B2A3232B8F7 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cassou.me; s=9EA44F5C-DEF4-11E6-A83F-A08DF322D8FB; t=1496083179; bh=uoGoCMtFm7iIHKQeBbtUMGrwIYFYXYN2x6cLb0M9FpU=; h=From:To:Date:Message-ID:MIME-Version; b=gWKr4nbfSa/MJ+eD26VpCLxCzcb3KwwZuzZXQaQivDTB5QPSnpAnOe8C/ILPsU4qB AS1K2ieWP7Cg76zID+GuQanhwyxYqpxb25DJENMIPnlrDOsXkrXpFkNHWPZCPzKlJk GlEmGBgBDQKmiizadHlE/pKiGT4B+e1OvXCYYtz3puBq1NI5HTAqiLWfsToq/lftmc /WnfXta62IcnuwfEt7QOPXw/OG7Hvqz6NrH/sFsSMvKLZJusaDRpPmS6zsbywjqQFb QvrPQz8de7mmBZ4eW7iXfE+EsNXmnv4/0S3TYwGJL+f4rkcZ8QiA1UaRI/M6WIczW8 q3aaq85jrMWFA== X-Virus-Scanned: amavisd-new at choca.pics Original-Received: from mail.choca.pics ([IPv6:::1]) by localhost (mail.choca.pics [IPv6:::1]) (amavisd-new, port 10026) with ESMTP id C-beUxkg-6Sy for ; Mon, 29 May 2017 20:39:39 +0200 (CEST) Original-Received: from luz4 (c80-216-198-172.bredband.comhem.se [80.216.198.172]) by mail.choca.pics (Postfix) with ESMTPSA id E56DC232B8F6 for ; Mon, 29 May 2017 20:39:38 +0200 (CEST) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x 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:133001 Archived-At: --=-=-= Content-Type: text/plain; format=flowed This commit adds Imenu support to package-menu-mode to rapidly go to any package through the standard Imenu interface. -- Damien Cassou http://damiencassou.seasidehosting.st "Success is the ability to go from one failure to another without losing enthusiasm." --Winston Churchill --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Add-imenu-support-to-package-menu-mode.patch >From c86ded55ec0e97cd464a47299ec8130b8a04f038 Mon Sep 17 00:00:00 2001 From: Damien Cassou Date: Mon, 29 May 2017 20:36:02 +0200 Subject: [PATCH] Add imenu support to package-menu-mode * lisp/emacs-list/package.el (package--imenu-prev-index-position-function package--imenu-extract-index-name-function): Imenu functions in package-menu-mode. --- lisp/emacs-lisp/package.el | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index cb8e2d6..40595ff 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -2551,7 +2551,11 @@ (define-derived-mode package-menu-mode tabulated-list-mode "Package Menu" (setq tabulated-list-padding 2) (setq tabulated-list-sort-key (cons "Status" nil)) (add-hook 'tabulated-list-revert-hook 'package-menu--refresh nil t) - (tabulated-list-init-header)) + (tabulated-list-init-header) + (setf imenu-prev-index-position-function + #'package--imenu-prev-index-position-function) + (setf imenu-extract-index-name-function + #'package--imenu-extract-index-name-function)) (defmacro package--push (pkg-desc status listname) "Convenience macro for `package-menu--generate'. @@ -3461,6 +3465,24 @@ (defun package-list-packages-no-fetch () (interactive) (list-packages t)) +(defun package--imenu-prev-index-position-function () + "Move point to previous line in package-menu buffer. +This function is used as a value for +`imenu-prev-index-position-function'." + (unless (bobp) + (forward-line -1))) + +(defun package--imenu-extract-index-name-function () + "Return imenu name for line at point. +This function is used as a value for +`imenu-extract-index-name-function'. Point should be at the +beginning of the line." + (let ((package-desc (tabulated-list-get-id))) + (format "%s (%s): %s" + (package-desc-name package-desc) + (package-version-join (package-desc-version package-desc)) + (package-desc-summary package-desc)))) + (provide 'package) ;;; package.el ends here -- 2.9.4 --=-=-=--