diff options
Diffstat (limited to 'lisp/finder.el')
-rw-r--r-- | lisp/finder.el | 54 |
1 files changed, 22 insertions, 32 deletions
diff --git a/lisp/finder.el b/lisp/finder.el index 382bc2023f5..a2a27ea061d 100644 --- a/lisp/finder.el +++ b/lisp/finder.el @@ -1,7 +1,6 @@ ;;; finder.el --- topic & keyword-based code finder -*- lexical-binding: t -*- -;; Copyright (C) 1992, 1997-1999, 2001-2022 Free Software Foundation, -;; Inc. +;; Copyright (C) 1992-2022 Free Software Foundation, Inc. ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> ;; Created: 16 Jun 1992 @@ -76,20 +75,18 @@ "Association list of the standard \"Keywords:\" headers. Each element has the form (KEYWORD . DESCRIPTION).") -(defvar finder-mode-map - (let ((map (make-sparse-keymap))) - (define-key map " " 'finder-select) - (define-key map "f" 'finder-select) - (define-key map [follow-link] 'mouse-face) - (define-key map [mouse-2] 'finder-mouse-select) - (define-key map "\C-m" 'finder-select) - (define-key map "?" 'finder-summary) - (define-key map "n" 'next-line) - (define-key map "p" 'previous-line) - (define-key map "q" 'finder-exit) - (define-key map "d" 'finder-list-keywords) - map) - "Keymap used in `finder-mode'.") +(defvar-keymap finder-mode-map + :doc "Keymap used in `finder-mode'." + "SPC" #'finder-select + "f" #'finder-select + "<follow-link>" 'mouse-face + "<mouse-2>" #'finder-mouse-select + "C-m" #'finder-select + "?" #'finder-summary + "n" #'next-line + "p" #'previous-line + "q" #'finder-exit + "d" #'finder-list-keywords) (easy-menu-define finder-mode-menu finder-mode-map "Menu for `finder-mode'." @@ -362,19 +359,13 @@ not `finder-known-keywords'." (let ((package-list-unversioned t)) (package-show-package-list packages)))) -(define-button-type 'finder-xref 'action #'finder-goto-xref) - -(defun finder-goto-xref (button) - "Jump to a Lisp file for the BUTTON at point." - (let* ((file (button-get button 'xref)) - (lib (locate-library file))) - (if lib (finder-commentary lib) - (message "Unable to locate `%s'" file)))) - ;;;###autoload (defun finder-commentary (file) "Display FILE's commentary section. FILE should be in a form suitable for passing to `locate-library'." + ;; FIXME: Merge this function into `describe-package', which is + ;; strictly better as it has links to URLs and is in a proper help + ;; buffer with navigation forward and backward, etc. (interactive (list (completing-read "Library name: " @@ -391,12 +382,7 @@ FILE should be in a form suitable for passing to `locate-library'." (erase-buffer) (insert str) (goto-char (point-min)) - (while (re-search-forward "\\<\\([-[:alnum:]]+\\.el\\)\\>" nil t) - (if (locate-library (match-string 1)) - (make-text-button (match-beginning 1) (match-end 1) - 'xref (match-string-no-properties 1) - 'help-echo "Read this file's commentary" - :type 'finder-xref))) + (package--describe-add-library-links) (goto-char (point-min)) (setq buffer-read-only t) (set-buffer-modified-p nil) @@ -465,10 +451,14 @@ Quit the window and kill all Finder-related buffers." (defun finder-unload-function () "Unload the Finder library." - (with-demoted-errors (unload-feature 'finder-inf t)) + (with-demoted-errors "Error unloading finder: %S" + (unload-feature 'finder-inf t)) ;; continue standard unloading nil) +(define-obsolete-function-alias 'finder-goto-xref + #'package--finder-goto-xref "29.1") + (provide 'finder) |