clang-format: Understand proto text format without commas.
Also removed spaces before colons as they don't seem to be used
frequently.
Before:
optional int32 b = 2
[(foo_options) = {aaaaaaaaaaaaaaaaaaa : 123 bbbbbbbbbbbbbbbbbbbbbbbb :
"baz"}];
After:
optional int32 b = 2 [(foo_options) = {aaaaaaaaaaaaaaaaaaa: 123,
bbbbbbbbbbbbbbbbbbbbbbbb:"baz"}];
llvm-svn: 206269
This commit is contained in:
@@ -472,6 +472,9 @@ unsigned ContinuationIndenter::getNewLineColumn(const LineState &State) {
|
||||
else
|
||||
return State.FirstIndent;
|
||||
}
|
||||
if (Current.is(tok::identifier) && Current.Next &&
|
||||
Current.Next->Type == TT_DictLiteral)
|
||||
return State.Stack.back().Indent;
|
||||
if (NextNonComment->isStringLiteral() && State.StartOfStringLiteral != 0)
|
||||
return State.StartOfStringLiteral;
|
||||
if (NextNonComment->is(tok::lessless) &&
|
||||
|
||||
@@ -343,6 +343,7 @@ FormatStyle getGoogleStyle(FormatStyle::LanguageKind Language) {
|
||||
GoogleStyle.SpacesInContainerLiterals = false;
|
||||
} else if (Language == FormatStyle::LK_Proto) {
|
||||
GoogleStyle.AllowShortFunctionsOnASingleLine = FormatStyle::SFS_None;
|
||||
GoogleStyle.SpacesInContainerLiterals = false;
|
||||
}
|
||||
|
||||
return GoogleStyle;
|
||||
|
||||
@@ -1243,7 +1243,8 @@ unsigned TokenAnnotator::splitPenalty(const AnnotatedLine &Line,
|
||||
|
||||
if (Left.is(tok::semi))
|
||||
return 0;
|
||||
if (Left.is(tok::comma))
|
||||
if (Left.is(tok::comma) || (Right.is(tok::identifier) && Right.Next &&
|
||||
Right.Next->Type == TT_DictLiteral))
|
||||
return 1;
|
||||
if (Right.is(tok::l_square)) {
|
||||
if (Style.Language == FormatStyle::LK_Proto)
|
||||
@@ -1647,6 +1648,10 @@ bool TokenAnnotator::canBreakBefore(const AnnotatedLine &Line,
|
||||
if (Left.is(tok::identifier) && Right.is(tok::string_literal))
|
||||
return true;
|
||||
|
||||
if (Right.is(tok::identifier) && Right.Next &&
|
||||
Right.Next->Type == TT_DictLiteral)
|
||||
return true;
|
||||
|
||||
if (Left.Type == TT_CtorInitializerComma &&
|
||||
Style.BreakConstructorInitializersBeforeComma)
|
||||
return false;
|
||||
|
||||
@@ -81,13 +81,13 @@ TEST_F(FormatTestProto, MessageFieldAttributes) {
|
||||
verifyFormat("optional LongMessageType long_proto_field = 1\n"
|
||||
" [default = REALLY_REALLY_LONG_CONSTANT_VALUE];");
|
||||
verifyFormat("repeated double value = 1\n"
|
||||
" [(aaaaaaa.aaaaaaaaa) = {aaaaaaaaaaaaaaaaa : AAAAAAAA}];");
|
||||
" [(aaaaaaa.aaaaaaaaa) = {aaaaaaaaaaaaaaaaa: AAAAAAAA}];");
|
||||
verifyFormat("repeated double value = 1\n"
|
||||
" [(aaaaaaa.aaaaaaaaa) = {aaaaaaaaaaaaaaaa : AAAAAAAAAA,\n"
|
||||
" bbbbbbbbbbbbbbbb : BBBBBBBBBB}];");
|
||||
" [(aaaaaaa.aaaaaaaaa) = {aaaaaaaaaaaaaaaa: AAAAAAAAAA,\n"
|
||||
" bbbbbbbbbbbbbbbb: BBBBBBBBBB}];");
|
||||
verifyFormat("repeated double value = 1\n"
|
||||
" [(aaaaaaa.aaaaaaaaa) = {aaaaaaaaaaaaaaaa : AAAAAAAAAA\n"
|
||||
" bbbbbbbbbbbbbbbb : BBBBBBBBBB}];");
|
||||
" [(aaaaaaa.aaaaaaaaa) = {aaaaaaaaaaaaaaaa: AAAAAAAAAA\n"
|
||||
" bbbbbbbbbbbbbbbb: BBBBBBBBBB}];");
|
||||
}
|
||||
|
||||
TEST_F(FormatTestProto, FormatsOptions) {
|
||||
|
||||
Reference in New Issue
Block a user