diff options
author | Daniel Jasper <djasper@google.com> | 2014-11-02 19:16:41 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2014-11-02 19:16:41 +0000 |
commit | 50b4bd7c0e3b5bcb3f1fd64c82d01a85109fa8da (patch) | |
tree | aabdae3c950e0cd9573490dbdd99569abfda6a2b /clang/lib/Format/ContinuationIndenter.cpp | |
parent | 23e987766b97d75fcad57f8a0f7ac8e4790e09d8 (diff) | |
download | bcm5719-llvm-50b4bd7c0e3b5bcb3f1fd64c82d01a85109fa8da.tar.gz bcm5719-llvm-50b4bd7c0e3b5bcb3f1fd64c82d01a85109fa8da.zip |
clang-format: [Java] Don't break after extends/implements.
Before:
abstract class SomeClass extends SomeOtherClass implements
SomeInterface {}
After:
abstract class SomeClass extends SomeOtherClass
implements SomeInterface {}
llvm-svn: 221103
Diffstat (limited to 'clang/lib/Format/ContinuationIndenter.cpp')
-rw-r--r-- | clang/lib/Format/ContinuationIndenter.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp index b6dd9bdcf8b..707153242b8 100644 --- a/clang/lib/Format/ContinuationIndenter.cpp +++ b/clang/lib/Format/ContinuationIndenter.cpp @@ -503,6 +503,13 @@ unsigned ContinuationIndenter::getNewLineColumn(const LineState &State) { const FormatToken *NextNonComment = Previous.getNextNonComment(); if (!NextNonComment) NextNonComment = &Current; + + // Java specific bits. + if (Style.Language == FormatStyle::LK_Java && Current.is(tok::identifier) && + (Current.TokenText == "implements" || Current.TokenText == "extends")) + return std::max(State.Stack.back().LastSpace, + State.Stack.back().Indent + Style.ContinuationIndentWidth); + if (NextNonComment->is(tok::l_brace) && NextNonComment->BlockKind == BK_Block) return Current.NestingLevel == 0 ? State.FirstIndent : State.Stack.back().Indent; |