An object method is not uniquely determined without the object’s class.
Since the class is almost always omitted in the calling source (as
required to obtain the true benefits of object-based programming),
IDLWAVE considers all available methods in all classes as possible
method name completions. The combined list of keywords of the current
method in all known classes which contain that method will be
considered for keyword completion. In the *Completions* buffer,
the matching classes will be shown next to each item (see option
idlwave-completion-show-classes
). As a special case, the class
of an object called ‘self’ is always taken to be the class of the
current routine, when in an IDLWAVE buffer. All inherits classes are
considered as well.
You can also call idlwave-complete
with a prefix arg: C-u
M-TAB. IDLWAVE will then prompt you for the class in order to
narrow down the number of possible completions. The variable
idlwave-query-class
can be configured to make such prompting the
default for all methods (not recommended), or selectively for very
common methods for which the number of completing keywords would be too
large (e.g., Init,SetProperty,GetProperty
).
After you have specified the class for a particular statement (e.g., when
completing the method), IDLWAVE can remember it for the rest of the
editing session. Subsequent completions in the same statement
(e.g., keywords) can then reuse this class information. This works by
placing a text property on the method invocation operator ‘->’,
after which the operator will be shown in a different face (bold by
default). The variable idlwave-store-inquired-class
can be used
to turn it off or on.
1
) ¶Non-nil
means show up to that many classes in
*Completions* buffer when completing object methods and
keywords.
t
) ¶Non-nil
means fontify the classes in completions buffer.
nil
) ¶Association list governing query for object classes during completion.
t
) ¶Non-nil
means store class of a method call as text property on
‘->’.
Face to highlight object operator arrows ‘->’ which carry a saved class text property.