Re: Lispworks 4.3: note-editor-definition-parser doesn't seem to work
Martin Simmons <[email protected]> Mon, 2 Feb 2004 11:45:14 GMT
| Newsgroups | gmane.lisp.cl-http |
|---|---|
| Message-ID | <[email protected]> |
>>>>> On Mon, 2 Feb 2004 11:23:12 GMT, Martin Simmons <[email protected]> said: >>>>> On Sun, 01 Feb 2004 22:22:43 +0000, Barry Wilkes <[email protected]> said: Barry> The macro note-editor-definition-parser in http:server;preliminary.lisp, Barry> which sets up source browsing via M-. in the lispworks editor doesn't Barry> work for me in Lispworks 4.3. From my reading of the Lispworks manual, Barry> the offending snippet Barry> ;; use the documented lispworks interface to define a form parser. Barry> #-(or LispWorks4.0 LispWorks4.1 LispWorks4.2) ; i.e. > 4.2 Barry> `(dspec:define-form-parser Barry> (,definer Barry> (:parser ,(dspec:get-form-parser deftype))))) Barry> *should* work, but doesn't. Replacing the above with the following Barry> works far better for me. Barry> ;; use the documented lispworks interface to define a form parser. Barry> #-(or LispWorks4.0 LispWorks4.1 LispWorks4.2) ; i.e. > 4.2 Barry> `(dspec:define-dspec-alias Barry> ,definer Barry> (name &rest args) Barry> `(,',deftype ,name ,@args))) Barry> I know that this code has been in cl-http for a while now, so I guess I Barry> would have to ask if the existing code works for anyone else -- maybe I Barry> am missing something. If not though, it would be good to get this Barry> replaced with the version I give above. Martin> The existing code works for me, e.g. do M-. and enter http::set-mask-bit-p and Martin> it shows the source in http:server;utils.lisp. Which definitions doesn't it Martin> work for, in what circumstances and what happens? No need -- I see the problem now. It works for defun-like things, but not define-parameter etc. Your code using dspec:define-dspec-alias is correct, though strictly speaking there should be a dspec:define-form-parser as well, but it works for these macros because they all begin with DEF and the defined name is always the second element of the form. __Martin