[slime-cvs] CVS update: slime/swank-lispworks.lisp
Helmut Eller
heller at common-lisp.net
Thu Feb 26 07:12:02 UTC 2004
Update of /project/slime/cvsroot/slime
In directory common-lisp.net:/tmp/cvs-serv7201
Modified Files:
swank-lispworks.lisp
Log Message:
(dspec-buffer-position): Renamed from dspec-buffer-buffer-position.
Handle dspecs of the form (defmacro foo).
(arglist-string): Handle unknown arglists properly.
Date: Thu Feb 26 02:12:02 2004
Author: heller
Index: slime/swank-lispworks.lisp
diff -u slime/swank-lispworks.lisp:1.23 slime/swank-lispworks.lisp:1.24
--- slime/swank-lispworks.lisp:1.23 Tue Feb 24 18:31:34 2004
+++ slime/swank-lispworks.lisp Thu Feb 26 02:12:02 2004
@@ -81,7 +81,13 @@
"lispworks")
(defimplementation arglist-string (fname)
- (format-arglist fname #'lw:function-lambda-list))
+ (format-arglist fname
+ (lambda (symbol)
+ (let ((arglist (lw:function-lambda-list symbol)))
+ (etypecase arglist
+ ((member :dont-know)
+ (error "<arglist-unavailable>"))
+ (cons arglist))))))
(defimplementation macroexpand-all (form)
(walker:walk-form form))
@@ -296,14 +302,11 @@
(delete-file binary-filename))))
(delete-file filename)))
-
-;; (dspec:dspec-primary-name '(:top-level-form 19))
-
-(defun dspec-buffer-buffer-position (dspec)
+(defun dspec-buffer-position (dspec)
(etypecase dspec
(cons (ecase (car dspec)
- (defun `(:function-name ,(symbol-name (cadr dspec))))
- (method `(:function-name ,(symbol-name (cadr dspec))))
+ ((defun method defmacro)
+ `(:function-name ,(symbol-name (cadr dspec))))
;; XXX this isn't quite right
(lw:top-level-form `(:source-path ,(cdr dspec) nil))))
(symbol `(:function-name ,(symbol-name dspec)))))
@@ -329,7 +332,7 @@
(etypecase location
((or pathname string)
(make-location `(:file ,(filename location))
- (dspec-buffer-buffer-position dspec)))
+ (dspec-buffer-position dspec)))
((member :listener)
`(:error ,(format nil "Function defined in listener: ~S" dspec)))
((member :unknown)
More information about the slime-cvs
mailing list