[slime-cvs] CVS slime

heller heller at common-lisp.net
Mon Aug 4 20:25:51 UTC 2008


Update of /project/slime/cvsroot/slime
In directory clnet:/tmp/cvs-serv13391

Modified Files:
	ChangeLog swank-clisp.lisp 
Log Message:
Updates for CLISP-2.46.
Patch by Masayuki Onjo.

* swank-clisp.lisp (fspec-pathname, fspec-location): The structure
of (documentation symbol 'sys::file) used to be (path . lines)
but is now ((type path . lines) ...).

--- /project/slime/cvsroot/slime/ChangeLog	2008/08/04 20:25:42	1.1388
+++ /project/slime/cvsroot/slime/ChangeLog	2008/08/04 20:25:49	1.1389
@@ -1,5 +1,15 @@
+2008-08-04  Masayuki Onjo <masayuki.onjo at gmail.com>
+
+	Updates for CLISP-2.46.
+
+	* swank-clisp.lisp (fspec-pathname, fspec-location): The structure
+	of (documentation symbol 'sys::file) used to be (path . lines)
+	but is now ((type path . lines) ...).
+
 2008-08-04  Helmut Eller  <heller at common-lisp.net>
 
+
+
 	* swank-gray.lisp (slime-output-stream): Add a slot
 	"interactive-p" which should be true for streams which are flushed
 	periodically by the Lisp system.  Update the relevant backends
--- /project/slime/cvsroot/slime/swank-clisp.lisp	2008/08/03 18:23:10	1.70
+++ /project/slime/cvsroot/slime/swank-clisp.lisp	2008/08/04 20:25:50	1.71
@@ -212,12 +212,14 @@
     (:function (describe (symbol-function symbol)))
     (:class (describe (find-class symbol)))))
 
-(defun fspec-pathname (symbol)
-  (let ((path (documentation symbol 'sys::file))
+(defun fspec-pathname (spec)
+  (let ((path spec)
+	type
         lines)
     (when (consp path)
-      (psetq path (car path)
-             lines (cdr path)))
+      (psetq type (car path)
+	     path (cadr path)
+             lines (cddr path)))
     (when (and path
                (member (pathname-type path)
                        custom:*compiled-file-types* :test #'equal))
@@ -225,24 +227,26 @@
             (loop for suffix in custom:*source-file-types*
                thereis (probe-file (make-pathname :defaults path
                                                   :type suffix)))))
-    (values path lines)))
+    (values path type lines)))
 
-(defun fspec-location (fspec)
-  (multiple-value-bind (file lines)
+(defun fspec-location (name fspec)
+  (multiple-value-bind (file type lines)
       (fspec-pathname fspec)
-    (cond (file
-           (multiple-value-bind (truename c) (ignore-errors (truename file))
-             (cond (truename
-                    (make-location (list :file (namestring truename))
-                                   (if (consp lines)
-                                       (list* :line lines)
-                                       (list :function-name (string fspec)))))
-                   (t (list :error (princ-to-string c))))))
-          (t (list :error (format nil "No source information available for: ~S"
-                                  fspec))))))
+    (list (if type (list name type) name)
+	  (cond (file
+		 (multiple-value-bind (truename c) (ignore-errors (truename file))
+		   (cond (truename
+			  (make-location (list :file (namestring truename))
+					 (if (consp lines)
+					     (list* :line lines)
+					     (list :function-name (string fspec)))
+					 (list :snippet (format nil "~A" type))))
+			 (t (list :error (princ-to-string c))))))
+		(t (list :error (format nil "No source information available for: ~S"
+					fspec)))))))
 
 (defimplementation find-definitions (name)
-  (list (list name (fspec-location name))))
+  (mapcar #'(lambda (e) (fspec-location name e)) (documentation name 'sys::file)))
 
 (defun trim-whitespace (string)
   (string-trim #(#\newline #\space #\tab) string))
@@ -573,9 +577,8 @@
           (load fasl-file))
         nil))))
 
-(defimplementation swank-compile-string (string &key buffer position directory
-                                                debug)
-  (declare (ignore directory debug))
+(defimplementation swank-compile-string (string &key buffer position directory)
+  (declare (ignore directory))
   (with-compilation-hooks ()
     (let ((*buffer-name* buffer)
           (*buffer-offset* position))
@@ -600,7 +603,7 @@
 (defun xref-results (symbols)
   (let ((xrefs '()))
     (dolist (symbol symbols)
-      (push (list symbol (fspec-location symbol)) xrefs))
+      (push (fspec-location symbol symbol) xrefs))
     xrefs))
 
 (when (find-package :swank-loader)




More information about the slime-cvs mailing list