clang-format: [Java] Wrap after each function annotation.
Before: @Override public String toString() { .. } After: @Override public String toString() { .. } llvm-svn: 220274
This commit is contained in:
parent
b0852e5410
commit
fab69ff095
|
@ -458,6 +458,7 @@ unsigned ContinuationIndenter::addTokenOnNewLine(LineState &State,
|
|||
!PreviousNonComment->isOneOf(tok::comma, tok::semi) &&
|
||||
PreviousNonComment->Type != TT_TemplateCloser &&
|
||||
PreviousNonComment->Type != TT_BinaryOperator &&
|
||||
PreviousNonComment->Type != TT_JavaAnnotation &&
|
||||
Current.Type != TT_BinaryOperator && !PreviousNonComment->opensScope())
|
||||
State.Stack.back().BreakBeforeParameter = true;
|
||||
|
||||
|
@ -533,7 +534,8 @@ unsigned ContinuationIndenter::getNewLineColumn(const LineState &State) {
|
|||
if (Previous.is(tok::comma) && State.Stack.back().VariablePos != 0)
|
||||
return State.Stack.back().VariablePos;
|
||||
if ((PreviousNonComment && (PreviousNonComment->ClosesTemplateDeclaration ||
|
||||
PreviousNonComment->Type == TT_AttributeParen)) ||
|
||||
PreviousNonComment->Type == TT_AttributeParen ||
|
||||
PreviousNonComment->Type == TT_JavaAnnotation)) ||
|
||||
(!Style.IndentWrappedFunctionNames &&
|
||||
(NextNonComment->is(tok::kw_operator) ||
|
||||
NextNonComment->Type == TT_FunctionDeclarationName)))
|
||||
|
|
|
@ -46,6 +46,7 @@ enum TokenType {
|
|||
TT_ImplicitStringLiteral,
|
||||
TT_InheritanceColon,
|
||||
TT_InlineASMColon,
|
||||
TT_JavaAnnotation,
|
||||
TT_LambdaLSquare,
|
||||
TT_LineComment,
|
||||
TT_ObjCBlockLBrace,
|
||||
|
|
|
@ -826,6 +826,9 @@ private:
|
|||
// Line.MightBeFunctionDecl can only be true after the parentheses of a
|
||||
// function declaration have been found.
|
||||
Current.Type = TT_TrailingAnnotation;
|
||||
} else if (Style.Language == FormatStyle::LK_Java && Current.Previous &&
|
||||
Current.Previous->is(tok::at)) {
|
||||
Current.Type = TT_JavaAnnotation;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1787,6 +1790,9 @@ bool TokenAnnotator::mustBreakBefore(const AnnotatedLine &Line,
|
|||
if (Right.is(tok::char_constant) && Left.is(tok::plus) && Left.Previous &&
|
||||
Left.Previous->is(tok::char_constant))
|
||||
return true;
|
||||
} else if (Style.Language == FormatStyle::LK_Java) {
|
||||
if (Left.Type == TT_JavaAnnotation && Line.MightBeFunctionDecl)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
|
@ -64,5 +64,14 @@ TEST_F(FormatTestJava, ThrowsDeclarations) {
|
|||
" throws LooooooooooooooooooooooooooooongException {}");
|
||||
}
|
||||
|
||||
TEST_F(FormatTestJava, Annotations) {
|
||||
verifyFormat("@Override\n"
|
||||
"public String toString() {\n}");
|
||||
verifyFormat("@Override\n"
|
||||
"@Nullable\n"
|
||||
"public String getNameIfPresent() {\n}");
|
||||
verifyFormat("@Partial @Mock DataLoader loader;");
|
||||
}
|
||||
|
||||
} // end namespace tooling
|
||||
} // end namespace clang
|
||||
|
|
Loading…
Reference in New Issue