From 1d930a4db268550c253d13f4a09d968515052483 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Fri, 19 Aug 2022 12:32:43 -0700 Subject: [PATCH] Syntax operations also need to ensure project is present for the open script infos since update could be pending to make sure open script info has project Also convert one relevant test case to baseline Fixes #50131 --- src/server/session.ts | 4 +- src/testRunner/unittests/tsserver/projects.ts | 52 +++-- ...configured-project-that-will-be-removed.js | 186 ++++++++++++++++++ ...-and-closed-affecting-multiple-projects.js | 167 ++++++++++++++++ 4 files changed, 393 insertions(+), 16 deletions(-) create mode 100644 tests/baselines/reference/tsserver/projects/file-opened-is-in-configured-project-that-will-be-removed.js create mode 100644 tests/baselines/reference/tsserver/projects/files-opened-and-closed-affecting-multiple-projects.js diff --git a/src/server/session.ts b/src/server/session.ts index a541463063c5c..5eff52c6ad8e0 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -1868,9 +1868,9 @@ namespace ts.server { private getFileAndLanguageServiceForSyntacticOperation(args: protocol.FileRequestArgs) { // Since this is syntactic operation, there should always be project for the file - // we wouldnt have to ensure project but rather throw if we dont get project + // throw if we dont get project const file = toNormalizedPath(args.file); - const project = this.getProject(args.projectFileName) || this.projectService.tryGetDefaultProjectForFile(file); + const project = this.getProject(args.projectFileName) || this.projectService.ensureDefaultProjectForFile(file); if (!project) { return Errors.ThrowNoProject(); } diff --git a/src/testRunner/unittests/tsserver/projects.ts b/src/testRunner/unittests/tsserver/projects.ts index 7bd5af3fa4f34..7a166dc1abbb2 100644 --- a/src/testRunner/unittests/tsserver/projects.ts +++ b/src/testRunner/unittests/tsserver/projects.ts @@ -1054,7 +1054,7 @@ namespace ts.projectSystem { assert.equal(options.outDir, "C:/a/b", ""); }); - it("files opened, closed affecting multiple projects", () => { + it("files opened and closed affecting multiple projects", () => { const file: File = { path: "/a/b/projects/config/file.ts", content: `import {a} from "../files/file1"; export let b = a;` @@ -1074,7 +1074,7 @@ namespace ts.projectSystem { const files = [config, file, filesFile1, filesFile2, libFile]; const host = createServerHost(files); - const session = createSession(host); + const session = createSession(host, { logger: createLoggerWithInMemoryLogs() }); // Create configured project session.executeCommandSeq({ command: protocol.CommandTypes.Open, @@ -1083,10 +1083,6 @@ namespace ts.projectSystem { } }); - const projectService = session.getProjectService(); - const configuredProject = projectService.configuredProjects.get(config.path)!; - verifyConfiguredProject(); - // open files/file1 = should not create another project session.executeCommandSeq({ command: protocol.CommandTypes.Open, @@ -1094,7 +1090,6 @@ namespace ts.projectSystem { file: filesFile1.path } }); - verifyConfiguredProject(); // Close the file = should still have project session.executeCommandSeq({ @@ -1103,7 +1098,6 @@ namespace ts.projectSystem { file: file.path } }); - verifyConfiguredProject(); // Open files/file2 - should create inferred project and close configured project session.executeCommandSeq({ @@ -1112,8 +1106,6 @@ namespace ts.projectSystem { file: filesFile2.path } }); - checkNumberOfProjects(projectService, { inferredProjects: 1 }); - checkProjectActualFiles(projectService.inferredProjects[0], [libFile.path, filesFile2.path]); // Actions on file1 would result in assert session.executeCommandSeq({ @@ -1125,10 +1117,7 @@ namespace ts.projectSystem { } }); - function verifyConfiguredProject() { - checkNumberOfProjects(projectService, { configuredProjects: 1 }); - checkProjectActualFiles(configuredProject, [file.path, filesFile1.path, libFile.path, config.path]); - } + baselineTsserverLogs("projects", "files opened and closed affecting multiple projects", session); }); it("requests are done on file on pendingReload but has svc for previous version", () => { @@ -1620,5 +1609,40 @@ namespace ts.projectSystem { checkNumberOfInferredProjects(projectService, 0); }); + + it("file opened is in configured project that will be removed", () => { + const testsConfig: File = { + path: `${tscWatch.projectRoot}/playground/tsconfig.json`, + content: "{}" + }; + const testsFile: File = { + path: `${tscWatch.projectRoot}/playground/tests.ts`, + content: `export function foo() {}` + }; + const innerFile: File = { + path: `${tscWatch.projectRoot}/playground/tsconfig-json/tests/spec.ts`, + content: `export function bar() { }` + }; + const innerConfig: File = { + path: `${tscWatch.projectRoot}/playground/tsconfig-json/tsconfig.json`, + content: JSON.stringify({ + include: ["./src"] + }) + }; + const innerSrcFile: File = { + path: `${tscWatch.projectRoot}/playground/tsconfig-json/src/src.ts`, + content: `export function foobar() { }` + }; + const host = createServerHost([testsConfig, testsFile, innerFile, innerConfig, innerSrcFile, libFile]); + const session = createSession(host, { logger: createLoggerWithInMemoryLogs() }); + openFilesForSession([testsFile], session); + closeFilesForSession([testsFile], session); + openFilesForSession([innerFile], session); + session.executeCommandSeq({ + command: protocol.CommandTypes.GetOutliningSpans, + arguments: { file: innerFile.path } + }); + baselineTsserverLogs("projects", "file opened is in configured project that will be removed", session); + }); }); } diff --git a/tests/baselines/reference/tsserver/projects/file-opened-is-in-configured-project-that-will-be-removed.js b/tests/baselines/reference/tsserver/projects/file-opened-is-in-configured-project-that-will-be-removed.js new file mode 100644 index 0000000000000..192a2b3c34917 --- /dev/null +++ b/tests/baselines/reference/tsserver/projects/file-opened-is-in-configured-project-that-will-be-removed.js @@ -0,0 +1,186 @@ +Provided types map file "/a/lib/typesMap.json" doesn't exist +request:{"seq":0,"type":"request","command":"open","arguments":{"file":"/user/username/projects/myproject/playground/tests.ts"}} +Search path: /user/username/projects/myproject/playground +For info: /user/username/projects/myproject/playground/tests.ts :: Config file name: /user/username/projects/myproject/playground/tsconfig.json +Creating configuration project /user/username/projects/myproject/playground/tsconfig.json +FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/tsconfig.json 2000 undefined Project: /user/username/projects/myproject/playground/tsconfig.json WatchType: Config file +Config: /user/username/projects/myproject/playground/tsconfig.json : { + "rootNames": [ + "/user/username/projects/myproject/playground/tests.ts", + "/user/username/projects/myproject/playground/tsconfig-json/src/src.ts", + "/user/username/projects/myproject/playground/tsconfig-json/tests/spec.ts" + ], + "options": { + "configFilePath": "/user/username/projects/myproject/playground/tsconfig.json" + } +} +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground 1 undefined Config: /user/username/projects/myproject/playground/tsconfig.json WatchType: Wild card directory +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground 1 undefined Config: /user/username/projects/myproject/playground/tsconfig.json WatchType: Wild card directory +Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded +FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/tsconfig-json/src/src.ts 500 undefined WatchType: Closed Script info +FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/tsconfig-json/tests/spec.ts 500 undefined WatchType: Closed Script info +Starting updateGraphWorker: Project: /user/username/projects/myproject/playground/tsconfig.json +FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined WatchType: Closed Script info +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/node_modules/@types 1 undefined Project: /user/username/projects/myproject/playground/tsconfig.json WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/node_modules/@types 1 undefined Project: /user/username/projects/myproject/playground/tsconfig.json WatchType: Type roots +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules/@types 1 undefined Project: /user/username/projects/myproject/playground/tsconfig.json WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules/@types 1 undefined Project: /user/username/projects/myproject/playground/tsconfig.json WatchType: Type roots +Finishing updateGraphWorker: Project: /user/username/projects/myproject/playground/tsconfig.json Version: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Project '/user/username/projects/myproject/playground/tsconfig.json' (Configured) + Files (4) + /a/lib/lib.d.ts + /user/username/projects/myproject/playground/tests.ts + /user/username/projects/myproject/playground/tsconfig-json/src/src.ts + /user/username/projects/myproject/playground/tsconfig-json/tests/spec.ts + + + ../../../../../a/lib/lib.d.ts + Default library for target 'es3' + tests.ts + Matched by default include pattern '**/*' + tsconfig-json/src/src.ts + Matched by default include pattern '**/*' + tsconfig-json/tests/spec.ts + Matched by default include pattern '**/*' + +----------------------------------------------- +Project '/user/username/projects/myproject/playground/tsconfig.json' (Configured) + Files (4) + +----------------------------------------------- +Open files: + FileName: /user/username/projects/myproject/playground/tests.ts ProjectRootPath: undefined + Projects: /user/username/projects/myproject/playground/tsconfig.json +response:{"responseRequired":false} +request:{"seq":0,"type":"request","command":"close","arguments":{"file":"/user/username/projects/myproject/playground/tests.ts"}} +FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/tests.ts 500 undefined WatchType: Closed Script info +Project '/user/username/projects/myproject/playground/tsconfig.json' (Configured) + Files (4) + +----------------------------------------------- +Open files: +response:{"responseRequired":false} +request:{"seq":0,"type":"request","command":"open","arguments":{"file":"/user/username/projects/myproject/playground/tsconfig-json/tests/spec.ts"}} +FileWatcher:: Close:: WatchInfo: /user/username/projects/myproject/playground/tsconfig-json/tests/spec.ts 500 undefined WatchType: Closed Script info +Search path: /user/username/projects/myproject/playground/tsconfig-json/tests +For info: /user/username/projects/myproject/playground/tsconfig-json/tests/spec.ts :: Config file name: /user/username/projects/myproject/playground/tsconfig-json/tsconfig.json +Creating configuration project /user/username/projects/myproject/playground/tsconfig-json/tsconfig.json +FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/tsconfig-json/tsconfig.json 2000 undefined Project: /user/username/projects/myproject/playground/tsconfig-json/tsconfig.json WatchType: Config file +Config: /user/username/projects/myproject/playground/tsconfig-json/tsconfig.json : { + "rootNames": [ + "/user/username/projects/myproject/playground/tsconfig-json/src/src.ts" + ], + "options": { + "configFilePath": "/user/username/projects/myproject/playground/tsconfig-json/tsconfig.json" + } +} +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/tsconfig-json/src 1 undefined Config: /user/username/projects/myproject/playground/tsconfig-json/tsconfig.json WatchType: Wild card directory +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/tsconfig-json/src 1 undefined Config: /user/username/projects/myproject/playground/tsconfig-json/tsconfig.json WatchType: Wild card directory +Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded +Starting updateGraphWorker: Project: /user/username/projects/myproject/playground/tsconfig-json/tsconfig.json +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/tsconfig-json/node_modules/@types 1 undefined Project: /user/username/projects/myproject/playground/tsconfig-json/tsconfig.json WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/tsconfig-json/node_modules/@types 1 undefined Project: /user/username/projects/myproject/playground/tsconfig-json/tsconfig.json WatchType: Type roots +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/node_modules/@types 1 undefined Project: /user/username/projects/myproject/playground/tsconfig-json/tsconfig.json WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/node_modules/@types 1 undefined Project: /user/username/projects/myproject/playground/tsconfig-json/tsconfig.json WatchType: Type roots +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules/@types 1 undefined Project: /user/username/projects/myproject/playground/tsconfig-json/tsconfig.json WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules/@types 1 undefined Project: /user/username/projects/myproject/playground/tsconfig-json/tsconfig.json WatchType: Type roots +Finishing updateGraphWorker: Project: /user/username/projects/myproject/playground/tsconfig-json/tsconfig.json Version: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Project '/user/username/projects/myproject/playground/tsconfig-json/tsconfig.json' (Configured) + Files (2) + /a/lib/lib.d.ts + /user/username/projects/myproject/playground/tsconfig-json/src/src.ts + + + ../../../../../../a/lib/lib.d.ts + Default library for target 'es3' + src/src.ts + Matched by include pattern './src' in 'tsconfig.json' + +----------------------------------------------- +`remove Project:: +Project '/user/username/projects/myproject/playground/tsconfig.json' (Configured) + Files (4) + /a/lib/lib.d.ts + /user/username/projects/myproject/playground/tests.ts + /user/username/projects/myproject/playground/tsconfig-json/src/src.ts + /user/username/projects/myproject/playground/tsconfig-json/tests/spec.ts + + + ../../../../../a/lib/lib.d.ts + Default library for target 'es3' + tests.ts + Matched by default include pattern '**/*' + tsconfig-json/src/src.ts + Matched by default include pattern '**/*' + tsconfig-json/tests/spec.ts + Matched by default include pattern '**/*' + +----------------------------------------------- +DirectoryWatcher:: Close:: WatchInfo: /user/username/projects/myproject/playground 1 undefined Config: /user/username/projects/myproject/playground/tsconfig.json WatchType: Wild card directory +Elapsed:: *ms DirectoryWatcher:: Close:: WatchInfo: /user/username/projects/myproject/playground 1 undefined Config: /user/username/projects/myproject/playground/tsconfig.json WatchType: Wild card directory +FileWatcher:: Close:: WatchInfo: /user/username/projects/myproject/playground/tsconfig.json 2000 undefined Project: /user/username/projects/myproject/playground/tsconfig.json WatchType: Config file +DirectoryWatcher:: Close:: WatchInfo: /user/username/projects/myproject/playground/node_modules/@types 1 undefined Project: /user/username/projects/myproject/playground/tsconfig.json WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Close:: WatchInfo: /user/username/projects/myproject/playground/node_modules/@types 1 undefined Project: /user/username/projects/myproject/playground/tsconfig.json WatchType: Type roots +DirectoryWatcher:: Close:: WatchInfo: /user/username/projects/myproject/node_modules/@types 1 undefined Project: /user/username/projects/myproject/playground/tsconfig.json WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Close:: WatchInfo: /user/username/projects/myproject/node_modules/@types 1 undefined Project: /user/username/projects/myproject/playground/tsconfig.json WatchType: Type roots +FileWatcher:: Close:: WatchInfo: /user/username/projects/myproject/playground/tests.ts 500 undefined WatchType: Closed Script info +Project '/user/username/projects/myproject/playground/tsconfig-json/tsconfig.json' (Configured) + Files (2) + +----------------------------------------------- +Open files: + FileName: /user/username/projects/myproject/playground/tsconfig-json/tests/spec.ts ProjectRootPath: undefined + Projects: +response:{"responseRequired":false} +request:{"command":"getOutliningSpans","arguments":{"file":"/user/username/projects/myproject/playground/tsconfig-json/tests/spec.ts"},"seq":1,"type":"request"} +Before ensureProjectForOpenFiles: +Project '/user/username/projects/myproject/playground/tsconfig-json/tsconfig.json' (Configured) + Files (2) + +----------------------------------------------- +Open files: + FileName: /user/username/projects/myproject/playground/tsconfig-json/tests/spec.ts ProjectRootPath: undefined + Projects: +Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded +FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/tsconfig-json/tests/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root +FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/tsconfig-json/tests/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root +FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/tsconfig-json/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root +FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root +FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root +FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root +FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root +Starting updateGraphWorker: Project: /dev/null/inferredProject1* +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/tsconfig-json/tests/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/tsconfig-json/tests/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/tsconfig-json/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/tsconfig-json/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/playground/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Finishing updateGraphWorker: Project: /dev/null/inferredProject1* Version: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Project '/dev/null/inferredProject1*' (Inferred) + Files (2) + /a/lib/lib.d.ts + /user/username/projects/myproject/playground/tsconfig-json/tests/spec.ts + + + ../../../../../../../a/lib/lib.d.ts + Default library for target 'es5' + spec.ts + Root file specified for compilation + +----------------------------------------------- +After ensureProjectForOpenFiles: +Project '/user/username/projects/myproject/playground/tsconfig-json/tsconfig.json' (Configured) + Files (2) + +----------------------------------------------- +Project '/dev/null/inferredProject1*' (Inferred) + Files (2) + +----------------------------------------------- +Open files: + FileName: /user/username/projects/myproject/playground/tsconfig-json/tests/spec.ts ProjectRootPath: undefined + Projects: /dev/null/inferredProject1* +response:{"response":[{"textSpan":{"start":{"line":1,"offset":22},"end":{"line":1,"offset":26}},"hintSpan":{"start":{"line":1,"offset":1},"end":{"line":1,"offset":26}},"bannerText":"...","autoCollapse":true,"kind":"code"}],"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projects/files-opened-and-closed-affecting-multiple-projects.js b/tests/baselines/reference/tsserver/projects/files-opened-and-closed-affecting-multiple-projects.js new file mode 100644 index 0000000000000..e0f4caa89d7a0 --- /dev/null +++ b/tests/baselines/reference/tsserver/projects/files-opened-and-closed-affecting-multiple-projects.js @@ -0,0 +1,167 @@ +Provided types map file "/a/lib/typesMap.json" doesn't exist +request:{"command":"open","arguments":{"file":"/a/b/projects/config/file.ts"},"seq":1,"type":"request"} +Search path: /a/b/projects/config +For info: /a/b/projects/config/file.ts :: Config file name: /a/b/projects/config/tsconfig.json +Creating configuration project /a/b/projects/config/tsconfig.json +FileWatcher:: Added:: WatchInfo: /a/b/projects/config/tsconfig.json 2000 undefined Project: /a/b/projects/config/tsconfig.json WatchType: Config file +Config: /a/b/projects/config/tsconfig.json : { + "rootNames": [ + "/a/b/projects/config/file.ts" + ], + "options": { + "configFilePath": "/a/b/projects/config/tsconfig.json" + } +} +DirectoryWatcher:: Added:: WatchInfo: /a/b/projects/config 1 undefined Config: /a/b/projects/config/tsconfig.json WatchType: Wild card directory +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /a/b/projects/config 1 undefined Config: /a/b/projects/config/tsconfig.json WatchType: Wild card directory +Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded +Starting updateGraphWorker: Project: /a/b/projects/config/tsconfig.json +FileWatcher:: Added:: WatchInfo: /a/b/projects/files/file1.ts 500 undefined WatchType: Closed Script info +FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined WatchType: Closed Script info +DirectoryWatcher:: Added:: WatchInfo: /a/b/projects/config/node_modules/@types 1 undefined Project: /a/b/projects/config/tsconfig.json WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /a/b/projects/config/node_modules/@types 1 undefined Project: /a/b/projects/config/tsconfig.json WatchType: Type roots +Finishing updateGraphWorker: Project: /a/b/projects/config/tsconfig.json Version: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Project '/a/b/projects/config/tsconfig.json' (Configured) + Files (3) + /a/lib/lib.d.ts + /a/b/projects/files/file1.ts + /a/b/projects/config/file.ts + + + ../../../lib/lib.d.ts + Default library for target 'es3' + ../files/file1.ts + Imported via "../files/file1" from file 'file.ts' + file.ts + Matched by default include pattern '**/*' + +----------------------------------------------- +Project '/a/b/projects/config/tsconfig.json' (Configured) + Files (3) + +----------------------------------------------- +Open files: + FileName: /a/b/projects/config/file.ts ProjectRootPath: undefined + Projects: /a/b/projects/config/tsconfig.json +response:{"responseRequired":false} +request:{"command":"open","arguments":{"file":"/a/b/projects/files/file1.ts"},"seq":2,"type":"request"} +FileWatcher:: Close:: WatchInfo: /a/b/projects/files/file1.ts 500 undefined WatchType: Closed Script info +Search path: /a/b/projects/files +For info: /a/b/projects/files/file1.ts :: No config files found. +Project '/a/b/projects/config/tsconfig.json' (Configured) + Files (3) + +----------------------------------------------- +Open files: + FileName: /a/b/projects/config/file.ts ProjectRootPath: undefined + Projects: /a/b/projects/config/tsconfig.json + FileName: /a/b/projects/files/file1.ts ProjectRootPath: undefined + Projects: /a/b/projects/config/tsconfig.json +response:{"responseRequired":false} +request:{"command":"close","arguments":{"file":"/a/b/projects/config/file.ts"},"seq":3,"type":"request"} +FileWatcher:: Added:: WatchInfo: /a/b/projects/config/file.ts 500 undefined WatchType: Closed Script info +Project '/a/b/projects/config/tsconfig.json' (Configured) + Files (3) + +----------------------------------------------- +Open files: + FileName: /a/b/projects/files/file1.ts ProjectRootPath: undefined + Projects: /a/b/projects/config/tsconfig.json +response:{"responseRequired":false} +request:{"command":"open","arguments":{"file":"/a/b/projects/files/file2.ts"},"seq":4,"type":"request"} +Search path: /a/b/projects/files +For info: /a/b/projects/files/file2.ts :: No config files found. +Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded +FileWatcher:: Added:: WatchInfo: /a/b/projects/files/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root +FileWatcher:: Added:: WatchInfo: /a/b/projects/files/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root +Starting updateGraphWorker: Project: /dev/null/inferredProject1* +DirectoryWatcher:: Added:: WatchInfo: /a/b/projects/files/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /a/b/projects/files/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots +Finishing updateGraphWorker: Project: /dev/null/inferredProject1* Version: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Project '/dev/null/inferredProject1*' (Inferred) + Files (2) + /a/lib/lib.d.ts + /a/b/projects/files/file2.ts + + + ../../../lib/lib.d.ts + Default library for target 'es5' + file2.ts + Root file specified for compilation + +----------------------------------------------- +`remove Project:: +Project '/a/b/projects/config/tsconfig.json' (Configured) + Files (3) + /a/lib/lib.d.ts + /a/b/projects/files/file1.ts + /a/b/projects/config/file.ts + + + ../../../lib/lib.d.ts + Default library for target 'es3' + ../files/file1.ts + Imported via "../files/file1" from file 'file.ts' + file.ts + Matched by default include pattern '**/*' + +----------------------------------------------- +DirectoryWatcher:: Close:: WatchInfo: /a/b/projects/config 1 undefined Config: /a/b/projects/config/tsconfig.json WatchType: Wild card directory +Elapsed:: *ms DirectoryWatcher:: Close:: WatchInfo: /a/b/projects/config 1 undefined Config: /a/b/projects/config/tsconfig.json WatchType: Wild card directory +FileWatcher:: Close:: WatchInfo: /a/b/projects/config/tsconfig.json 2000 undefined Project: /a/b/projects/config/tsconfig.json WatchType: Config file +DirectoryWatcher:: Close:: WatchInfo: /a/b/projects/config/node_modules/@types 1 undefined Project: /a/b/projects/config/tsconfig.json WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Close:: WatchInfo: /a/b/projects/config/node_modules/@types 1 undefined Project: /a/b/projects/config/tsconfig.json WatchType: Type roots +FileWatcher:: Close:: WatchInfo: /a/b/projects/config/file.ts 500 undefined WatchType: Closed Script info +Project '/dev/null/inferredProject1*' (Inferred) + Files (2) + +----------------------------------------------- +Open files: + FileName: /a/b/projects/files/file1.ts ProjectRootPath: undefined + Projects: + FileName: /a/b/projects/files/file2.ts ProjectRootPath: undefined + Projects: /dev/null/inferredProject1* +response:{"responseRequired":false} +request:{"command":"occurrences","arguments":{"file":"/a/b/projects/files/file1.ts","line":1,"offset":11},"seq":5,"type":"request"} +Before ensureProjectForOpenFiles: +Project '/dev/null/inferredProject1*' (Inferred) + Files (2) + +----------------------------------------------- +Open files: + FileName: /a/b/projects/files/file1.ts ProjectRootPath: undefined + Projects: + FileName: /a/b/projects/files/file2.ts ProjectRootPath: undefined + Projects: /dev/null/inferredProject1* +Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded +Starting updateGraphWorker: Project: /dev/null/inferredProject2* +DirectoryWatcher:: Added:: WatchInfo: /a/b/projects/files/node_modules/@types 1 undefined Project: /dev/null/inferredProject2* WatchType: Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /a/b/projects/files/node_modules/@types 1 undefined Project: /dev/null/inferredProject2* WatchType: Type roots +Finishing updateGraphWorker: Project: /dev/null/inferredProject2* Version: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Project '/dev/null/inferredProject2*' (Inferred) + Files (2) + /a/lib/lib.d.ts + /a/b/projects/files/file1.ts + + + ../../../lib/lib.d.ts + Default library for target 'es5' + file1.ts + Root file specified for compilation + +----------------------------------------------- +After ensureProjectForOpenFiles: +Project '/dev/null/inferredProject1*' (Inferred) + Files (2) + +----------------------------------------------- +Project '/dev/null/inferredProject2*' (Inferred) + Files (2) + +----------------------------------------------- +Open files: + FileName: /a/b/projects/files/file1.ts ProjectRootPath: undefined + Projects: /dev/null/inferredProject2* + FileName: /a/b/projects/files/file2.ts ProjectRootPath: undefined + Projects: /dev/null/inferredProject1* +response:{"response":[],"responseRequired":true} \ No newline at end of file