combine preceding expressions to one

This commit is contained in:
BigAru
2019-03-24 16:52:24 +01:00
parent 76ce1c67ac
commit 6fe4663d92
@@ -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;