diff --git a/src/services/formatting.ts b/src/services/formatting.ts index 2fdbebad79c..f58f1ccb33e 100644 --- a/src/services/formatting.ts +++ b/src/services/formatting.ts @@ -505,7 +505,7 @@ module ts.formatting { if (isToken(child)) { // if child node is a token, it does not impact indentation, proceed it using parent indentation scope rules - var tokenInfo = formattingScanner.readTokenInfo(node); + var tokenInfo = formattingScanner.readTokenInfo(child); Debug.assert(tokenInfo.token.end === child.end); consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation); return inheritedIndentation; diff --git a/src/services/formatting/formattingScanner.ts b/src/services/formatting/formattingScanner.ts index 9cf2a05a5d9..220ac21bd8b 100644 --- a/src/services/formatting/formattingScanner.ts +++ b/src/services/formatting/formattingScanner.ts @@ -114,7 +114,8 @@ module ts.formatting { } function shouldRescanTemplateToken(container: Node): boolean { - return container.kind === SyntaxKind.TemplateSpan; + return container.kind === SyntaxKind.TemplateMiddle || + container.kind === SyntaxKind.TemplateTail; } function startsWithSlashToken(t: SyntaxKind): boolean { diff --git a/tests/cases/fourslash/formattingRegexes.ts b/tests/cases/fourslash/formattingRegexes.ts new file mode 100644 index 00000000000..136fba6a8b6 --- /dev/null +++ b/tests/cases/fourslash/formattingRegexes.ts @@ -0,0 +1,8 @@ +/// + +////removeAllButLast(sortedTypes, undefinedType, /keepNullableType**/ true)/*1*/ + +goTo.marker("1"); +edit.insert(";"); +verify.currentLineContentIs("removeAllButLast(sortedTypes, undefinedType, /keepNullableType**/ true);"); +