From 6fe4663d9282c1f6a76e6d4f150052447ea0210d Mon Sep 17 00:00:00 2001 From: BigAru Date: Fri, 7 Dec 2018 05:06:52 +0100 Subject: [PATCH] combine preceding expressions to one --- .../refactors/convertStringOrTemplateLiteral.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/services/refactors/convertStringOrTemplateLiteral.ts b/src/services/refactors/convertStringOrTemplateLiteral.ts index 423e15b88f1..be6d088ff29 100644 --- a/src/services/refactors/convertStringOrTemplateLiteral.ts +++ b/src/services/refactors/convertStringOrTemplateLiteral.ts @@ -8,7 +8,6 @@ namespace ts.refactor.convertStringOrTemplateLiteral { const toTemplateLiteralDescription = getLocaleSpecificMessage(Diagnostics.Convert_to_template_literal); const toStringConcatenationDescription = getLocaleSpecificMessage(Diagnostics.Convert_to_string_concatenation); - // TODO let a = 45 + 45 + " ee" + 33; // TODO let a = 45 - 45 + " ee" - 33; // TODO let a = tag `aaa`; @@ -144,6 +143,19 @@ namespace ts.refactor.convertStringOrTemplateLiteral { let current = nodes[i]; let templatePart: TemplateMiddle | TemplateTail; + if (head.text.length === 0 && i + 1 < nodes.length && !isStringLiteral(nodes[i + 1])) { + let binary = createBinary(current as Expression, SyntaxKind.PlusToken, nodes[i + 1] as Expression); + current = binary; + i++; + + while (i + 1 < nodes.length && !isStringLiteral(nodes[i + 1])) { + binary = createBinary(binary, SyntaxKind.PlusToken, nodes[i + 1] as Expression); + i++; + } + + current = binary; + } + if (i + 1 < nodes.length && isStringLiteral(nodes[i + 1])) { let next = nodes[i + 1] as StringLiteral; let text = next.text;