changeset 85832:0d668376c2e1

Default argument for find-library
author Vinicius Jose Latorre <viniciusjl@ig.com.br>
date Wed, 31 Oct 2007 12:39:44 +0000
parents c07add3c6d78
children efa76b2f6668
files lisp/ChangeLog lisp/emacs-lisp/find-func.el
diffstat 2 files changed, 20 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Oct 31 11:48:02 2007 +0000
+++ b/lisp/ChangeLog	Wed Oct 31 12:39:44 2007 +0000
@@ -1,3 +1,8 @@
+2007-10-31  Sean O'Rourke  <sorourke@cs.ucsd.edu>
+
+	* emacs-lisp/find-func.el (find-library): use library at
+	point as default interactive argument.
+
 2007-10-31  Juanma Barranquero  <lekktu@gmail.com>
 
 	* shadowfile.el (shadow-join): Remove.
--- a/lisp/emacs-lisp/find-func.el	Wed Oct 31 11:48:02 2007 +0000
+++ b/lisp/emacs-lisp/find-func.el	Wed Oct 31 12:39:44 2007 +0000
@@ -192,11 +192,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)))))