mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-10 16:20:17 -08:00
New commands: find-library-other-window, find-library-other-frame
* lisp/emacs-lisp/find-func.el (find-library-other-window) (find-library-other-frame): New commands to complement the existing 'find-library' command. (Bug#26712) (read-library-name): New function to read a library name. * etc/NEWS: Mention 'find-library-other-window' and 'find-library-other-frame'.
This commit is contained in:
parent
1cbbecee66
commit
021430f4b4
2 changed files with 60 additions and 35 deletions
3
etc/NEWS
3
etc/NEWS
|
|
@ -356,6 +356,9 @@ use the local Emacs to edit remote files via Tramp. See the node
|
|||
** The new variable 'eval-expression-print-maximum-character' prevents
|
||||
large integers from being displayed as characters.
|
||||
|
||||
** Two new commands for finding the source code of Emacs Lisp
|
||||
libraries: 'find-library-other-window' and 'find-library-other-frame'.
|
||||
|
||||
|
||||
* Editing Changes in Emacs 26.1
|
||||
|
||||
|
|
|
|||
|
|
@ -271,13 +271,21 @@ TYPE should be nil to find a function, or `defvar' to find a variable."
|
|||
(cons (current-buffer) (match-beginning 0))))
|
||||
|
||||
;;;###autoload
|
||||
(defun find-library (library &optional other-window)
|
||||
(defun find-library (library)
|
||||
"Find the Emacs Lisp source of LIBRARY.
|
||||
LIBRARY should be a string (the name of the library). If the
|
||||
optional OTHER-WINDOW argument (i.e., the command argument) is
|
||||
specified, pop to a different window before displaying the
|
||||
buffer."
|
||||
(interactive
|
||||
|
||||
Interactively, prompt for LIBRARY using the one at or near point."
|
||||
(interactive (list (read-library-name)))
|
||||
(prog1
|
||||
(switch-to-buffer (find-file-noselect (find-library-name library)))
|
||||
(run-hooks 'find-function-after-hook)))
|
||||
|
||||
(defun read-library-name ()
|
||||
"Read and return a library name, defaulting to the one near point.
|
||||
|
||||
A library name is the filename of an Emacs Lisp library located
|
||||
in a directory under `load-path' (or `find-function-source-path',
|
||||
if non-nil)."
|
||||
(let* ((dirs (or find-function-source-path load-path))
|
||||
(suffixes (find-library-suffixes))
|
||||
(table (apply-partially 'locate-file-completion-table
|
||||
|
|
@ -297,17 +305,31 @@ buffer."
|
|||
(thing-at-point 'symbol))))
|
||||
(when (and def (not (test-completion def table)))
|
||||
(setq def nil))
|
||||
(list
|
||||
(completing-read (if def
|
||||
(format "Library name (default %s): " def)
|
||||
"Library name: ")
|
||||
table nil nil nil nil def)
|
||||
current-prefix-arg)))
|
||||
table nil nil nil nil def)))
|
||||
|
||||
;;;###autoload
|
||||
(defun find-library-other-window (library)
|
||||
"Find the Emacs Lisp source of LIBRARY in another window.
|
||||
|
||||
See `find-library' for more details."
|
||||
(interactive (list (read-library-name)))
|
||||
(prog1
|
||||
(funcall (if other-window
|
||||
'pop-to-buffer
|
||||
'pop-to-buffer-same-window)
|
||||
(find-file-noselect (find-library-name library)))
|
||||
(switch-to-buffer-other-window (find-file-noselect
|
||||
(find-library-name library)))
|
||||
(run-hooks 'find-function-after-hook)))
|
||||
|
||||
;;;###autoload
|
||||
(defun find-library-other-frame (library)
|
||||
"Find the Emacs Lisp source of LIBRARY in another frame.
|
||||
|
||||
See `find-library' for more details."
|
||||
(interactive (list (read-library-name)))
|
||||
(prog1
|
||||
(switch-to-buffer-other-frame (find-file-noselect
|
||||
(find-library-name library)))
|
||||
(run-hooks 'find-function-after-hook)))
|
||||
|
||||
;;;###autoload
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue