Previous: Custom Line-Up, Up: Customizing Indentation [Contents][Index]

### 11.5 Other Special Indentations

To configure macros which you invoke without a terminating ‘`;`’, see See Macros with ;.

Here are the remaining odds and ends regarding indentation:

User Option: c-label-minimum-indentation

  In ‘`gnu`’ style (see Built-in Styles), a minimum indentation is imposed on lines inside code blocks. This minimum indentation is controlled by this style variable. The default value is 1.

  It’s the function `c-gnu-impose-minimum` that enforces this minimum indentation. It must be present on `c-special-indent-hook` to work.

User Option: c-special-indent-hook

  This style variable is a standard hook variable that is called after every line is indented by CC Mode. It is called only if `c-syntactic-indentation` is non-`nil` (which it is by default (see Indentation Engine Basics)). You can put a function on this hook to do any special indentation or ad hoc line adjustments your style dictates, such as adding extra indentation to constructors or destructor declarations in a class definition, etc. Sometimes it is better to write a custom Line-up Function instead (see Custom Line-Up).

  When the indentation engine calls this hook, the variable `c-syntactic-context` is bound to the current syntactic context (i.e., what you would get by typing `C-c C-s` on the source line. See Custom Braces.). Note that you should not change point or mark inside a `c-special-indent-hook` function, i.e., you’ll probably want to wrap your function in a `save-excursion` 48.

  Setting `c-special-indent-hook` in style definitions is handled slightly differently from other variables—A style can only add functions to this hook, not remove them. See Style Variables.

#### Footnotes

### (48)

The numerical value returned by `point` will change if you change the indentation of the line within a `save-excursion` form, but point itself will still be over the same piece of text.

Previous: Custom Line-Up, Up: Customizing Indentation [Contents][Index]