summaryrefslogtreecommitdiff
path: root/lisp/finder.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/finder.el')
-rw-r--r--lisp/finder.el54
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)