summaryrefslogtreecommitdiffstats
path: root/clang/lib/Format/ContinuationIndenter.cpp
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2014-11-02 19:16:41 +0000
committerDaniel Jasper <djasper@google.com>2014-11-02 19:16:41 +0000
commit50b4bd7c0e3b5bcb3f1fd64c82d01a85109fa8da (patch)
treeaabdae3c950e0cd9573490dbdd99569abfda6a2b /clang/lib/Format/ContinuationIndenter.cpp
parent23e987766b97d75fcad57f8a0f7ac8e4790e09d8 (diff)
downloadbcm5719-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.cpp7
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;
OpenPOWER on IntegriCloud