Change default offset of CC Mode syntactic symbol inlambda to 0

It's previous default was c-lineup-inexpr-block.  This change is mainly to
prevent excessive indentation of the innards of C++ lambda functions.

* lisp/progmodes/cc-vars.el (c-offsets-alist): Amend the offset for inlambda
to 0.

* doc/misc/cc-mode.texi (FAQ): Amend the answer to the question about this
matter.
This commit is contained in:
Alan Mackenzie 2019-06-02 14:05:33 +00:00
parent d920ec617b
commit 30b0c5bf42
2 changed files with 8 additions and 6 deletions

View file

@ -7431,13 +7431,15 @@ could amend your C++ Mode hook like this:
@emph{How do I stop my C++ lambda expressions being indented way over
to the right?}
Change the offset associated with @code{inlambda} from its default,
the function @code{c-lineup-inexpr-block}, to 0. For example, if you
are setting offsets in a hook function you might include the following
line:
This is now the default, so you don't need to do anything. To restore
the previous default, indenting lambda expressions to the right of the
constructs which introduce them, change the offset associated with
@code{inlambda} from 0 to @code{c-lineup-inexpr-block}. For example,
if you are setting offsets in a hook function you might include the
following line:
@example
(c-set-offset 'inlambda 0)
(c-set-offset 'inlambda 'c-lineup-inexpr-block)
@end example
For details of the different ways you can make this setting,

View file

@ -1210,7 +1210,7 @@ can always override the use of `c-default-style' by making calls to
(template-args-cont . (c-lineup-template-args +))
;; Anchor pos: Boi at the decl start. This might be changed;
;; the logical position is clearly the opening '<'.
(inlambda . c-lineup-inexpr-block)
(inlambda . 0)
;; Anchor pos: None.
(lambda-intro-cont . +)
;; Anchor pos: Boi at the lambda start.