diff lisp/emacs-lisp/find-func.el @ 79289:a6f04138250e

Default argument for find-library
author Vinicius Jose Latorre <viniciusjl@ig.com.br>
date Wed, 31 Oct 2007 12:46:29 +0000
parents 935157c0b596
children d5a339d25938
line wrap: on
line diff
--- a/lisp/emacs-lisp/find-func.el	Wed Oct 31 12:19:55 2007 +0000
+++ b/lisp/emacs-lisp/find-func.el	Wed Oct 31 12:46:29 2007 +0000
@@ -194,11 +194,21 @@
 (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)))))