[clim-desktop-cvs] CVS clim-desktop

thenriksen thenriksen at common-lisp.net
Sun May 28 16:48:46 UTC 2006


Update of /project/clim-desktop/cvsroot/clim-desktop
In directory clnet:/tmp/cvs-serv28990

Modified Files:
	swine.lisp swine-cmds.lisp 
Log Message:
Changed the name of the command Arglist Lookup to Lookup Arglist and
cleaned it a bit. Factored the lookup-arglist-at-point functionality
into a command imaginatively named com-lookup-arglist-for-this-symbol.


--- /project/clim-desktop/cvsroot/clim-desktop/swine.lisp	2006/05/28 16:28:42	1.12
+++ /project/clim-desktop/cvsroot/clim-desktop/swine.lisp	2006/05/28 16:48:46	1.13
@@ -761,9 +761,10 @@
                                  arglist emphasized-symbols
                                  highlighted-symbols))))
 
-(defun show-arglist (symbol name)
-  (unless (show-arglist-silent symbol)
-    (esa:display-message "Function ~a not found." name)))
+(defun show-arglist (symbol)
+  (unless (and (fboundp symbol)
+               (show-arglist-silent symbol))
+    (esa:display-message "Function ~a not found." symbol)))
 
 (defun find-argument-indices-for-operand (syntax operand-form operator-form)
   "Return a list of argument indices for `argument-form' relative
--- /project/clim-desktop/cvsroot/clim-desktop/swine-cmds.lisp	2006/05/28 12:26:08	1.16
+++ /project/clim-desktop/cvsroot/clim-desktop/swine-cmds.lisp	2006/05/28 16:48:46	1.17
@@ -187,22 +187,25 @@
               'lisp-table
               '((#\c :control) (#\d :control) (#\h)))
 
-(define-command (com-arglist-lookup :name t :command-table lisp-table)
+(define-command (com-lookup-arglist-for-this-symbol :command-table lisp-table)
+    ()
+  "Show argument list for symbol at point."
+  (let* ((pane (current-window))
+         (buffer (buffer pane))
+         (syntax (syntax buffer))
+         (mark (point pane))
+         (token (or (form-before syntax (offset mark))
+                    (form-around syntax (offset mark)))))
+    (if (and token (typep token 'complete-token-lexeme))
+        (com-lookup-arglist (token-to-object syntax token))
+        (esa:display-message "Could not find symbol at point."))))
+
+(define-command (com-lookup-arglist :name t :command-table lisp-table)
     ((symbol 'symbol :prompt "Symbol"))
-  "Show argument list for given symbol. If the provided argument
-is nil, this command will attempt to find a token at point."
-  (let* ((name (string-upcase (or symbol
-                                  (symbol-name-at-mark (point (current-window))
-						       (syntax (buffer (current-window))))
-                                  (accept 'symbol :prompt "Symbol")))))
-    (with-slots (package) (syntax (buffer (current-window)))
-      (let ((function-symbol (let* ((pos2 (position #\: name :from-end t))
-				    (pos1 (if (and pos2 (char= (elt name (1- pos2)) #\:)) (1- pos2) pos2) ))
-			       (if pos2 (find-symbol (subseq name (1+ pos2)) (subseq name 0 pos1))
-				   (find-symbol name (or package *package*))))))
-	(show-arglist function-symbol (string-upcase name))))))
+  "Show argument list for a given symbol."
+  (show-arglist symbol))
 
-(esa:set-key '(com-arglist-lookup nil)
+(esa:set-key `(com-lookup-arglist-for-this-symbol)
              'lisp-table
              '((#\c :control) (#\d :control) (#\a)))
 
@@ -307,7 +310,7 @@
     (list object))
 
 (define-presentation-to-command-translator lookup-symbol-arglist
-    (symbol com-arglist-lookup lisp-table
+    (symbol com-lookup-arglist lisp-table
             :gesture :describe
             :tester ((object presentation)
                      (declare (ignore object))




More information about the Clim-desktop-cvs mailing list