ccmode: File Styles
6.3.5 File Styles
-----------------
The Emacs manual describes how you can customize certain variables on a
per-file basis by including a “file local variable” block at the end of
the file (Local Variables in Files (emacs)File Variables.).
So far, you’ve only seen a functional interface for setting styles in
CC Mode, and this can’t be used here. CC Mode fills the gap by
providing two variables for use in a file’s local variable list. Don’t
use them anywhere else! These allow you to customize the style on a
per-file basis:
-- Variable: c-file-style
Set this variable to a style name string in the Local Variables
list. From now on, when you visit the file, CC Mode will
automatically set the file’s style to this one using ‘c-set-style’.
-- Variable: c-file-offsets
Set this variable (in the Local Variables list) to an association
list of the same format as ‘c-offsets-alist’. From now on, when
you visit the file, CC Mode will automatically institute these
offsets using ‘c-set-offset’.
Note that file style settings (i.e., ‘c-file-style’) are applied
before file offset settings (i.e., ‘c-file-offsets’)(1).
If you set any variable by the file local variables mechanism, that
setting takes priority over all other settings, even those in your mode
hooks (CC Hooks). Any individual setting of a variable will
override one made through ‘c-file-style’ or ‘c-file-offsets’.
---------- Footnotes ----------
(1) Also, if either of these are set in a file’s local variable
section, all the style variable values are made local to that buffer,
even if ‘c-style-variables-are-local-p’ is ‘nil’. Since this variable
is virtually always non-‘nil’ anyhow, you’re unlikely to notice this
effect.