Macro | Package: ide | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version

## defdefiner

Arguments: new-definer standard-definer

The IDE's find-definition facility (see the description of the Definitions dialog) finds definitions in source code. The facility knows about standard defining macros such as defun, defvar, defgeneric, defmacro, etc. (they are listed below) but developers may define their own macros for defining things in their application and those defining forms will not, in the default, be found with the find-definition facility.

This macro enables the IDE's find-definitions facility to find the location within a source code file of definitions that are defined by an application's custom definer macros.

new-definer is an unevaluated symbol naming a custom definer such as `my-defun`. standard-definer may be any of the following unevaluated symbols if the new definer is based on that standard definer:

- defun
- defmethod
- defmacro
- defgeneric
- defclass
- defstruct
- deftype
- defvar
- defparameter
- defconstant

For example, if an application uses code such as the following:

    (defmacro my-defun (name varlist &rest body)
       (format t "~&New definition for ~s!~%" name)
       `(defun ,name ,varlist ,@body))

    (my-defun foo (a b)
      (+ a b))

Then if the following top-level form is included in the application source code, then Find Definition (triggered by the Search | Find Definition menu item) in the IDE will be able to find the definition of foo within its source code file (or anything else defined with a my-defun form). The #-runtime-system reader macro prevents this form from being read in a standalone executable, where the IDE is not present.

    #-runtime-system (defdefiner my-defun defun)

Copyright (c) 1998-2019, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 8.2 page.
Created 2012.5.30.

|  | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version