[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