diff --git a/src/services/findAllReferences.ts b/src/services/findAllReferences.ts index 0c04f00e6a87b..989b61cd19aa7 100644 --- a/src/services/findAllReferences.ts +++ b/src/services/findAllReferences.ts @@ -2021,7 +2021,8 @@ namespace ts.FindAllReferences { } } else { - return nodeEntry(ref, EntryKind.StringLiteral); + return isNoSubstitutionTemplateLiteral(ref) && !rangeIsOnSingleLine(ref, sourceFile) ? undefined : + nodeEntry(ref, EntryKind.StringLiteral); } } }); diff --git a/tests/cases/fourslash/documentHighlightMultilineTemplateStrings.ts b/tests/cases/fourslash/documentHighlightMultilineTemplateStrings.ts new file mode 100644 index 0000000000000..ecc819f3a6037 --- /dev/null +++ b/tests/cases/fourslash/documentHighlightMultilineTemplateStrings.ts @@ -0,0 +1,10 @@ +/// + +////const foo = ` +//// a +//// [|b|] +//// c +////` + +const [r] = test.ranges(); +verify.noDocumentHighlights(r); diff --git a/tests/cases/fourslash/documentHighlightTemplateStrings.ts b/tests/cases/fourslash/documentHighlightTemplateStrings.ts new file mode 100644 index 0000000000000..c715c3c20776a --- /dev/null +++ b/tests/cases/fourslash/documentHighlightTemplateStrings.ts @@ -0,0 +1,18 @@ +/// + +////type Foo = "[|a|]" | "b"; +//// +////class C { +//// p: Foo = `[|a|]`; +//// m() { +//// switch (this.p) { +//// case `[|a|]`: +//// return 1; +//// case "b": +//// return 2; +//// } +//// } +////} + +const [r0, r1, r2] = test.ranges(); +verify.documentHighlightsOf(r2, [r0, r1, r2]);