diff options
author | Alan Mackenzie <acm@muc.de> | 2019-03-12 18:33:31 +0000 |
---|---|---|
committer | Alan Mackenzie <acm@muc.de> | 2019-03-12 18:33:31 +0000 |
commit | aa1a4cceca2d93d83c721ce83950230739073727 (patch) | |
tree | 5ee9e4a1722b1ffd6b5b545c62e96dafd0ebafe8 /lisp/progmodes/cc-styles.el | |
parent | d58c29b345b40b836eeb0d9452a5940beda01fff (diff) | |
download | emacs-aa1a4cceca2d93d83c721ce83950230739073727.tar.gz |
Correct the indentation of CC Mode brace lists
while preserving the indentation of nested C++ uniform initialization.
* lisp/progmodes/cc-align.el (c-lineup-2nd-brace-entry-in-arglist)
(c-lineup-class-decl-init-+, c-lineup-class-decl-init-after-brace): New
indentation functions.
* lisp/progmodes/cc-engine.el (c-forward-class-decl): New function.
(c-do-declarators): New function, partially extracted from
c-font-lock-declarators, which now calls the new function.
(c-inside-bracelist-p): Amend the introductory comment.
(c-add-stmt-syntax): Add code to prevent the spurious recognition of a
'defun-block-intro when a brace pair is used as an initializer.
(c-evaluate-offset): No longer ignore vectors of length >= 2.
(c-calc-offset): Refactor clumsily nested `if'/`or' into a cond form.
* lisp/progmodes/cc-fonts.el (c-font-lock-declarators): Replace the bulk of
this function by a call to the new c-forward-class-decl.
* lisp/progmodes/cc-langs.el (c-type-decl-prefix-key): Recognize "~" as a
type decl operator.
* lisp/progmodes/cc-mode.el (c-fl-decl-start): While searching backward for a
"}" at an EOD, deal with actually finding the end of a brace list.
* doc/misc/cc-mode.texi (List Line-Up): document
c-lineup-2nd-brace-entry-in-arglist, c-lineup-class-decl-init-+, and
c-lineup-class-decl-init-after-brace.
* lisp/progmodes/cc-styles.el (c-style-alist): In styles "gnu", "bsd",
"stroustrup", "python", and "java", change the offset for brace-list-intro
from the default value or c-lineup-arglist-intro-after-paren to a list
beginning with the symbol first, followed by two of the new alignment
functions, followed by +.
* lisp/progmodes/cc-vars.el (c-offset-alist): Change the default value of
brace-list-entry from c-lineup-under-anchor back to 0.
Diffstat (limited to 'lisp/progmodes/cc-styles.el')
-rw-r--r-- | lisp/progmodes/cc-styles.el | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/lisp/progmodes/cc-styles.el b/lisp/progmodes/cc-styles.el index d2c41008711..92ea67128f4 100644 --- a/lisp/progmodes/cc-styles.el +++ b/lisp/progmodes/cc-styles.el @@ -68,7 +68,9 @@ (arglist-close . c-lineup-arglist) (inline-open . 0) (brace-list-open . +) - (brace-list-intro . c-lineup-arglist-intro-after-paren) + (brace-list-intro . (first + c-lineup-2nd-brace-entry-in-arglist + c-lineup-class-decl-init-+ +)) (topmost-intro-cont . (first c-lineup-topmost-intro-cont c-lineup-gnu-DEFUN-intro-cont)))) @@ -95,6 +97,9 @@ (label . 0) (statement-cont . +) (inline-open . 0) + (brace-list-intro . (first + c-lineup-2nd-brace-entry-in-arglist + c-lineup-class-decl-init-+ +)) (inexpr-class . 0)))) ("stroustrup" @@ -104,6 +109,9 @@ (substatement-open . 0) (substatement-label . 0) (label . 0) + (brace-list-intro . (first + c-lineup-2nd-brace-entry-in-arglist + c-lineup-class-decl-init-+ +)) (statement-cont . +)))) ("whitesmith" @@ -194,6 +202,9 @@ (c-offsets-alist . ((substatement-open . 0) (inextern-lang . 0) (arglist-intro . +) + (brace-list-intro . (first + c-lineup-2nd-brace-entry-in-arglist + c-lineup-class-decl-init-+ +)) (knr-argdecl-intro . +))) (c-hanging-braces-alist . ((brace-list-open) (brace-list-intro) @@ -219,6 +230,9 @@ (statement-cont . +) (arglist-intro . c-lineup-arglist-intro-after-paren) (arglist-close . c-lineup-arglist) + (brace-list-intro . (first + c-lineup-2nd-brace-entry-in-arglist + c-lineup-class-decl-init-+ +)) (access-label . 0) (inher-cont . c-lineup-java-inher) (func-decl-cont . c-lineup-java-throws)))) |