diff options
-rw-r--r-- | lib/Format/TokenAnnotator.cpp | 7 | ||||
-rw-r--r-- | unittests/Format/FormatTestJS.cpp | 5 |
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index f3d655ace5..ce847d6427 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -1622,6 +1622,13 @@ bool TokenAnnotator::mustBreakBefore(const AnnotatedLine &Line, BeforeClosingBrace->isOneOf(tok::comma, tok::comment)) return true; + if (Style.Language == FormatStyle::LK_JavaScript) { + // FIXME: This might apply to other languages and token kinds. + if (Right.is(tok::char_constant) && Left.is(tok::plus) && Left.Previous && + Left.Previous->is(tok::char_constant)) + return true; + } + return false; } diff --git a/unittests/Format/FormatTestJS.cpp b/unittests/Format/FormatTestJS.cpp index 33bfe06e5f..ecf4e69999 100644 --- a/unittests/Format/FormatTestJS.cpp +++ b/unittests/Format/FormatTestJS.cpp @@ -164,6 +164,11 @@ TEST_F(FormatTestJS, TryCatch) { "}"); } +TEST_F(FormatTestJS, StringLiteralConcatenation) { + verifyFormat("var literal = 'hello ' +\n" + " 'world';"); +} + TEST_F(FormatTestJS, RegexLiteralClassification) { // Regex literals. verifyFormat("var regex = /abc/;"); |