-
Notifications
You must be signed in to change notification settings - Fork 12.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
When using cached sourceFile from the info, make sure the scriptKind …
…is same This is needed esp with externalFiles since they may not use actual scriptInfo and text at all Fixes #57631
- Loading branch information
1 parent
047879a
commit faad4b8
Showing
2 changed files
with
387 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
386 changes: 386 additions & 0 deletions
386
tests/baselines/reference/tsserver/plugins/when-scriptKind-changes-for-the-external-file.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,386 @@ | ||
currentDirectory:: / useCaseSensitiveFileNames: false | ||
Info seq [hh:mm:ss:mss] Provided types map file "/typesMap.json" doesn't exist | ||
Before request | ||
//// [/user/username/projects/myproject/a.ts] | ||
export const a = 10; | ||
|
||
//// [/user/username/projects/myproject/b.vue] | ||
bVueFile | ||
|
||
//// [/user/username/projects/myproject/tsconfig.json] | ||
{ | ||
"compilerOptions": { | ||
"composite": true | ||
}, | ||
"include": [ | ||
"*.ts", | ||
"*.vue" | ||
] | ||
} | ||
|
||
//// [/a/lib/lib.d.ts] | ||
/// <reference no-default-lib="true"/> | ||
interface Boolean {} | ||
interface Function {} | ||
interface CallableFunction {} | ||
interface NewableFunction {} | ||
interface IArguments {} | ||
interface Number { toExponential: any; } | ||
interface Object {} | ||
interface RegExp {} | ||
interface String { charAt: any; } | ||
interface Array<T> { length: number; [n: number]: T; } | ||
|
||
|
||
Info seq [hh:mm:ss:mss] request: | ||
{ | ||
"command": "open", | ||
"arguments": { | ||
"file": "/user/username/projects/myproject/b.vue" | ||
}, | ||
"seq": 1, | ||
"type": "request" | ||
} | ||
Info seq [hh:mm:ss:mss] Search path: /user/username/projects/myproject | ||
Info seq [hh:mm:ss:mss] For info: /user/username/projects/myproject/b.vue :: Config file name: /user/username/projects/myproject/tsconfig.json | ||
Info seq [hh:mm:ss:mss] Creating configuration project /user/username/projects/myproject/tsconfig.json | ||
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/tsconfig.json 2000 undefined Project: /user/username/projects/myproject/tsconfig.json WatchType: Config file | ||
Info seq [hh:mm:ss:mss] event: | ||
{ | ||
"seq": 0, | ||
"type": "event", | ||
"event": "projectLoadingStart", | ||
"body": { | ||
"projectName": "/user/username/projects/myproject/tsconfig.json", | ||
"reason": "Creating possible configured project for /user/username/projects/myproject/b.vue to open" | ||
} | ||
} | ||
Info seq [hh:mm:ss:mss] Config: /user/username/projects/myproject/tsconfig.json : { | ||
"rootNames": [ | ||
"/user/username/projects/myproject/a.ts" | ||
], | ||
"options": { | ||
"composite": true, | ||
"configFilePath": "/user/username/projects/myproject/tsconfig.json" | ||
} | ||
} | ||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Config: /user/username/projects/myproject/tsconfig.json WatchType: Wild card directory | ||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Config: /user/username/projects/myproject/tsconfig.json WatchType: Wild card directory | ||
Info seq [hh:mm:ss:mss] Loading global plugin myplugin | ||
Info seq [hh:mm:ss:mss] Enabling plugin myplugin from candidate paths: /a/lib/tsc.js/../../.. | ||
Info seq [hh:mm:ss:mss] Loading myplugin from /a/lib/tsc.js/../../.. (resolved to /a/lib/tsc.js/../../../node_modules) | ||
Info seq [hh:mm:ss:mss] Plugin validation succeeded | ||
getExternalFiles:: Getting new list of .vue files | ||
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/a.ts 500 undefined WatchType: Closed Script info | ||
Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /user/username/projects/myproject/tsconfig.json | ||
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined WatchType: Closed Script info | ||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules 1 undefined Project: /user/username/projects/myproject/tsconfig.json WatchType: Failed Lookup Locations | ||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules 1 undefined Project: /user/username/projects/myproject/tsconfig.json WatchType: Failed Lookup Locations | ||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/node_modules 1 undefined Project: /user/username/projects/myproject/tsconfig.json WatchType: Failed Lookup Locations | ||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/node_modules 1 undefined Project: /user/username/projects/myproject/tsconfig.json WatchType: Failed Lookup Locations | ||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules/@types 1 undefined Project: /user/username/projects/myproject/tsconfig.json WatchType: Type roots | ||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules/@types 1 undefined Project: /user/username/projects/myproject/tsconfig.json WatchType: Type roots | ||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/node_modules/@types 1 undefined Project: /user/username/projects/myproject/tsconfig.json WatchType: Type roots | ||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/node_modules/@types 1 undefined Project: /user/username/projects/myproject/tsconfig.json WatchType: Type roots | ||
getExternalFiles:: Returning cached .vue files | ||
Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /user/username/projects/myproject/tsconfig.json projectStateVersion: 1 projectProgramVersion: 0 structureChanged: true structureIsReused:: Not Elapsed:: *ms | ||
Info seq [hh:mm:ss:mss] Project '/user/username/projects/myproject/tsconfig.json' (Configured) | ||
Info seq [hh:mm:ss:mss] Files (3) | ||
/a/lib/lib.d.ts Text-1 "/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }" | ||
/user/username/projects/myproject/a.ts Text-1 "export const a = 10;" | ||
/user/username/projects/myproject/b.vue SVC-1-0 "import { y } from \"bVueFile\";" | ||
|
||
|
||
../../../../a/lib/lib.d.ts | ||
Default library for target 'es5' | ||
a.ts | ||
Matched by include pattern '*.ts' in 'tsconfig.json' | ||
b.vue | ||
Matched by include pattern '*.vue' in 'tsconfig.json' | ||
|
||
Info seq [hh:mm:ss:mss] ----------------------------------------------- | ||
Info seq [hh:mm:ss:mss] event: | ||
{ | ||
"seq": 0, | ||
"type": "event", | ||
"event": "projectLoadingFinish", | ||
"body": { | ||
"projectName": "/user/username/projects/myproject/tsconfig.json" | ||
} | ||
} | ||
Info seq [hh:mm:ss:mss] event: | ||
{ | ||
"seq": 0, | ||
"type": "event", | ||
"event": "telemetry", | ||
"body": { | ||
"telemetryEventName": "projectInfo", | ||
"payload": { | ||
"projectId": "4a33d78ee40d836c4f4e64c59aed976628aea0013be9585c5ff171dfc41baf98", | ||
"fileStats": { | ||
"js": 0, | ||
"jsSize": 0, | ||
"jsx": 0, | ||
"jsxSize": 0, | ||
"ts": 1, | ||
"tsSize": 20, | ||
"tsx": 0, | ||
"tsxSize": 0, | ||
"dts": 1, | ||
"dtsSize": 334, | ||
"deferred": 0, | ||
"deferredSize": 0 | ||
}, | ||
"compilerOptions": { | ||
"composite": true | ||
}, | ||
"typeAcquisition": { | ||
"enable": false, | ||
"include": false, | ||
"exclude": false | ||
}, | ||
"extends": false, | ||
"files": false, | ||
"include": true, | ||
"exclude": false, | ||
"compileOnSave": false, | ||
"configFileName": "tsconfig.json", | ||
"projectType": "configured", | ||
"languageServiceEnabled": true, | ||
"version": "FakeVersion" | ||
} | ||
} | ||
} | ||
Info seq [hh:mm:ss:mss] event: | ||
{ | ||
"seq": 0, | ||
"type": "event", | ||
"event": "configFileDiag", | ||
"body": { | ||
"triggerFile": "/user/username/projects/myproject/b.vue", | ||
"configFile": "/user/username/projects/myproject/tsconfig.json", | ||
"diagnostics": [] | ||
} | ||
} | ||
Info seq [hh:mm:ss:mss] Search path: /user/username/projects/myproject | ||
Info seq [hh:mm:ss:mss] For info: /user/username/projects/myproject/tsconfig.json :: No config files found. | ||
Info seq [hh:mm:ss:mss] Project '/user/username/projects/myproject/tsconfig.json' (Configured) | ||
Info seq [hh:mm:ss:mss] Files (3) | ||
|
||
Info seq [hh:mm:ss:mss] ----------------------------------------------- | ||
Info seq [hh:mm:ss:mss] Open files: | ||
Info seq [hh:mm:ss:mss] FileName: /user/username/projects/myproject/b.vue ProjectRootPath: undefined | ||
Info seq [hh:mm:ss:mss] Projects: /user/username/projects/myproject/tsconfig.json | ||
Info seq [hh:mm:ss:mss] response: | ||
{ | ||
"responseRequired": false | ||
} | ||
After request | ||
|
||
PolledWatches:: | ||
/user/username/projects/myproject/node_modules: *new* | ||
{"pollingInterval":500} | ||
/user/username/projects/myproject/node_modules/@types: *new* | ||
{"pollingInterval":500} | ||
/user/username/projects/node_modules: *new* | ||
{"pollingInterval":500} | ||
/user/username/projects/node_modules/@types: *new* | ||
{"pollingInterval":500} | ||
|
||
FsWatches:: | ||
/a/lib/lib.d.ts: *new* | ||
{} | ||
/user/username/projects/myproject: *new* | ||
{} | ||
/user/username/projects/myproject/a.ts: *new* | ||
{} | ||
/user/username/projects/myproject/tsconfig.json: *new* | ||
{} | ||
|
||
Projects:: | ||
/user/username/projects/myproject/tsconfig.json (Configured) *new* | ||
projectStateVersion: 1 | ||
projectProgramVersion: 1 | ||
|
||
ScriptInfos:: | ||
/a/lib/lib.d.ts *new* | ||
version: Text-1 | ||
containingProjects: 1 | ||
/user/username/projects/myproject/tsconfig.json | ||
/user/username/projects/myproject/a.ts *new* | ||
version: Text-1 | ||
containingProjects: 1 | ||
/user/username/projects/myproject/tsconfig.json | ||
/user/username/projects/myproject/b.vue (Open) *new* | ||
version: SVC-1-0 | ||
containingProjects: 1 | ||
/user/username/projects/myproject/tsconfig.json *default* | ||
|
||
Before request | ||
|
||
Info seq [hh:mm:ss:mss] request: | ||
{ | ||
"command": "updateOpen", | ||
"arguments": { | ||
"changedFiles": [ | ||
{ | ||
"fileName": "/user/username/projects/myproject/b.vue", | ||
"textChanges": [ | ||
{ | ||
"start": { | ||
"line": 1, | ||
"offset": 9 | ||
}, | ||
"end": { | ||
"line": 1, | ||
"offset": 9 | ||
}, | ||
"newText": "Updated" | ||
} | ||
] | ||
} | ||
] | ||
}, | ||
"seq": 2, | ||
"type": "request" | ||
} | ||
Info seq [hh:mm:ss:mss] response: | ||
{ | ||
"response": true, | ||
"responseRequired": true | ||
} | ||
After request | ||
|
||
Projects:: | ||
/user/username/projects/myproject/tsconfig.json (Configured) *changed* | ||
projectStateVersion: 2 *changed* | ||
projectProgramVersion: 1 | ||
dirty: true *changed* | ||
|
||
ScriptInfos:: | ||
/a/lib/lib.d.ts | ||
version: Text-1 | ||
containingProjects: 1 | ||
/user/username/projects/myproject/tsconfig.json | ||
/user/username/projects/myproject/a.ts | ||
version: Text-1 | ||
containingProjects: 1 | ||
/user/username/projects/myproject/tsconfig.json | ||
/user/username/projects/myproject/b.vue (Open) *changed* | ||
version: SVC-1-1 *changed* | ||
containingProjects: 1 | ||
/user/username/projects/myproject/tsconfig.json *default* | ||
|
||
Before request | ||
|
||
Info seq [hh:mm:ss:mss] request: | ||
{ | ||
"command": "geterr", | ||
"arguments": { | ||
"delay": 0, | ||
"files": [ | ||
"/user/username/projects/myproject/b.vue" | ||
] | ||
}, | ||
"seq": 3, | ||
"type": "request" | ||
} | ||
Info seq [hh:mm:ss:mss] response: | ||
{ | ||
"responseRequired": false | ||
} | ||
After request | ||
|
||
Timeout callback:: count: 1 | ||
1: checkOne *new* | ||
|
||
Before running Timeout callback:: count: 1 | ||
1: checkOne | ||
|
||
Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /user/username/projects/myproject/tsconfig.json | ||
getExternalFiles:: Returning cached .vue files | ||
Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /user/username/projects/myproject/tsconfig.json projectStateVersion: 2 projectProgramVersion: 1 structureChanged: true structureIsReused:: SafeModules Elapsed:: *ms | ||
Info seq [hh:mm:ss:mss] Project '/user/username/projects/myproject/tsconfig.json' (Configured) | ||
Info seq [hh:mm:ss:mss] Files (3) | ||
/a/lib/lib.d.ts Text-1 "/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }" | ||
/user/username/projects/myproject/a.ts Text-1 "export const a = 10;" | ||
/user/username/projects/myproject/b.vue SVC-1-1 "import { y } from \"bVueFileUpdated\";" | ||
|
||
Info seq [hh:mm:ss:mss] ----------------------------------------------- | ||
Info seq [hh:mm:ss:mss] event: | ||
{ | ||
"seq": 0, | ||
"type": "event", | ||
"event": "syntaxDiag", | ||
"body": { | ||
"file": "/user/username/projects/myproject/b.vue", | ||
"diagnostics": [] | ||
} | ||
} | ||
After running Timeout callback:: count: 0 | ||
|
||
Immedidate callback:: count: 1 | ||
1: semanticCheck *new* | ||
|
||
Projects:: | ||
/user/username/projects/myproject/tsconfig.json (Configured) *changed* | ||
projectStateVersion: 2 | ||
projectProgramVersion: 2 *changed* | ||
dirty: false *changed* | ||
|
||
Before running Immedidate callback:: count: 1 | ||
1: semanticCheck | ||
|
||
Info seq [hh:mm:ss:mss] event: | ||
{ | ||
"seq": 0, | ||
"type": "event", | ||
"event": "semanticDiag", | ||
"body": { | ||
"file": "/user/username/projects/myproject/b.vue", | ||
"diagnostics": [] | ||
} | ||
} | ||
After running Immedidate callback:: count: 1 | ||
|
||
Immedidate callback:: count: 1 | ||
2: suggestionCheck *new* | ||
|
||
Before running Immedidate callback:: count: 1 | ||
2: suggestionCheck | ||
|
||
Info seq [hh:mm:ss:mss] event: | ||
{ | ||
"seq": 0, | ||
"type": "event", | ||
"event": "suggestionDiag", | ||
"body": { | ||
"file": "/user/username/projects/myproject/b.vue", | ||
"diagnostics": [ | ||
{ | ||
"start": { | ||
"line": 1, | ||
"offset": 1 | ||
}, | ||
"end": { | ||
"line": 1, | ||
"offset": 16 | ||
}, | ||
"text": "'y' is declared but its value is never read.", | ||
"code": 6133, | ||
"category": "suggestion", | ||
"reportsUnnecessary": true | ||
} | ||
] | ||
} | ||
} | ||
Info seq [hh:mm:ss:mss] event: | ||
{ | ||
"seq": 0, | ||
"type": "event", | ||
"event": "requestCompleted", | ||
"body": { | ||
"request_seq": 3 | ||
} | ||
} | ||
After running Immedidate callback:: count: 0 |