Major mode for editing Icon code.
Expression and list commands understand all Icon brackets.
Tab indents for Icon code.
Paragraphs are separated by blank lines only.
Delete converts tabs to spaces as it moves back.
Uses keymap `icon-mode-map', which is not currently defined.
Variables controlling indentation style:
Non-nil means TAB in Icon mode should always reindent the current line,
regardless of where in the line point is when the TAB command is used.
Non-nil means automatically newline before and after braces
inserted in Icon code.
Indentation of Icon statements within surrounding block.
The surrounding block's indentation is the indentation
of the line on which the open-brace appears.
Extra indentation given to a substatement, such as the
then-clause of an if or body of a while.
Extra indentation given to a brace that starts a substatement.
This is in addition to `icon-continued-statement-offset'.
Extra indentation for line if it starts with an open brace.
An open brace following other text is treated as if it were
this far to the right of the start of its line.
Turning on Icon mode calls the value of the variable `icon-mode-hook' with no args, if that value is non-nil. (fn)