ccmode: Minor Modes

 
 4.5 Minor Modes
 ===============
 
 CC Mode contains several minor-mode-like features that you might find
 useful while writing new code or editing old code:
 
 electric mode
      When this is enabled, certain visible characters cause reformatting
      as they are typed.  This is normally helpful, but can be a nuisance
      when editing chaotically formatted code.  It can also be
      disconcerting, especially for users who are new to CC Mode.
 auto-newline mode
      This automatically inserts newlines where you’d probably want to
      type them yourself, e.g., after typing ‘}’s.  Its action is
      suppressed when electric mode is disabled.
 hungry-delete mode
      This lets you delete a contiguous block of whitespace with a single
      key: for example, the newline and indentation just inserted by
      auto-newline when you want to back up and write a comment after the
      last statement.
 subword mode
      This mode makes basic word movement commands like ‘M-f’
      (‘forward-word’) and ‘M-b’ (‘backward-word’) treat the parts of
      sillycapsed symbols as different words.  E.g., ‘NSGraphicsContext’
      is treated as three words ‘NS’, ‘Graphics’, and ‘Context’.
 syntactic-indentation mode
      When this is enabled (which it normally is), indentation commands
      such as ‘C-j’ indent lines of code according to their syntactic
      structure.  Otherwise, a line is simply indented to the same level
      as the previous one and ‘<TAB>’ adjusts the indentation in steps of
      ‘c-basic-offset’.
 
DONTPRINTYET     Full details on how these minor modes work are at SeeElectric
 Keys, SeeAuto-newlines, SeeHungry WS Deletion, *noteSubword
DONTPRINTYET     Full details on how these minor modes work are at SeeElectric
 Keys, SeeAuto-newlines, SeeHungry WS Deletion, SeeSubword

 Movement, and SeeIndentation Engine Basics.
 
    You can toggle each of these minor modes on and off, and you can
 configure CC Mode so that it starts up with your favorite combination of
 them (SeeSample Init File).  By default, when you initialize a
 buffer, electric mode and syntactic-indentation mode are enabled but the
 other three modes are disabled.
 
    CC Mode displays the current state of the first four of these minor
 modes on the modeline by appending letters to the major mode’s name, one
 letter for each enabled minor mode: ‘l’ for electric mode, ‘a’ for
 auto-newline mode, ‘h’ for hungry delete mode, and ‘w’ for subword mode.
 If all these modes were enabled, you’d see ‘C/lahw’(1).
 
    Here are the commands to toggle these modes:
 
 ‘C-c C-l’ (‘c-toggle-electric-state’)
      Toggle electric minor mode.  When the command turns the mode off,
      it also suppresses auto-newline mode.
 
 ‘C-c C-a’ (‘c-toggle-auto-newline’)
      Toggle auto-newline minor mode.  When the command turns the mode
      on, it also enables electric minor mode.
 
 ‘M-x c-toggle-hungry-state’(2)
      Toggle hungry-delete minor mode.
 
 ‘M-x c-toggle-auto-hungry-state’(3)
      Toggle both auto-newline and hungry delete minor modes.
 
 ‘C-c C-w’ (‘M-x subword-mode’)
      Toggle subword mode.
 
 ‘M-x c-toggle-syntactic-indentation’
      Toggle syntactic-indentation mode.
 
    Common to all the toggle functions above is that if they are called
 programmatically, they take an optional numerical argument.  A positive
 value will turn on the minor mode (or both of them in the case of
 ‘c-toggle-auto-hungry-state’) and a negative value will turn it (or
 them) off.
 
    ---------- Footnotes ----------
 
    (1) The ‘C’ would be replaced with the name of the language in
 question for the other languages CC Mode supports.
 
    (2) Prior to CC Mode 5.31, this command was bound to ‘C-c C-d’.
 
    (3) Prior to CC Mode 5.31, this command was bound to ‘C-c C-t’.