[clang-format] Keep protobuf "package" statement on one line

Summary:
Top-level "package" and "import" statements should generally be kept on one
line, for all languages.

Reviewers: sammccall, krasimir, MyDeveloperDay

Reviewed By: MyDeveloperDay

Subscribers: MyDeveloperDay, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D59627

Patch By: dchai (Donald Chai)

llvm-svn: 356835
This commit is contained in:
Paul Hoad 2019-03-23 14:43:41 +00:00
parent c6deae4521
commit f5e52738fe
2 changed files with 9 additions and 3 deletions

View File

@ -1119,10 +1119,10 @@ public:
return LT_ImportStatement;
}
// In .proto files, top-level options are very similar to import statements
// and should not be line-wrapped.
// In .proto files, top-level options and package statements are very
// similar to import statements and should not be line-wrapped.
if (Style.Language == FormatStyle::LK_Proto && Line.Level == 0 &&
CurrentToken->is(Keywords.kw_option)) {
CurrentToken->isOneOf(Keywords.kw_option, Keywords.kw_package)) {
next();
if (CurrentToken && CurrentToken->is(tok::identifier))
return LT_ImportStatement;

View File

@ -393,6 +393,12 @@ TEST_F(FormatTestProto, FormatsOptions) {
"};");
}
TEST_F(FormatTestProto, DoesntWrapPackageStatements) {
verifyFormat(
"package"
" some.really.long.package.that.exceeds.the.column.limit00000000;");
}
TEST_F(FormatTestProto, FormatsService) {
verifyFormat("service SearchService {\n"
" rpc Search(SearchRequest) returns (SearchResponse) {\n"