Suppose you have a macro based on
define-condition
:
(defmacro defcondition (&rest args)
`(define-condition ,@args))
When the following form is evaluated, the system records the dspec (define-condition foo):
(defcondition foo () ())
Two setups are needed to allow the editor to locate such a defining form.
Firstly, this tells the system how to parse (defcondition ...) toplevel forms:
(dspec:define-form-parser
(defcondition
(:alias define-condition)))
(dspec:parse-form-dspec '(defcondition foo () ()))
=>
(defcondition foo)
Secondly, this tells the system that (defcondition foo) is an alias for (define-condition foo).
With this, the editor would report "Cannot find (DEFINE-CONDITION FOO) in ...".
(dspec:define-dspec-alias defcondition (name)
`(define-condition ,name))
So now this definition can be located:
(defcondition foo () ())
(define-condition foo () ())