Continuation lines (following a line ending with $
) can receive a
fixed indentation offset from the main level, but in several situations
IDLWAVE can use a special form of indentation which aligns continued
statements more naturally. Special indentation is calculated for
continued routine definition statements and calls, enclosing parentheses
(like function calls, structure/class definitions, explicit structures
or lists, etc.), and continued assignments. An attempt is made to line
up with the first non-whitespace character after the relevant opening
punctuation mark (,
,(
,{
,[
,=
). For
lines without any non-comment characters on the line with the opening
punctuation, the continued line(s) are aligned just past the
punctuation. An example:
function foo, a, b, $ c, d bar = sin( a + b + $ c + d) end
The only drawback to this special continued statement indentation is that it consumes more space, e.g., for long function names or left hand sides of an assignment:
function thisfunctionnameisverylongsoitwillleavelittleroom, a, b, $ c, d
You can instruct IDLWAVE when to avoid using this special continuation
indentation by setting the variable
idlwave-max-extra-continuation-indent
, which specifies the
maximum additional indentation beyond the basic indent to be
tolerated, otherwise defaulting to a fixed-offset from the enclosing
indent (the size of which offset is set in
idlwave-continuation-indent
). As a special case, continuations
of routine calls without any arguments or keywords will not
align the continued line, under the assumption that you continued
because you needed the space.
Also, since the indentation level can be somewhat dynamic in continued
statements with special continuation indentation, especially if
idlwave-max-extra-continuation-indent
is small, the key
C-u TAB will re-indent all lines in the current statement.
Note that idlwave-indent-to-open-paren
, if non-nil
,
overrides the idlwave-max-extra-continuation-indent
limit, for
parentheses only, forcing them always to line up.
2
) ¶Extra indentation applied to normal continuation lines.
20
) ¶The maximum additional indentation (over the basic continuation-indent)
that will be permitted for special continues. To effectively disable
special continuation indentation, set to 0
. To enable it
constantly, set to a large number (like 100
). Note that the
indentation in a long continued statement never decreases from line to
line, outside of nested parentheses statements.
t
) ¶Non-nil
means indent continuation lines to innermost open
parenthesis, regardless of whether the
idlwave-max-extra-continuation-indent
limit is satisfied.