Emacs, by default, does not indent pre-processor code. I know it has historical roots that are obsolete by now.
However, having a code with a lot of #ifdef unindented is hard to read.
So I would like to make emacs automatic indentation give me something like that:
void myfunc() {
int foo;
#ifdef BAR
printf(foo);
#endif
return foo;
}
Instead of what I get now :
void myfunc() {
int foo;
#ifdef BAR
printf(foo);
#endif
return foo;
}
Any leads on that issue you emacs hackers :) ?
26.3. 2 Indenting Several Lines One way to do this is to use the mark; when the mark is active and the region is non-empty, TAB indents every line in the region. Alternatively, the command C-M-\ ( indent-region ) indents every line in the region, whether or not the mark is active (see Indentation Commands).
You can simply tell Emacs to add an offset to the pre-processor lines.
point
) in a pre-processor line Syntactic symbol to change:
, cpp-macro
, press Enter
0
)Then a TAB on each pre-processor line should indent it correctly. (or M-xindent-region
...).
To have the change set permanently, you can for instance add the required lines in your .emacs
file.
An easy way to copy a previously entered command is c-x ESC ESC and use the arrow keys to find the (c-set-offset ...)
Elisp command.
That should be
(c-set-offset (quote cpp-macro) 0 nil)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With