>>>>> On Mon, 2 Feb 2004 11:23:12 GMT, Martin Simmons <martin@xxxxxxxxxxx> said:
>>>>> On Sun, 01 Feb 2004 22:22:43 +0000, Barry Wilkes <wilkesb@xxxxxxx> 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
|