Skip to content

Commit 7737167

Browse files
author
Andy
authored
Support getting references even if quickInfo failed (#24476)
* Support getting references even if quickInfo failed * Add test
1 parent 239dde8 commit 7737167

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

src/server/session.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1025,13 +1025,10 @@ namespace ts.server {
10251025
const position = this.getPosition(args, scriptInfo);
10261026
if (simplifiedResult) {
10271027
const nameInfo = defaultProject.getLanguageService().getQuickInfoAtPosition(file, position);
1028-
if (!nameInfo) {
1029-
return undefined;
1030-
}
1031-
const displayString = displayPartsToString(nameInfo.displayParts);
1032-
const nameSpan = nameInfo.textSpan;
1033-
const nameColStart = scriptInfo.positionToLineOffset(nameSpan.start).offset;
1034-
const nameText = scriptInfo.getSnapshot().getText(nameSpan.start, textSpanEnd(nameSpan));
1028+
const displayString = nameInfo ? displayPartsToString(nameInfo.displayParts) : "";
1029+
const nameSpan = nameInfo && nameInfo.textSpan;
1030+
const nameColStart = nameSpan ? scriptInfo.positionToLineOffset(nameSpan.start).offset : 0;
1031+
const nameText = nameSpan ? scriptInfo.getSnapshot().getText(nameSpan.start, textSpanEnd(nameSpan)) : "";
10351032
const refs = combineProjectOutput<NormalizedPath, protocol.ReferencesResponseItem>(
10361033
file,
10371034
path => this.projectService.getScriptInfoForPath(path)!.fileName,
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/// <reference path='../fourslash.ts'/>
2+
3+
// @Filename: /a.ts
4+
////type Options = "[|{| "isInString": true |}option 1|]" | "option 2";
5+
////let myOption: Options = "[|{| "isInString": true |}option 1|]";
6+
7+
const [r0, r1] = test.ranges();
8+
goTo.eachRange(() => {
9+
verify.getReferencesForServerTest([
10+
{ fileName: "/a.ts", isDefinition: false, isWriteAccess: false, textSpan: toSpan(r0) },
11+
{ fileName: "/a.ts", isDefinition: false, isWriteAccess: false, textSpan: toSpan(r1) },
12+
]);
13+
});
14+
15+
function toSpan(r: FourSlashInterface.Range) {
16+
return { start: r.pos, length: r.end - r.pos };
17+
}

0 commit comments

Comments
 (0)