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]);