Skip to content

Commit 4c7280c

Browse files
committed
Get file references always opens the file before running command
1 parent d18d9bc commit 4c7280c

File tree

4 files changed

+509
-3
lines changed

4 files changed

+509
-3
lines changed

src/harness/client.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ import { protocol } from "./_namespaces/ts.server.js";
8181

8282
export interface SessionClientHost extends LanguageServiceHost {
8383
writeMessage(message: string): void;
84+
openFile(fileName: string): void;
8485
}
8586

8687
interface RenameEntry {
@@ -479,6 +480,7 @@ export class SessionClient implements LanguageService {
479480
}
480481

481482
getFileReferences(fileName: string): ReferenceEntry[] {
483+
this.host.openFile(fileName);
482484
const request = this.processRequest<protocol.FileReferencesRequest>(protocol.CommandTypes.FileReferences, { file: fileName });
483485
const response = this.processResponse<protocol.FileReferencesResponse>(request);
484486

tests/baselines/reference/tsserver/fourslashServer/getFileReferences_deduplicate.js

Lines changed: 124 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -657,14 +657,137 @@ Info seq [hh:mm:ss:mss] request:
657657
"arguments": {
658658
"file": "/home/src/workspaces/project/util.ts"
659659
},
660+
"command": "open"
661+
}
662+
Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /home/src/workspaces/project/util.ts 500 undefined WatchType: Closed Script info
663+
Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/workspaces/project/util.ts ProjectRootPath: undefined:: Result: /home/src/workspaces/project/tsconfig.json
664+
Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/workspaces/project/tsconfig.json ProjectRootPath: undefined:: Result: undefined
665+
Info seq [hh:mm:ss:mss] Project '/home/src/workspaces/project/tsconfig.json' (Configured)
666+
Info seq [hh:mm:ss:mss] Files (0) InitialLoadPending
667+
668+
Info seq [hh:mm:ss:mss] -----------------------------------------------
669+
Info seq [hh:mm:ss:mss] Project '/home/src/workspaces/project/tsconfig.build.json' (Configured)
670+
Info seq [hh:mm:ss:mss] Files (5)
671+
672+
Info seq [hh:mm:ss:mss] -----------------------------------------------
673+
Info seq [hh:mm:ss:mss] Project '/home/src/workspaces/project/tsconfig.test.json' (Configured)
674+
Info seq [hh:mm:ss:mss] Files (6)
675+
676+
Info seq [hh:mm:ss:mss] -----------------------------------------------
677+
Info seq [hh:mm:ss:mss] Project '/dev/null/inferredProject1*' (Inferred)
678+
Info seq [hh:mm:ss:mss] Files (4)
679+
680+
Info seq [hh:mm:ss:mss] -----------------------------------------------
681+
Info seq [hh:mm:ss:mss] Open files:
682+
Info seq [hh:mm:ss:mss] FileName: /home/src/workspaces/project/tsconfig.json ProjectRootPath: undefined
683+
Info seq [hh:mm:ss:mss] Projects: /dev/null/inferredProject1*
684+
Info seq [hh:mm:ss:mss] FileName: /home/src/workspaces/project/index.ts ProjectRootPath: undefined
685+
Info seq [hh:mm:ss:mss] Projects: /home/src/workspaces/project/tsconfig.build.json,/home/src/workspaces/project/tsconfig.test.json
686+
Info seq [hh:mm:ss:mss] FileName: /home/src/workspaces/project/test.ts ProjectRootPath: undefined
687+
Info seq [hh:mm:ss:mss] Projects: /home/src/workspaces/project/tsconfig.test.json
688+
Info seq [hh:mm:ss:mss] FileName: /home/src/workspaces/project/util.ts ProjectRootPath: undefined
689+
Info seq [hh:mm:ss:mss] Projects: /home/src/workspaces/project/tsconfig.build.json,/home/src/workspaces/project/tsconfig.test.json
690+
Info seq [hh:mm:ss:mss] response:
691+
{
692+
"seq": 0,
693+
"type": "response",
694+
"command": "open",
695+
"request_seq": 3,
696+
"success": true
697+
}
698+
After Request
699+
watchedFiles::
700+
/home/src/tslibs/TS/Lib/lib.d.ts:
701+
{"pollingInterval":500}
702+
/home/src/tslibs/TS/Lib/lib.decorators.d.ts:
703+
{"pollingInterval":500}
704+
/home/src/tslibs/TS/Lib/lib.decorators.legacy.d.ts:
705+
{"pollingInterval":500}
706+
/home/src/workspaces/project/jsconfig.json:
707+
{"pollingInterval":2000}
708+
/home/src/workspaces/project/tsconfig.build.json:
709+
{"pollingInterval":2000}
710+
/home/src/workspaces/project/tsconfig.json:
711+
{"pollingInterval":2000}
712+
/home/src/workspaces/project/tsconfig.test.json:
713+
{"pollingInterval":2000}
714+
715+
watchedFiles *deleted*::
716+
/home/src/workspaces/project/util.ts:
717+
{"pollingInterval":500}
718+
719+
watchedDirectoriesRecursive::
720+
/home/src/workspaces/node_modules:
721+
{}
722+
{}
723+
{}
724+
/home/src/workspaces/node_modules/@types:
725+
{}
726+
{}
727+
{}
728+
/home/src/workspaces/project/node_modules:
729+
{}
730+
{}
731+
{}
732+
/home/src/workspaces/project/node_modules/@types:
733+
{}
734+
{}
735+
{}
736+
737+
ScriptInfos::
738+
/home/src/tslibs/TS/Lib/lib.d.ts
739+
version: Text-1
740+
containingProjects: 3
741+
/dev/null/inferredProject1*
742+
/home/src/workspaces/project/tsconfig.build.json
743+
/home/src/workspaces/project/tsconfig.test.json
744+
/home/src/tslibs/TS/Lib/lib.decorators.d.ts
745+
version: Text-1
746+
containingProjects: 3
747+
/dev/null/inferredProject1*
748+
/home/src/workspaces/project/tsconfig.build.json
749+
/home/src/workspaces/project/tsconfig.test.json
750+
/home/src/tslibs/TS/Lib/lib.decorators.legacy.d.ts
751+
version: Text-1
752+
containingProjects: 3
753+
/dev/null/inferredProject1*
754+
/home/src/workspaces/project/tsconfig.build.json
755+
/home/src/workspaces/project/tsconfig.test.json
756+
/home/src/workspaces/project/index.ts (Open)
757+
version: SVC-1-0
758+
containingProjects: 2
759+
/home/src/workspaces/project/tsconfig.build.json *default*
760+
/home/src/workspaces/project/tsconfig.test.json
761+
/home/src/workspaces/project/test.ts (Open)
762+
version: SVC-1-0
763+
containingProjects: 1
764+
/home/src/workspaces/project/tsconfig.test.json *default*
765+
/home/src/workspaces/project/tsconfig.json (Open)
766+
version: SVC-1-0
767+
containingProjects: 1
768+
/dev/null/inferredProject1* *default*
769+
/home/src/workspaces/project/util.ts (Open) *changed*
770+
open: true *changed*
771+
version: Text-1
772+
containingProjects: 2
773+
/home/src/workspaces/project/tsconfig.build.json *default*
774+
/home/src/workspaces/project/tsconfig.test.json
775+
776+
Info seq [hh:mm:ss:mss] request:
777+
{
778+
"seq": 4,
779+
"type": "request",
780+
"arguments": {
781+
"file": "/home/src/workspaces/project/util.ts"
782+
},
660783
"command": "fileReferences"
661784
}
662785
Info seq [hh:mm:ss:mss] response:
663786
{
664787
"seq": 0,
665788
"type": "response",
666789
"command": "fileReferences",
667-
"request_seq": 3,
790+
"request_seq": 4,
668791
"success": true,
669792
"body": {
670793
"refs": [

tests/baselines/reference/tsserver/fourslashServer/getFileReferences_server1.js

Lines changed: 120 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,14 +274,133 @@ Info seq [hh:mm:ss:mss] request:
274274
"arguments": {
275275
"file": "/home/src/workspaces/project/a.ts"
276276
},
277+
"command": "open"
278+
}
279+
Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /home/src/workspaces/project/a.ts 500 undefined WatchType: Closed Script info
280+
Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/workspaces/project/a.ts ProjectRootPath: undefined:: Result: /home/src/workspaces/project/tsconfig.json
281+
Info seq [hh:mm:ss:mss] Project '/home/src/workspaces/project/tsconfig.json' (Configured)
282+
Info seq [hh:mm:ss:mss] Files (7)
283+
284+
Info seq [hh:mm:ss:mss] -----------------------------------------------
285+
Info seq [hh:mm:ss:mss] Project '/dev/null/inferredProject1*' (Inferred)
286+
Info seq [hh:mm:ss:mss] Files (4)
287+
288+
Info seq [hh:mm:ss:mss] -----------------------------------------------
289+
Info seq [hh:mm:ss:mss] Open files:
290+
Info seq [hh:mm:ss:mss] FileName: /home/src/workspaces/project/tsconfig.json ProjectRootPath: undefined
291+
Info seq [hh:mm:ss:mss] Projects: /dev/null/inferredProject1*
292+
Info seq [hh:mm:ss:mss] FileName: /home/src/workspaces/project/a.ts ProjectRootPath: undefined
293+
Info seq [hh:mm:ss:mss] Projects: /home/src/workspaces/project/tsconfig.json
294+
Info seq [hh:mm:ss:mss] response:
295+
{
296+
"seq": 0,
297+
"type": "response",
298+
"command": "open",
299+
"request_seq": 1,
300+
"success": true
301+
}
302+
After Request
303+
watchedFiles::
304+
/home/src/tslibs/TS/Lib/lib.d.ts:
305+
{"pollingInterval":500}
306+
/home/src/tslibs/TS/Lib/lib.decorators.d.ts:
307+
{"pollingInterval":500}
308+
/home/src/tslibs/TS/Lib/lib.decorators.legacy.d.ts:
309+
{"pollingInterval":500}
310+
/home/src/workspaces/project/b.ts:
311+
{"pollingInterval":500}
312+
/home/src/workspaces/project/c.ts:
313+
{"pollingInterval":500}
314+
/home/src/workspaces/project/d.ts:
315+
{"pollingInterval":500}
316+
/home/src/workspaces/project/jsconfig.json:
317+
{"pollingInterval":2000}
318+
/home/src/workspaces/project/tsconfig.json:
319+
{"pollingInterval":2000}
320+
321+
watchedFiles *deleted*::
322+
/home/src/workspaces/project/a.ts:
323+
{"pollingInterval":500}
324+
325+
watchedDirectoriesRecursive::
326+
/home/src/workspaces/node_modules:
327+
{}
328+
{}
329+
/home/src/workspaces/node_modules/@types:
330+
{}
331+
{}
332+
/home/src/workspaces/project:
333+
{}
334+
/home/src/workspaces/project/node_modules:
335+
{}
336+
{}
337+
/home/src/workspaces/project/node_modules/@types:
338+
{}
339+
{}
340+
341+
Projects::
342+
/dev/null/inferredProject1* (Inferred)
343+
projectStateVersion: 1
344+
projectProgramVersion: 1
345+
autoImportProviderHost: false
346+
/home/src/workspaces/project/tsconfig.json (Configured) *changed*
347+
projectStateVersion: 1
348+
projectProgramVersion: 1
349+
noOpenRef: false *changed*
350+
351+
ScriptInfos::
352+
/home/src/tslibs/TS/Lib/lib.d.ts
353+
version: Text-1
354+
containingProjects: 2
355+
/home/src/workspaces/project/tsconfig.json
356+
/dev/null/inferredProject1*
357+
/home/src/tslibs/TS/Lib/lib.decorators.d.ts
358+
version: Text-1
359+
containingProjects: 2
360+
/home/src/workspaces/project/tsconfig.json
361+
/dev/null/inferredProject1*
362+
/home/src/tslibs/TS/Lib/lib.decorators.legacy.d.ts
363+
version: Text-1
364+
containingProjects: 2
365+
/home/src/workspaces/project/tsconfig.json
366+
/dev/null/inferredProject1*
367+
/home/src/workspaces/project/a.ts (Open) *changed*
368+
open: true *changed*
369+
version: Text-1
370+
containingProjects: 1
371+
/home/src/workspaces/project/tsconfig.json *default*
372+
/home/src/workspaces/project/b.ts
373+
version: Text-1
374+
containingProjects: 1
375+
/home/src/workspaces/project/tsconfig.json
376+
/home/src/workspaces/project/c.ts
377+
version: Text-1
378+
containingProjects: 1
379+
/home/src/workspaces/project/tsconfig.json
380+
/home/src/workspaces/project/d.ts
381+
version: Text-1
382+
containingProjects: 1
383+
/home/src/workspaces/project/tsconfig.json
384+
/home/src/workspaces/project/tsconfig.json (Open)
385+
version: SVC-1-0
386+
containingProjects: 1
387+
/dev/null/inferredProject1* *default*
388+
389+
Info seq [hh:mm:ss:mss] request:
390+
{
391+
"seq": 2,
392+
"type": "request",
393+
"arguments": {
394+
"file": "/home/src/workspaces/project/a.ts"
395+
},
277396
"command": "fileReferences"
278397
}
279398
Info seq [hh:mm:ss:mss] response:
280399
{
281400
"seq": 0,
282401
"type": "response",
283402
"command": "fileReferences",
284-
"request_seq": 1,
403+
"request_seq": 2,
285404
"success": true,
286405
"body": {
287406
"refs": [

0 commit comments

Comments
 (0)