]> granicus.if.org Git - clang/commitdiff
clang-format: [Proto] Support extending message.
authorDaniel Jasper <djasper@google.com>
Fri, 20 Nov 2015 14:32:54 +0000 (14:32 +0000)
committerDaniel Jasper <djasper@google.com>
Fri, 20 Nov 2015 14:32:54 +0000 (14:32 +0000)
Before:
  extend.foo.Bar {
  }

After:
  extend .foo.Bar {
  }

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@253667 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Format/FormatToken.h
lib/Format/TokenAnnotator.cpp
unittests/Format/FormatTestProto.cpp

index 002ff25bfa37a08ce1d76a5bc536ceb7c01ef411..49885205994aacb922f564c45c10429443a64dfe 100644 (file)
@@ -553,6 +553,7 @@ struct AdditionalKeywords {
 
     kw_mark = &IdentTable.get("mark");
 
+    kw_extend = &IdentTable.get("extend");
     kw_option = &IdentTable.get("option");
     kw_optional = &IdentTable.get("optional");
     kw_repeated = &IdentTable.get("repeated");
@@ -597,6 +598,7 @@ struct AdditionalKeywords {
   IdentifierInfo *kw_mark;
 
   // Proto keywords.
+  IdentifierInfo *kw_extend;
   IdentifierInfo *kw_option;
   IdentifierInfo *kw_optional;
   IdentifierInfo *kw_repeated;
index 8f08828b5f20e9a32cb8b47cb073f1e71b756606..70ff7d8b9e4dd27ea18e26b13f4c9bb38c718032 100644 (file)
@@ -1949,7 +1949,7 @@ bool TokenAnnotator::spaceRequiredBefore(const AnnotatedLine &Line,
   } else if (Style.Language == FormatStyle::LK_Proto) {
     if (Right.is(tok::period) &&
         Left.isOneOf(Keywords.kw_optional, Keywords.kw_required,
-                     Keywords.kw_repeated))
+                     Keywords.kw_repeated, Keywords.kw_extend))
       return true;
     if (Right.is(tok::l_paren) &&
         Left.isOneOf(Keywords.kw_returns, Keywords.kw_option))
index 0dadd3b673100675fa24c43e000512cbc1c69c86..cd2c0c8aa461d21806f8b0c846051bccfff0a383 100644 (file)
@@ -162,5 +162,10 @@ TEST_F(FormatTestProto, FormatsService) {
                "};");
 }
 
+TEST_F(FormatTestProto, ExtendingMessage) {
+  verifyFormat("extend .foo.Bar {\n"
+               "}");
+}
+
 } // end namespace tooling
 } // end namespace clang