Indentation Relative to Previous Lines
--------------------------------------
This section describes two commands that indent the current line
based on the contents of previous lines.
- Command: indent-relative &optional unindented-ok
This command inserts whitespace at point, extending to the same
column as the next "indent point" of the previous nonblank line.
An indent point is a non-whitespace character following
whitespace. The next indent point is the first one at a column
greater than the current column of point. For example, if point
is underneath and to the left of the first non-blank character of
a line of text, it moves to that column by inserting whitespace.
If the previous nonblank line has no next indent point (i.e., none
at a great enough column position), `indent-relative' either does
nothing (if UNINDENTED-OK is non-`nil') or calls
`tab-to-tab-stop'. Thus, if point is underneath and to the right
of the last column of a short line of text, this command ordinarily
moves point to the next tab stop by inserting whitespace.
The return value of `indent-relative' is unpredictable.
In the following example, point is at the beginning of the second
line:
This line is indented twelve spaces.
-!-The quick brown fox jumped.
Evaluation of the expression `(indent-relative nil)' produces the
following:
This line is indented twelve spaces.
-!-The quick brown fox jumped.
In this next example, point is between the `m' and `p' of `jumped':
This line is indented twelve spaces.
The quick brown fox jum-!-ped.
Evaluation of the expression `(indent-relative nil)' produces the
following:
This line is indented twelve spaces.
The quick brown fox jum -!-ped.
- Command: indent-relative-maybe
This command indents the current line like the previous nonblank
line, by calling `indent-relative' with `t' as the UNINDENTED-OK
argument. The return value is unpredictable.
If the previous nonblank line has no indent points beyond the
current column, this command does nothing.