The proper way to break string literals in these languages is by inserting a "+"
between parts which we don't support yet. So we disable string literal breaking
until then.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224120
91177308-0d34-0410-b5e6-
96231b3b80d8
unsigned ContinuationIndenter::breakProtrudingToken(const FormatToken &Current,
LineState &State,
bool DryRun) {
+ // FIXME: String literal breaking is currently disabled for Java and JS, as
+ // it requires strings to be merged using "+" which we don't support.
+ if (Style.Language == FormatStyle::LK_Java ||
+ Style.Language == FormatStyle::LK_JavaScript)
+ return 0;
+
// Don't break multi-line tokens other than block comments. Instead, just
// update the state.
if (Current.isNot(TT_BlockComment) && Current.IsMultiline)
getStyleWithColumns(40));
}
+TEST_F(FormatTestJava, BreaksStringLiterals) {
+ // FIXME: String literal breaking is currently disabled for Java and JS, as it
+ // requires strings to be merged using "+" which we don't support.
+ EXPECT_EQ("\"some text other\";",
+ format("\"some text other\";", getStyleWithColumns(14)));
+}
+
} // end namespace tooling
} // end namespace clang