[slime-cvs] CVS slime

CVS User trittweiler trittweiler at common-lisp.net
Sat Feb 7 13:19:50 UTC 2009


Update of /project/slime/cvsroot/slime
In directory cl-net:/tmp/cvs-serv826

Modified Files:
	swank-sbcl.lisp ChangeLog 
Log Message:
	In Xref, list IR1-conversion functions with :DEF-IR1-TRANSLATOR as
	prefix rather than DEFUN. (Test case: M-. on FUNCTION.)

	* swank-sbcl.lisp (definition-specifier): New function.
	(make-dspec): New function. Splitted from
	MAKE-SOURCE-LOCATION-SPECIFICATION.


--- /project/slime/cvsroot/slime/swank-sbcl.lisp	2009/01/27 14:56:14	1.233
+++ /project/slime/cvsroot/slime/swank-sbcl.lisp	2009/02/07 13:19:50	1.234
@@ -573,6 +573,15 @@
     :source-transform :define-source-transform)
   "Map SB-INTROSPECT definition type names to Slime-friendly forms")
 
+(defun definition-specifier (type name)
+  "Return a pretty specifier for NAME representing a definition of type TYPE."
+  (if (and (symbolp name)
+           (eq type :function)
+           (sb-int:info :function :ir1-convert name))
+      :def-ir1-translator
+      (getf *definition-types* type)))
+
+
 (defimplementation find-definitions (name)
   (loop for type in *definition-types* by #'cddr
         for locations = (sb-introspect:find-definition-sources-by-name
@@ -610,9 +619,7 @@
 
 
 (defun make-source-location-specification (type name source-location)
-  (list (list* (getf *definition-types* type)
-               name
-               (sb-introspect::definition-source-description source-location))
+  (list (make-dspec type name source-location)
         (if *debug-definition-finding*
             (make-definition-source-location source-location type name)
             (handler-case
@@ -620,6 +627,11 @@
               (error (e)
                 (list :error (format nil "Error: ~A" e)))))))
 
+(defun make-dspec (type name source-location)
+  (list* (definition-specifier type name)
+         name
+         (sb-introspect::definition-source-description source-location)))
+
 (defun make-definition-source-location (definition-source type name)
   (with-struct (sb-introspect::definition-source-
                    pathname form-path character-offset plist
@@ -1465,4 +1477,4 @@
            (multiple-value-bind (rpid status) (sb-posix:waitpid pid 0)
              (assert (= pid rpid))
              (assert (and (sb-posix:wifexited status)
-                          (zerop (sb-posix:wexitstatus status)))))))))
\ No newline at end of file
+                          (zerop (sb-posix:wexitstatus status)))))))))
--- /project/slime/cvsroot/slime/ChangeLog	2009/02/06 23:48:14	1.1675
+++ /project/slime/cvsroot/slime/ChangeLog	2009/02/07 13:19:50	1.1676
@@ -1,5 +1,14 @@
 2009-02-07  Tobias C. Rittweiler  <tcr at freebits.de>
 
+	In Xref, list IR1-conversion functions with :DEF-IR1-TRANSLATOR as
+	prefix rather than DEFUN. (Test case: M-. on FUNCTION.)
+
+	* swank-sbcl.lisp (definition-specifier): New function.
+	(make-dspec): New function. Splitted from
+	MAKE-SOURCE-LOCATION-SPECIFICATION.
+
+2009-02-07  Tobias C. Rittweiler  <tcr at freebits.de>
+
 	* slime.el (slime-initialize-macroexpansion-buffer): Clear the
 	buffer-undo-list, so the user can't get expansions from earlier
 	macroexpansions into the buffer, screwing up badly.





More information about the slime-cvs mailing list