From: Eshel Yaron Date: Fri, 7 Jun 2024 11:17:14 +0000 (+0200) Subject: Add default sorting and history variable to 'read-library-name' X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=fb494094bda7ae32db9df9658fcbb2c46bfa1c78;p=emacs.git Add default sorting and history variable to 'read-library-name' --- diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el index c3a46895069..ecf24c50698 100644 --- a/lisp/emacs-lisp/find-func.el +++ b/lisp/emacs-lisp/find-func.el @@ -402,6 +402,9 @@ customizing the candidate completions." 'face 'completions-annotations))))) libraries))) +(defvar read-library-name-history nil + "Minibuffer history for `read-library-name'.") + ;;;###autoload (defun read-library-name (&optional prompt) "Read and return a library name, defaulting to the one near point. @@ -413,9 +416,14 @@ if non-nil). Optional argument PROMPT is the minibuffer prompt to use, when nil or omitted it defaults to \"Library name\"." (let* ((prompt (or prompt "Library name")) - (files (read-library-name--find-files - (or find-library-source-path load-path) - (find-library-suffixes))) + (files (seq-filter + (lambda (library) + ;; Filter out spurious non-libraries. + (not (or (string= library ".dir-locals") + (string-suffix-p "-pkg" library)))) + (read-library-name--find-files + (or find-library-source-path load-path) + (find-library-suffixes)))) (def (thing-at-point 'symbol)) (def (and (member def files) def))) (completing-read (format-prompt prompt def) @@ -427,7 +435,7 @@ omitted it defaults to \"Library name\"." ,@(when completions-detailed '((affixation-function . read-library-name-affixation))))) - nil t nil nil def))) + nil t nil 'read-library-name-history def))) (defun read-library-name--find-files (dirs suffixes) "Return a list of all files in DIRS that match SUFFIXES." diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index d97897b9243..b0dff6f5f45 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -1175,7 +1175,8 @@ styles for specific categories, such as files, buffers, etc." (symbol-help (styles . (basic shorthand substring))) (multiple-choice (styles . (basic substring)) (sort-function . identity)) (calendar-month (sort-function . identity)) - (keybinding (sort-function . minibuffer-sort-alphabetically))) + (keybinding (sort-function . minibuffer-sort-alphabetically)) + (library (sort-function . minibuffer-sort-alphabetically))) "Default settings for specific completion categories. Each entry has the shape (CATEGORY . ALIST) where ALIST is