forked from OSchip/llvm-project
clang-format: Enable formatting of protocol buffer definitions.
Almost by accident, clang-format seems to be able to format protocol buffer definitions (https://code.google.com/p/protobuf/). The only change is that a space is required between numeric constants and opening square brackets (for default values). While this might in theory be used for array subscripts (int val = 4[MyArray]), I have not seen this pattern in practice much. If this is wrong, we can make this smarter in the future. llvm-svn: 189663
This commit is contained in:
parent
b715087278
commit
8ddfa8489b
|
@ -1206,7 +1206,8 @@ bool TokenAnnotator::spaceRequiredBetween(const AnnotatedLine &Line,
|
|||
return Left.Type == TT_ObjCArrayLiteral && Right.isNot(tok::r_square);
|
||||
if (Right.is(tok::r_square))
|
||||
return Right.Type == TT_ObjCArrayLiteral;
|
||||
if (Right.is(tok::l_square) && Right.Type != TT_ObjCMethodExpr)
|
||||
if (Right.is(tok::l_square) && Right.Type != TT_ObjCMethodExpr &&
|
||||
Left.isNot(tok::numeric_constant))
|
||||
return false;
|
||||
if (Left.is(tok::colon))
|
||||
return Left.Type != TT_ObjCMethodExpr;
|
||||
|
|
|
@ -6242,5 +6242,14 @@ TEST_F(FormatTest, FormatsWithWebKitStyle) {
|
|||
format("if (aaaaaaaaaaaaaaa || bbbbbbbbbbbbbbb) { i++; }", Style));
|
||||
}
|
||||
|
||||
TEST_F(FormatTest, FormatsProtocolBufferDefinitions) {
|
||||
// It seems that clang-format can format protocol buffer definitions
|
||||
// (see https://code.google.com/p/protobuf/).
|
||||
verifyFormat("message SomeMessage {\n"
|
||||
" required int32 field1 = 1;\n"
|
||||
" optional string field2 = 2 [default = \"2\"]\n"
|
||||
"}");
|
||||
}
|
||||
|
||||
} // end namespace tooling
|
||||
} // end namespace clang
|
||||
|
|
Loading…
Reference in New Issue