Default argument for find-library

This commit is contained in:
Vinicius Jose Latorre 2007-10-31 12:39:44 +00:00
parent 3a47bb3e6a
commit c896ea9541
2 changed files with 20 additions and 5 deletions

View file

@ -192,11 +192,21 @@ TYPE should be nil to find a function, or `defvar' to find a variable."
(defun find-library (library)
"Find the elisp source of LIBRARY."
(interactive
(list
(completing-read "Library name: "
'locate-file-completion
(cons (or find-function-source-path load-path)
(find-library-suffixes)))))
(let* ((path (cons (or find-function-source-path load-path)
(find-library-suffixes)))
(def (if (eq (function-called-at-point) 'require)
(save-excursion
(backward-up-list)
(forward-char)
(backward-sexp -2)
(thing-at-point 'symbol))
(thing-at-point 'symbol))))
(when def
(setq def (and (locate-file-completion def path 'test) def)))
(list
(completing-read (if def (format "Library name (default %s): " def)
"Library name: ")
'locate-file-completion path nil nil nil def))))
(let ((buf (find-file-noselect (find-library-name library))))
(condition-case nil (switch-to-buffer buf) (error (pop-to-buffer buf)))))