idlwave: Class and Keyword Inheritance

 
 4.4.4 Class and Keyword Inheritance
 -----------------------------------
 
 Class inheritance affects which methods are called in IDL.  An object of
 a class which inherits methods from one or more superclasses can
 override that method by defining its own method of the same name, extend
 the method by calling the method(s) of its superclass(es) in its
 version, or inherit the method directly by making no modifications.
 IDLWAVE examines class definitions during completion and routine
 information display, and records all inheritance information it finds.
 This information is displayed if appropriate with the calling sequence
 for methods (SeeRoutine Info), as long as variable
 ‘idlwave-support-inheritance’ is non-‘nil’.
 
    In many class methods, _keyword_ inheritance (‘_EXTRA’ and
 ‘_REF_EXTRA’) is used hand-in-hand with class inheritance and method
 overriding.  E.g., in a ‘SetProperty’ method, this technique allows a
 single call ‘obj->SetProperty’ to set properties up the entire class
 inheritance chain.  This is often referred to as _chaining_, and is
 characterized by chained method calls like
 ‘self->MySuperClass::SetProperty,_EXTRA=e’.
 
    IDLWAVE can accommodate this special synergy between class and
 keyword inheritance: if ‘_EXTRA’ or ‘_REF_EXTRA’ is detected among a
 method’s keyword parameters, all keywords of superclass versions of the
 method being considered can be included in completion.  There is of
 course no guarantee that this type of keyword chaining actually occurs,
 but for some methods it’s a very convenient assumption.  The variable
 ‘idlwave-keyword-class-inheritance’ can be used to configure which
 methods have keyword inheritance treated in this simple, class-driven
 way.  By default, only ‘Init’ and ‘(Get|Set)Property’ are.  The
 completion buffer will label keywords based on their originating class.
 
  -- User Option: idlwave-support-inheritance (‘t’)
      Non-‘nil’ means consider inheritance during completion, online help
      etc.
 
  -- User Option: idlwave-keyword-class-inheritance
      A list of regular expressions to match methods for which simple
      class-driven keyword inheritance will be used for Completion.