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