ccmode: Other Indentation

 
 11.5 Other Special Indentations
 ===============================
 
 To configure macros which you invoke without a terminating ‘;’, see
 SeeMacros with ;.
 
    Here are the remaining odds and ends regarding indentation:
 
  -- User Option: c-label-minimum-indentation
      In ‘gnu’ style (SeeBuilt-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
      (SeeIndentation 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
      (SeeCustom 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.
      SeeCustom 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’(1).
 
      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.  SeeStyle Variables.
 
    ---------- Footnotes ----------
 
    (1) 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.