David O'Toole dto@gnu.org writes:
I would like this to work with SLIME's arguments list lookup and so on. My system retains all the documentation and arglist info at runtime so I could probably hook this up somehow.
Any suggestions on how I could make this work with SLIME?
First make sure that you use the slime-autodoc contrib. Then make sure that the following is executed whenever you open one of your games' source files:
(modify-syntax-entry ?[ "(") (modify-syntax-entry ?] ")")
Now, we can customize the SWANK side. You can do that by using ~/.swank.lisp.
Basically all you have to do is to add an :AROUND method for the default method of COMPUTE-ENRICHED-DECODED-ARGLIST like this:
(defmethod compute-enriched-decoded-arglist :around (operator-form argument-forms) (unless (find-package "DTO") (return (call-next-method))) (let ((dto-method-arglist (dto:method-lambda-list operator-form))) (if dto-method-arglist (decode-arglist dto-method-arglist) (call-next-method))))
DTO:METHOD-LAMBDA-LIST should return the lambda-list of the method named by the passed symbol.
I think that should be it. If you encounter problems, let me now.
-T.