瀏覽代碼

clang-format: [Java] Don't line-wrap before annotations' l_parens.

Before:
  @SomeAnnotation
  (aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaa)
  int i;

After:
  @SomeAnnotation(
      aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaa)
  int i;

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@225963 91177308-0d34-0410-b5e6-96231b3b80d8
Daniel Jasper 10 年之前
父節點
當前提交
89fc46ad71
共有 2 個文件被更改,包括 5 次插入1 次删除
  1. 1 1
      lib/Format/TokenAnnotator.cpp
  2. 4 0
      unittests/Format/FormatTestJava.cpp

+ 1 - 1
lib/Format/TokenAnnotator.cpp

@@ -1939,7 +1939,7 @@ bool TokenAnnotator::canBreakBefore(const AnnotatedLine &Line,
   if (Left.Tok.getObjCKeywordID() == tok::objc_interface)
     return false;
   if (Left.isOneOf(TT_JavaAnnotation, TT_LeadingJavaAnnotation))
-    return true;
+    return !Right.is(tok::l_paren);
   if (Right.isOneOf(TT_StartOfName, TT_FunctionDeclarationName) ||
       Right.is(tok::kw_operator))
     return true;

+ 4 - 0
unittests/Format/FormatTestJava.cpp

@@ -279,6 +279,10 @@ TEST_F(FormatTestJava, Annotations) {
   verifyFormat("@Test(a)\n"
                "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa =\n"
                "    aaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaa);");
+  verifyFormat("@SomeAnnotation(\n"
+               "    aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaa)\n"
+               "int i;",
+               getStyleWithColumns(50));
 }
 
 TEST_F(FormatTestJava, Generics) {