emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 5d8c2bad21c: Support customization of sorting order for Imenu com


From: Juri Linkov
Subject: master 5d8c2bad21c: Support customization of sorting order for Imenu completion candidates
Date: Fri, 10 May 2024 12:48:37 -0400 (EDT)

branch: master
commit 5d8c2bad21cc647b3462acfe8e970419354cde83
Author: Juri Linkov <juri@linkov.net>
Commit: Juri Linkov <juri@linkov.net>

    Support customization of sorting order for Imenu completion candidates
    
    * lisp/imenu.el (imenu--completion-buffer):
    Set completion-extra-properties to '(:category imenu).
    (imenu--flatten-index-alist): Use imenu--subalist-p to handle
    newer format (INDEX-NAME INDEX-POSITION FUNCTION ARGUMENTS...)
    as well (bug#70846).
    
    * doc/emacs/misc.texi (DocView Navigation): Fix typo.
---
 doc/emacs/misc.texi |  2 +-
 lisp/imenu.el       | 12 +++++++-----
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index 04e6138b692..3bee88bca86 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -590,7 +590,7 @@ even when @command{mutool} can be found on your system, 
customize the
 variable @code{doc-view-imenu-enabled} to the @code{nil} value.  You
 can further customize how @code{imenu} items are formatted and
 displayed using the variables @code{doc-view-imenu-format} and
-@code{doc-view-flatten}.
+@code{doc-view-imenu-flatten}.
 
 @node DocView Searching
 @subsection DocView Searching
diff --git a/lisp/imenu.el b/lisp/imenu.el
index dd924b449cf..9c0c1ae144e 100644
--- a/lisp/imenu.el
+++ b/lisp/imenu.el
@@ -740,10 +740,12 @@ Return one of the entries in index-alist or nil."
                          (imenu--in-alist name prepared-index-alist)
                          ;; Default to `name' if it's in the alist.
                          name))))
-    (let ((minibuffer-setup-hook minibuffer-setup-hook))
-      ;; Display the completion buffer.
-      (if (not imenu-eager-completion-buffer)
-         (add-hook 'minibuffer-setup-hook 'minibuffer-completion-help))
+    ;; Display the completion buffer.
+    (minibuffer-with-setup-hook
+        (lambda ()
+          (setq-local completion-extra-properties '(:category imenu))
+          (unless imenu-eager-completion-buffer
+            (minibuffer-completion-help)))
       (setq name (completing-read prompt
                                  prepared-index-alist
                                  nil t nil 'imenu--history-list name)))
@@ -784,7 +786,7 @@ Returns t for rescan and otherwise an element or subelement 
of INDEX-ALIST."
                                 (concat prefix imenu-level-separator name)
                               name))))
        (cond
-       ((or (markerp pos) (numberp pos))
+       ((not (imenu--subalist-p item))
         (list (cons new-prefix pos)))
        (t
         (imenu--flatten-index-alist pos concat-names new-prefix)))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]