Next: , Previous: Identifier completion, Up: Top

9 Automatic Smart Indentation

Ada mode comes with a full set of rules for automatic indentation. You can also configure the indentation, via the following variables:

ada-broken-indent (default value: 2)
Number of columns to indent the continuation of a broken line.
ada-indent (default value: 3)
Number of columns for default indentation.
ada-indent-record-rel-type (default value: 3)
Indentation for record relative to type or use.
ada-indent-return (default value: 0)
Indentation for return relative to function (if ada-indent-return is greater than 0), or the open parenthesis (if ada-indent-return is negative or 0). Note that in the second case, when there is no open parenthesis, the indentation is done relative to function with the value of ada-broken-indent.
ada-label-indent (default value: -4)
Number of columns to indent a label.
ada-stmt-end-indent (default value: 0)
Number of columns to indent a statement end keyword on a separate line.
ada-when-indent (default value: 3)
Indentation for when relative to exception or case.
ada-indent-is-separate (default value: t)
Non-nil means indent is separate or is abstract if on a single line.
ada-indent-to-open-paren (default value: t)
Non-nil means indent according to the innermost open parenthesis.
ada-indent-after-return (default value: t)
Non-nil means that the current line will also be re-indented before inserting a newline, when you press <RET>.

Most of the time, the indentation will be automatic, i.e., when you press <RET>, the cursor will move to the correct column on the next line.

You can also indent single lines, or the current region, with <TAB>.

Another mode of indentation exists that helps you to set up your indentation scheme. If you press C-c <TAB>, Ada mode will do the following:

The exact indentation of the current line is the same as the one for the reference line, plus an offset given by the variable.

Indent the current line or the current region.
Indent lines in the current region.
C-c <TAB>
Indent the current line and display the name of the variable used for indentation.