From 941d1543c201e40d87e63c9db04818493afdd9e7 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Thu, 25 Jul 2024 15:46:05 -0700 Subject: [PATCH] Use open file to determine file existence (#59418) --- src/compiler/watchUtilities.ts | 14 +- src/server/editorServices.ts | 215 +++-- src/server/project.ts | 3 +- .../tsserver/getEditsForFileRename.ts | 98 ++ tests/baselines/reference/api/typescript.d.ts | 2 + .../works-using-legacy-resolution-logic.js | 8 - ...er-old-one-without-file-being-in-config.js | 2 + ...invoked,-ask-errors-on-it-after-old-one.js | 37 +- ...re-old-one-without-file-being-in-config.js | 2 + ...nvoked,-ask-errors-on-it-before-old-one.js | 37 +- ...er-old-one-without-file-being-in-config.js | 2 + ...invoked,-ask-errors-on-it-after-old-one.js | 58 +- ...re-old-one-without-file-being-in-config.js | 2 + ...nvoked,-ask-errors-on-it-before-old-one.js | 58 +- ...re-jsconfig-creation-watcher-is-invoked.js | 2 + ...e-existance-on-the-disk-with-updateOpen.js | 745 +++++++++++++++ ...after-seeing-file-existance-on-the-disk.js | 866 +++++++++++++++++ ...sk-closed-before-change-with-updateOpen.js | 740 +++++++++++++++ ...stance-on-the-disk-closed-before-change.js | 868 ++++++++++++++++++ ...e-existance-on-the-disk-with-updateOpen.js | 738 +++++++++++++++ ...efore-seeing-file-existance-on-the-disk.js | 866 +++++++++++++++++ ...-project-created-while-opening-the-file.js | 4 + ...ject-even-if-project-refresh-is-pending.js | 9 + .../projectErrors/file-rename-on-wsl2.js | 260 +----- ...directory-watch-invoke-on-file-creation.js | 89 +- .../loading-files-with-correct-priority.js | 2 + 26 files changed, 5288 insertions(+), 439 deletions(-) create mode 100644 tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-after-seeing-file-existance-on-the-disk-with-updateOpen.js create mode 100644 tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-after-seeing-file-existance-on-the-disk.js create mode 100644 tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-before-seeing-file-existance-on-the-disk-closed-before-change-with-updateOpen.js create mode 100644 tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-before-seeing-file-existance-on-the-disk-closed-before-change.js create mode 100644 tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-before-seeing-file-existance-on-the-disk-with-updateOpen.js create mode 100644 tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-before-seeing-file-existance-on-the-disk.js diff --git a/src/compiler/watchUtilities.ts b/src/compiler/watchUtilities.ts index 433c34ad96d..793a5b51ee3 100644 --- a/src/compiler/watchUtilities.ts +++ b/src/compiler/watchUtilities.ts @@ -486,8 +486,8 @@ export function updateMissingFilePathsWatch( } /** @internal */ -export interface WildcardDirectoryWatcher { - watcher: FileWatcher; +export interface WildcardDirectoryWatcher { + watcher: T; flags: WatchDirectoryFlags; } @@ -499,10 +499,10 @@ export interface WildcardDirectoryWatcher { * * @internal */ -export function updateWatchingWildcardDirectories( - existingWatchedForWildcards: Map, +export function updateWatchingWildcardDirectories( + existingWatchedForWildcards: Map>, wildcardDirectories: MapLike | undefined, - watchDirectory: (directory: string, flags: WatchDirectoryFlags) => FileWatcher, + watchDirectory: (directory: string, flags: WatchDirectoryFlags) => T, ) { if (wildcardDirectories) { mutateMap( @@ -522,7 +522,7 @@ export function updateWatchingWildcardDirectories( clearMap(existingWatchedForWildcards, closeFileWatcherOf); } - function createWildcardDirectoryWatcher(directory: string, flags: WatchDirectoryFlags): WildcardDirectoryWatcher { + function createWildcardDirectoryWatcher(directory: string, flags: WatchDirectoryFlags): WildcardDirectoryWatcher { // Create new watch and recursive info return { watcher: watchDirectory(directory, flags), @@ -530,7 +530,7 @@ export function updateWatchingWildcardDirectories( }; } - function updateWildcardDirectoryWatcher(existingWatcher: WildcardDirectoryWatcher, flags: WatchDirectoryFlags, directory: string) { + function updateWildcardDirectoryWatcher(existingWatcher: WildcardDirectoryWatcher, flags: WatchDirectoryFlags, directory: string) { // Watcher needs to be updated if the recursive flags dont match if (existingWatcher.flags === flags) { return; diff --git a/src/server/editorServices.ts b/src/server/editorServices.ts index c3d16e0da5b..14427e48b45 100644 --- a/src/server/editorServices.ts +++ b/src/server/editorServices.ts @@ -33,6 +33,8 @@ import { emptyOptions, endsWith, ensureTrailingDirectorySeparator, + equateStringsCaseInsensitive, + equateStringsCaseSensitive, ExtendedConfigCacheEntry, FileExtensionInfo, fileExtensionIs, @@ -1060,7 +1062,7 @@ export interface ParsedConfig { */ projects: Map; parsedCommandLine?: ParsedCommandLine; - watchedDirectories?: Map; + watchedDirectories?: Map>; /** * true if watchedDirectories need to be updated as per parsedCommandLine's updated watched directories */ @@ -1852,80 +1854,22 @@ export class ProjectService { /** * This is to watch whenever files are added or removed to the wildcard directories */ - private watchWildcardDirectory(directory: string, flags: WatchDirectoryFlags, configFileName: NormalizedPath, config: ParsedConfig) { + private watchWildcardDirectory( + directory: string, + flags: WatchDirectoryFlags, + configFileName: NormalizedPath, + config: ParsedConfig, + ) { let watcher: FileWatcher | undefined = this.watchFactory.watchDirectory( directory, - fileOrDirectory => { - const fileOrDirectoryPath = this.toPath(fileOrDirectory); - const fsResult = config.cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath); - if ( - getBaseFileName(fileOrDirectoryPath) === "package.json" && !isInsideNodeModules(fileOrDirectoryPath) && - (fsResult && fsResult.fileExists || !fsResult && this.host.fileExists(fileOrDirectory)) - ) { - const file = this.getNormalizedAbsolutePath(fileOrDirectory); - this.logger.info(`Config: ${configFileName} Detected new package.json: ${file}`); - this.packageJsonCache.addOrUpdate(file, fileOrDirectoryPath); - this.watchPackageJsonFile(file, fileOrDirectoryPath, result); - } - - const configuredProjectForConfig = this.findConfiguredProjectByProjectName(configFileName); - if ( - isIgnoredFileFromWildCardWatching({ - watchedDirPath: this.toPath(directory), - fileOrDirectory, - fileOrDirectoryPath, - configFileName, - extraFileExtensions: this.hostConfiguration.extraFileExtensions, - currentDirectory: this.currentDirectory, - options: config.parsedCommandLine!.options, - program: configuredProjectForConfig?.getCurrentProgram() || config.parsedCommandLine!.fileNames, - useCaseSensitiveFileNames: this.host.useCaseSensitiveFileNames, - writeLog: s => this.logger.info(s), - toPath: s => this.toPath(s), - getScriptKind: configuredProjectForConfig ? (fileName => configuredProjectForConfig.getScriptKind(fileName)) : undefined, - }) - ) return; - - // Reload is pending, do the reload - if (config.updateLevel !== ProgramUpdateLevel.Full) config.updateLevel = ProgramUpdateLevel.RootNamesAndUpdate; - config.projects.forEach((watchWildcardDirectories, projectCanonicalPath) => { - if (!watchWildcardDirectories) return; - const project = this.getConfiguredProjectByCanonicalConfigFilePath(projectCanonicalPath); - if (!project) return; - - if ( - configuredProjectForConfig !== project && - this.getHostPreferences().includeCompletionsForModuleExports - ) { - const path = this.toPath(configFileName); - if (find(project.getCurrentProgram()?.getResolvedProjectReferences(), ref => ref?.sourceFile.path === path)) { - project.markAutoImportProviderAsDirty(); - } - } - - // Load root file names for configured project with the config file name - // But only schedule update if project references this config file - const updateLevel = configuredProjectForConfig === project ? ProgramUpdateLevel.RootNamesAndUpdate : ProgramUpdateLevel.Update; - if (project.pendingUpdateLevel > updateLevel) return; - - // don't trigger callback on open, existing files - if (this.openFiles.has(fileOrDirectoryPath)) { - const info = Debug.checkDefined(this.getScriptInfoForPath(fileOrDirectoryPath)); - if (info.isAttached(project)) { - const loadLevelToSet = Math.max(updateLevel, project.openFileWatchTriggered.get(fileOrDirectoryPath) || ProgramUpdateLevel.Update) as ProgramUpdateLevel; - project.openFileWatchTriggered.set(fileOrDirectoryPath, loadLevelToSet); - } - else { - project.pendingUpdateLevel = updateLevel; - this.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(project); - } - } - else { - project.pendingUpdateLevel = updateLevel; - this.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(project); - } - }); - }, + fileOrDirectory => + this.onWildCardDirectoryWatcherInvoke( + directory, + configFileName, + config, + result, + fileOrDirectory, + ), flags, this.getWatchOptionsFromProjectWatchOptions(config.parsedCommandLine!.watchOptions, getDirectoryPath(configFileName)), WatchType.WildcardDirectory, @@ -1949,6 +1893,84 @@ export class ProjectService { return result; } + private onWildCardDirectoryWatcherInvoke( + directory: string, + configFileName: NormalizedPath, + config: ParsedConfig, + wildCardWatcher: WildcardWatcher, + fileOrDirectory: string, + ) { + const fileOrDirectoryPath = this.toPath(fileOrDirectory); + const fsResult = config.cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath); + if ( + getBaseFileName(fileOrDirectoryPath) === "package.json" && !isInsideNodeModules(fileOrDirectoryPath) && + (fsResult && fsResult.fileExists || !fsResult && this.host.fileExists(fileOrDirectory)) + ) { + const file = this.getNormalizedAbsolutePath(fileOrDirectory); + this.logger.info(`Config: ${configFileName} Detected new package.json: ${file}`); + this.packageJsonCache.addOrUpdate(file, fileOrDirectoryPath); + this.watchPackageJsonFile(file, fileOrDirectoryPath, wildCardWatcher); + } + + const configuredProjectForConfig = this.findConfiguredProjectByProjectName(configFileName); + if ( + isIgnoredFileFromWildCardWatching({ + watchedDirPath: this.toPath(directory), + fileOrDirectory, + fileOrDirectoryPath, + configFileName, + extraFileExtensions: this.hostConfiguration.extraFileExtensions, + currentDirectory: this.currentDirectory, + options: config.parsedCommandLine!.options, + program: configuredProjectForConfig?.getCurrentProgram() || config.parsedCommandLine!.fileNames, + useCaseSensitiveFileNames: this.host.useCaseSensitiveFileNames, + writeLog: s => this.logger.info(s), + toPath: s => this.toPath(s), + getScriptKind: configuredProjectForConfig ? (fileName => configuredProjectForConfig.getScriptKind(fileName)) : undefined, + }) + ) return; + + // Reload is pending, do the reload + if (config.updateLevel !== ProgramUpdateLevel.Full) config.updateLevel = ProgramUpdateLevel.RootNamesAndUpdate; + config.projects.forEach((watchWildcardDirectories, projectCanonicalPath) => { + if (!watchWildcardDirectories) return; + const project = this.getConfiguredProjectByCanonicalConfigFilePath(projectCanonicalPath); + if (!project) return; + + if ( + configuredProjectForConfig !== project && + this.getHostPreferences().includeCompletionsForModuleExports + ) { + const path = this.toPath(configFileName); + if (find(project.getCurrentProgram()?.getResolvedProjectReferences(), ref => ref?.sourceFile.path === path)) { + project.markAutoImportProviderAsDirty(); + } + } + + // Load root file names for configured project with the config file name + // But only schedule update if project references this config file + const updateLevel = configuredProjectForConfig === project ? ProgramUpdateLevel.RootNamesAndUpdate : ProgramUpdateLevel.Update; + if (project.pendingUpdateLevel > updateLevel) return; + + // don't trigger callback on open, existing files + if (this.openFiles.has(fileOrDirectoryPath)) { + const info = Debug.checkDefined(this.getScriptInfoForPath(fileOrDirectoryPath)); + if (info.isAttached(project)) { + const loadLevelToSet = Math.max(updateLevel, project.openFileWatchTriggered.get(fileOrDirectoryPath) || ProgramUpdateLevel.Update) as ProgramUpdateLevel; + project.openFileWatchTriggered.set(fileOrDirectoryPath, loadLevelToSet); + } + else { + project.pendingUpdateLevel = updateLevel; + this.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(project); + } + } + else { + project.pendingUpdateLevel = updateLevel; + this.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(project); + } + }); + } + private delayUpdateProjectsFromParsedConfigOnConfigFileChange(canonicalConfigFilePath: NormalizedPath, loadReason: string) { const configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath); if (!configFileExistenceInfo?.config) return false; @@ -4434,8 +4456,42 @@ export class ProjectService { this.removeOrphanScriptInfos(); } + private tryInvokeWildCardDirectories(info: ScriptInfo) { + // This might not have reflected in projects, + this.configFileExistenceInfoCache.forEach((configFileExistenceInfo, config) => { + if ( + !configFileExistenceInfo.config?.parsedCommandLine || + contains( + configFileExistenceInfo.config.parsedCommandLine.fileNames, + info.fileName, + !this.host.useCaseSensitiveFileNames ? equateStringsCaseInsensitive : equateStringsCaseSensitive, + ) + ) { + return; + } + configFileExistenceInfo.config.watchedDirectories?.forEach((watcher, directory) => { + if (containsPath(directory, info.fileName, !this.host.useCaseSensitiveFileNames)) { + this.logger.info(`Invoking ${config}:: wildcard for open scriptInfo:: ${info.fileName}`); + this.onWildCardDirectoryWatcherInvoke( + directory, + config, + configFileExistenceInfo.config!, + watcher.watcher, + info.fileName, + ); + } + }); + }); + } + openClientFileWithNormalizedPath(fileName: NormalizedPath, fileContent?: string, scriptKind?: ScriptKind, hasMixedContent?: boolean, projectRootPath?: NormalizedPath): OpenConfiguredProjectResult { + const existing = this.getScriptInfoForPath(normalizedPathToPath( + fileName, + projectRootPath ? this.getNormalizedAbsolutePath(projectRootPath) : this.currentDirectory, + this.toCanonicalFileName, + )); const info = this.getOrCreateOpenScriptInfo(fileName, fileContent, scriptKind, hasMixedContent, projectRootPath); + if (!existing && info && !info.isDynamic) this.tryInvokeWildCardDirectories(info); const { retainProjects, ...result } = this.assignProjectToOpenedScriptInfo(info); this.cleanupProjectsAndScriptInfos( retainProjects, @@ -4636,10 +4692,16 @@ export class ProjectService { /** @internal */ applyChangesInOpenFiles(openFiles: Iterable | undefined, changedFiles?: Iterable, closedFiles?: string[]): void { + let existingOpenScriptInfos: (ScriptInfo | undefined)[] | undefined; let openScriptInfos: ScriptInfo[] | undefined; let assignOrphanScriptInfosToInferredProject = false; if (openFiles) { for (const file of openFiles) { + (existingOpenScriptInfos ??= []).push(this.getScriptInfoForPath(normalizedPathToPath( + toNormalizedPath(file.fileName), + file.projectRootPath ? this.getNormalizedAbsolutePath(file.projectRootPath) : this.currentDirectory, + this.toCanonicalFileName, + ))); // Create script infos so we have the new content for all the open files before we do any updates to projects const info = this.getOrCreateOpenScriptInfo( toNormalizedPath(file.fileName), @@ -4670,6 +4732,13 @@ export class ProjectService { // All the script infos now exist, so ok to go update projects for open files let retainProjects: Set | undefined; + forEach( + existingOpenScriptInfos, + (existing, index) => + !existing && openScriptInfos![index] && !openScriptInfos![index].isDynamic ? + this.tryInvokeWildCardDirectories(openScriptInfos![index]) : + undefined, + ); openScriptInfos?.forEach(info => this.assignProjectToOpenedScriptInfo(info).retainProjects?.forEach(p => (retainProjects ??= new Set()).add(p))); // While closing files there could be open files that needed assigning new inferred projects, do it now diff --git a/src/server/project.ts b/src/server/project.ts index 8cf623a844f..f6408125d9d 100644 --- a/src/server/project.ts +++ b/src/server/project.ts @@ -775,7 +775,8 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo // As an optimization, don't hit the disks for files we already know don't exist // (because we're watching for their creation). const path = this.toPath(file); - return !this.isWatchedMissingFile(path) && this.directoryStructureHost.fileExists(file); + return !!this.projectService.getScriptInfoForPath(path) || + (!this.isWatchedMissingFile(path) && this.directoryStructureHost.fileExists(file)); } /** @internal */ diff --git a/src/testRunner/unittests/tsserver/getEditsForFileRename.ts b/src/testRunner/unittests/tsserver/getEditsForFileRename.ts index e755bff4c3b..e3ecbfd203a 100644 --- a/src/testRunner/unittests/tsserver/getEditsForFileRename.ts +++ b/src/testRunner/unittests/tsserver/getEditsForFileRename.ts @@ -2,13 +2,16 @@ import * as ts from "../../_namespaces/ts.js"; import { jsonToReadableText } from "../helpers.js"; import { baselineTsserverLogs, + closeFilesForSession, openFilesForSession, TestSession, textSpanFromSubstring, + verifyGetErrRequest, } from "../helpers/tsserver.js"; import { createServerHost, File, + libFile, } from "../helpers/virtualFileSystemWithWatch.js"; describe("unittests:: tsserver:: getEditsForFileRename", () => { @@ -109,4 +112,99 @@ describe("unittests:: tsserver:: getEditsForFileRename", () => { }); baselineTsserverLogs("getEditsForFileRename", "works with file moved to inferred project", session); }); + + [false, true].forEach(withUpdateOpen => + [true, false].forEach(openedBeforeChange => { + [true, false].forEach(closedBeforeChange => { + if (closedBeforeChange && !openedBeforeChange) return; + it(`works with when file is opened ${openedBeforeChange ? "before" : "after"} seeing file existance on the disk${closedBeforeChange ? " closed before change" : ""}${withUpdateOpen ? " with updateOpen" : ""}`, () => { + const oldFilePath = "/home/src/myproject/src/old.ts"; + const host = createServerHost({ + "/home/src/myproject/src/index.ts": `import {} from '@/old';`, + [oldFilePath]: `export const x = 10;`, + "/home/src/myproject/tsconfig.json": jsonToReadableText({ + compilerOptions: { + paths: { + "@/*": ["./src/*"], + }, + }, + }), + [libFile.path]: libFile.content, + }); + const session = new TestSession({ host, canUseWatchEvents: true, canUseEvents: true }); + if (withUpdateOpen) { + session.executeCommandSeq({ + command: ts.server.protocol.CommandTypes.UpdateOpen, + arguments: { + openFiles: [ + { + file: "/home/src/myproject/src/index.ts", + projectRootPath: "/home/src/myproject", + }, + { + file: oldFilePath, + projectRootPath: "/home/src/myproject", + }, + ], + }, + }); + } + else { + openFilesForSession([ + { file: "/home/src/myproject/src/index.ts", projectRootPath: "/home/src/myproject" }, + { file: oldFilePath, projectRootPath: "/home/src/myproject" }, + ], session); + } + const newFilePath = "/home/src/myproject/src/new.ts"; + host.renameFile(oldFilePath, newFilePath); + if (!openedBeforeChange) session.invokeWatchChanges(); + if (withUpdateOpen) { + session.executeCommandSeq({ + command: ts.server.protocol.CommandTypes.UpdateOpen, + arguments: { + openFiles: [{ + file: newFilePath, + fileContent: `export const x = 10;`, + projectRootPath: "/home/src/myproject", + }], + closedFiles: [oldFilePath], + }, + }); + } + else { + closeFilesForSession([oldFilePath], session); + openFilesForSession([{ file: newFilePath, projectRootPath: "/home/src/myproject", content: `export const x = 10;` }], session); + } + session.executeCommandSeq({ + command: ts.server.protocol.CommandTypes.GetEditsForFileRename, + arguments: { oldFilePath, newFilePath }, + }); + if (closedBeforeChange) { + if (withUpdateOpen) { + session.executeCommandSeq({ + command: ts.server.protocol.CommandTypes.UpdateOpen, + arguments: { closedFiles: [newFilePath] }, + }); + } + else closeFilesForSession([newFilePath], session); + } + if (openedBeforeChange) session.invokeWatchChanges(); + if (!closedBeforeChange) { + if (withUpdateOpen) { + session.executeCommandSeq({ + command: ts.server.protocol.CommandTypes.UpdateOpen, + arguments: { closedFiles: [newFilePath] }, + }); + } + else closeFilesForSession([newFilePath], session); + } + verifyGetErrRequest({ + session, + files: ["/home/src/myproject/src/index.ts"], + }); + baselineTsserverLogs("getEditsForFileRename", `works with when file is opened ${openedBeforeChange ? "before" : "after"} seeing file existance on the disk${closedBeforeChange ? " closed before change" : ""}${withUpdateOpen ? " with updateOpen" : ""}`, session); + }); + }); + }) + ); }); diff --git a/tests/baselines/reference/api/typescript.d.ts b/tests/baselines/reference/api/typescript.d.ts index 7070d1cdea4..8275e422282 100644 --- a/tests/baselines/reference/api/typescript.d.ts +++ b/tests/baselines/reference/api/typescript.d.ts @@ -3268,6 +3268,7 @@ declare namespace ts { private delayUpdateProjectsOfScriptInfoPath; private handleDeletedFile; private watchWildcardDirectory; + private onWildCardDirectoryWatcherInvoke; private delayUpdateProjectsFromParsedConfigOnConfigFileChange; private onConfigFileChanged; private removeProject; @@ -3338,6 +3339,7 @@ declare namespace ts { private ensureProjectChildren; private cleanupConfiguredProjects; private cleanupProjectsAndScriptInfos; + private tryInvokeWildCardDirectories; openClientFileWithNormalizedPath(fileName: NormalizedPath, fileContent?: string, scriptKind?: ScriptKind, hasMixedContent?: boolean, projectRootPath?: NormalizedPath): OpenConfiguredProjectResult; private removeOrphanScriptInfos; private telemetryOnOpenFile; diff --git a/tests/baselines/reference/tsserver/cachingFileSystemInformation/works-using-legacy-resolution-logic.js b/tests/baselines/reference/tsserver/cachingFileSystemInformation/works-using-legacy-resolution-logic.js index f1dd43ce6e4..254681311a3 100644 --- a/tests/baselines/reference/tsserver/cachingFileSystemInformation/works-using-legacy-resolution-logic.js +++ b/tests/baselines/reference/tsserver/cachingFileSystemInformation/works-using-legacy-resolution-logic.js @@ -256,10 +256,6 @@ Info seq [hh:mm:ss:mss] fileExists:: [ { "key": "/c/d/f1.d.ts", "count": 1 - }, - { - "key": "/c/f1.ts", - "count": 1 } ] Info seq [hh:mm:ss:mss] directoryExists:: [ @@ -359,10 +355,6 @@ Info seq [hh:mm:ss:mss] fileExists:: [ { "key": "/c/d/f1.d.ts", "count": 1 - }, - { - "key": "/c/f1.ts", - "count": 1 } ] Info seq [hh:mm:ss:mss] directoryExists:: [ diff --git a/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-after-watcher-is-invoked,-ask-errors-on-it-after-old-one-without-file-being-in-config.js b/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-after-watcher-is-invoked,-ask-errors-on-it-after-old-one-without-file-being-in-config.js index 8af34cb8301..88eecfb40ee 100644 --- a/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-after-watcher-is-invoked,-ask-errors-on-it-after-old-one-without-file-being-in-config.js +++ b/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-after-watcher-is-invoked,-ask-errors-on-it-after-old-one-without-file-being-in-config.js @@ -226,6 +226,8 @@ Info seq [hh:mm:ss:mss] request: "seq": 2, "type": "request" } +Info seq [hh:mm:ss:mss] Invoking /user/username/projects/myproject/tsconfig.json:: wildcard for open scriptInfo:: /user/username/projects/myproject/src/sub/fooBar.ts +Info seq [hh:mm:ss:mss] Project: /user/username/projects/myproject/tsconfig.json Detected excluded file: /user/username/projects/myproject/src/sub/fooBar.ts Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/src/sub/fooBar.ts ProjectRootPath: /user/username/projects/myproject:: Result: /user/username/projects/myproject/tsconfig.json Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/tsconfig.json ProjectRootPath: /user/username/projects/myproject:: Result: undefined Info seq [hh:mm:ss:mss] event: diff --git a/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-after-watcher-is-invoked,-ask-errors-on-it-after-old-one.js b/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-after-watcher-is-invoked,-ask-errors-on-it-after-old-one.js index 4a38cc9ae2c..0411053ee8f 100644 --- a/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-after-watcher-is-invoked,-ask-errors-on-it-after-old-one.js +++ b/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-after-watcher-is-invoked,-ask-errors-on-it-after-old-one.js @@ -234,6 +234,9 @@ Info seq [hh:mm:ss:mss] request: "seq": 2, "type": "request" } +Info seq [hh:mm:ss:mss] Invoking /user/username/projects/myproject/tsconfig.json:: wildcard for open scriptInfo:: /user/username/projects/myproject/src/sub/fooBar.ts +Info seq [hh:mm:ss:mss] Scheduled: /user/username/projects/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/src/sub/fooBar.ts ProjectRootPath: /user/username/projects/myproject:: Result: /user/username/projects/myproject/tsconfig.json Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /user/username/projects/myproject/tsconfig.json Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /user/username/projects/myproject/tsconfig.json projectStateVersion: 2 projectProgramVersion: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms @@ -277,6 +280,12 @@ Info seq [hh:mm:ss:mss] response: } After request +Timeout callback:: count: 2 +1: /user/username/projects/myproject/tsconfig.json *deleted* +2: *ensureProjectForOpenFiles* *deleted* +3: /user/username/projects/myproject/tsconfig.json *new* +4: *ensureProjectForOpenFiles* *new* + Projects:: /user/username/projects/myproject/tsconfig.json (Configured) *changed* projectStateVersion: 2 @@ -319,16 +328,16 @@ Info seq [hh:mm:ss:mss] request: After request Timeout callback:: count: 3 -1: /user/username/projects/myproject/tsconfig.json -2: *ensureProjectForOpenFiles* -3: checkOne *new* +3: /user/username/projects/myproject/tsconfig.json +4: *ensureProjectForOpenFiles* +5: checkOne *new* Before running Timeout callback:: count: 3 -1: /user/username/projects/myproject/tsconfig.json -2: *ensureProjectForOpenFiles* -3: checkOne +3: /user/username/projects/myproject/tsconfig.json +4: *ensureProjectForOpenFiles* +5: checkOne -Invoking Timeout callback:: timeoutId:: 3:: checkOne +Invoking Timeout callback:: timeoutId:: 5:: checkOne Info seq [hh:mm:ss:mss] event: { "seq": 0, @@ -378,16 +387,16 @@ Info seq [hh:mm:ss:mss] event: After running Immedidate callback:: count: 0 Timeout callback:: count: 3 -1: /user/username/projects/myproject/tsconfig.json -2: *ensureProjectForOpenFiles* -4: checkOne *new* +3: /user/username/projects/myproject/tsconfig.json +4: *ensureProjectForOpenFiles* +6: checkOne *new* Before running Timeout callback:: count: 3 -1: /user/username/projects/myproject/tsconfig.json -2: *ensureProjectForOpenFiles* -4: checkOne +3: /user/username/projects/myproject/tsconfig.json +4: *ensureProjectForOpenFiles* +6: checkOne -Invoking Timeout callback:: timeoutId:: 4:: checkOne +Invoking Timeout callback:: timeoutId:: 6:: checkOne Info seq [hh:mm:ss:mss] event: { "seq": 0, diff --git a/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-after-watcher-is-invoked,-ask-errors-on-it-before-old-one-without-file-being-in-config.js b/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-after-watcher-is-invoked,-ask-errors-on-it-before-old-one-without-file-being-in-config.js index 7646fd9a9da..1cee7b45306 100644 --- a/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-after-watcher-is-invoked,-ask-errors-on-it-before-old-one-without-file-being-in-config.js +++ b/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-after-watcher-is-invoked,-ask-errors-on-it-before-old-one-without-file-being-in-config.js @@ -226,6 +226,8 @@ Info seq [hh:mm:ss:mss] request: "seq": 2, "type": "request" } +Info seq [hh:mm:ss:mss] Invoking /user/username/projects/myproject/tsconfig.json:: wildcard for open scriptInfo:: /user/username/projects/myproject/src/sub/fooBar.ts +Info seq [hh:mm:ss:mss] Project: /user/username/projects/myproject/tsconfig.json Detected excluded file: /user/username/projects/myproject/src/sub/fooBar.ts Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/src/sub/fooBar.ts ProjectRootPath: /user/username/projects/myproject:: Result: /user/username/projects/myproject/tsconfig.json Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/tsconfig.json ProjectRootPath: /user/username/projects/myproject:: Result: undefined Info seq [hh:mm:ss:mss] event: diff --git a/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-after-watcher-is-invoked,-ask-errors-on-it-before-old-one.js b/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-after-watcher-is-invoked,-ask-errors-on-it-before-old-one.js index d7e068a3c54..501cfd003cc 100644 --- a/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-after-watcher-is-invoked,-ask-errors-on-it-before-old-one.js +++ b/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-after-watcher-is-invoked,-ask-errors-on-it-before-old-one.js @@ -234,6 +234,9 @@ Info seq [hh:mm:ss:mss] request: "seq": 2, "type": "request" } +Info seq [hh:mm:ss:mss] Invoking /user/username/projects/myproject/tsconfig.json:: wildcard for open scriptInfo:: /user/username/projects/myproject/src/sub/fooBar.ts +Info seq [hh:mm:ss:mss] Scheduled: /user/username/projects/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/src/sub/fooBar.ts ProjectRootPath: /user/username/projects/myproject:: Result: /user/username/projects/myproject/tsconfig.json Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /user/username/projects/myproject/tsconfig.json Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /user/username/projects/myproject/tsconfig.json projectStateVersion: 2 projectProgramVersion: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms @@ -277,6 +280,12 @@ Info seq [hh:mm:ss:mss] response: } After request +Timeout callback:: count: 2 +1: /user/username/projects/myproject/tsconfig.json *deleted* +2: *ensureProjectForOpenFiles* *deleted* +3: /user/username/projects/myproject/tsconfig.json *new* +4: *ensureProjectForOpenFiles* *new* + Projects:: /user/username/projects/myproject/tsconfig.json (Configured) *changed* projectStateVersion: 2 @@ -319,16 +328,16 @@ Info seq [hh:mm:ss:mss] request: After request Timeout callback:: count: 3 -1: /user/username/projects/myproject/tsconfig.json -2: *ensureProjectForOpenFiles* -3: checkOne *new* +3: /user/username/projects/myproject/tsconfig.json +4: *ensureProjectForOpenFiles* +5: checkOne *new* Before running Timeout callback:: count: 3 -1: /user/username/projects/myproject/tsconfig.json -2: *ensureProjectForOpenFiles* -3: checkOne +3: /user/username/projects/myproject/tsconfig.json +4: *ensureProjectForOpenFiles* +5: checkOne -Invoking Timeout callback:: timeoutId:: 3:: checkOne +Invoking Timeout callback:: timeoutId:: 5:: checkOne Info seq [hh:mm:ss:mss] event: { "seq": 0, @@ -378,16 +387,16 @@ Info seq [hh:mm:ss:mss] event: After running Immedidate callback:: count: 0 Timeout callback:: count: 3 -1: /user/username/projects/myproject/tsconfig.json -2: *ensureProjectForOpenFiles* -4: checkOne *new* +3: /user/username/projects/myproject/tsconfig.json +4: *ensureProjectForOpenFiles* +6: checkOne *new* Before running Timeout callback:: count: 3 -1: /user/username/projects/myproject/tsconfig.json -2: *ensureProjectForOpenFiles* -4: checkOne +3: /user/username/projects/myproject/tsconfig.json +4: *ensureProjectForOpenFiles* +6: checkOne -Invoking Timeout callback:: timeoutId:: 4:: checkOne +Invoking Timeout callback:: timeoutId:: 6:: checkOne Info seq [hh:mm:ss:mss] event: { "seq": 0, diff --git a/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-before-watcher-is-invoked,-ask-errors-on-it-after-old-one-without-file-being-in-config.js b/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-before-watcher-is-invoked,-ask-errors-on-it-after-old-one-without-file-being-in-config.js index db331963e41..e6aa7b1d150 100644 --- a/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-before-watcher-is-invoked,-ask-errors-on-it-after-old-one-without-file-being-in-config.js +++ b/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-before-watcher-is-invoked,-ask-errors-on-it-after-old-one-without-file-being-in-config.js @@ -220,6 +220,8 @@ Info seq [hh:mm:ss:mss] request: "seq": 2, "type": "request" } +Info seq [hh:mm:ss:mss] Invoking /user/username/projects/myproject/tsconfig.json:: wildcard for open scriptInfo:: /user/username/projects/myproject/src/sub/fooBar.ts +Info seq [hh:mm:ss:mss] Project: /user/username/projects/myproject/tsconfig.json Detected excluded file: /user/username/projects/myproject/src/sub/fooBar.ts Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/src/sub/fooBar.ts ProjectRootPath: /user/username/projects/myproject:: Result: /user/username/projects/myproject/tsconfig.json Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/tsconfig.json ProjectRootPath: /user/username/projects/myproject:: Result: undefined Info seq [hh:mm:ss:mss] event: diff --git a/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-before-watcher-is-invoked,-ask-errors-on-it-after-old-one.js b/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-before-watcher-is-invoked,-ask-errors-on-it-after-old-one.js index a5e3529fddf..71189a22c6e 100644 --- a/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-before-watcher-is-invoked,-ask-errors-on-it-after-old-one.js +++ b/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-before-watcher-is-invoked,-ask-errors-on-it-after-old-one.js @@ -217,7 +217,13 @@ Info seq [hh:mm:ss:mss] request: "seq": 2, "type": "request" } +Info seq [hh:mm:ss:mss] Invoking /user/username/projects/myproject/tsconfig.json:: wildcard for open scriptInfo:: /user/username/projects/myproject/src/sub/fooBar.ts +Info seq [hh:mm:ss:mss] Scheduled: /user/username/projects/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles* Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/src/sub/fooBar.ts ProjectRootPath: /user/username/projects/myproject:: Result: /user/username/projects/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /user/username/projects/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /user/username/projects/myproject/tsconfig.json projectStateVersion: 2 projectProgramVersion: 1 structureChanged: false structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Same program as before Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/tsconfig.json ProjectRootPath: /user/username/projects/myproject:: Result: undefined Info seq [hh:mm:ss:mss] event: { @@ -315,12 +321,16 @@ FsWatchesRecursive:: /user/username/projects/myproject/src: {} +Timeout callback:: count: 2 +1: /user/username/projects/myproject/tsconfig.json *new* +2: *ensureProjectForOpenFiles* *new* + Projects:: /dev/null/inferredProject1* (Inferred) *new* projectStateVersion: 1 projectProgramVersion: 1 -/user/username/projects/myproject/tsconfig.json (Configured) - projectStateVersion: 1 +/user/username/projects/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 2 *changed* projectProgramVersion: 1 ScriptInfos:: @@ -343,8 +353,8 @@ ScriptInfos:: /dev/null/inferredProject1* *default* Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /user/username/projects/myproject/src/sub/fooBar.ts :: WatchInfo: /user/username/projects/myproject/src 1 undefined Config: /user/username/projects/myproject/tsconfig.json WatchType: Wild card directory -Info seq [hh:mm:ss:mss] Scheduled: /user/username/projects/myproject/tsconfig.json -Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles* +Info seq [hh:mm:ss:mss] Scheduled: /user/username/projects/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/src/sub/fooBar.ts :: WatchInfo: /user/username/projects/myproject/src 1 undefined Config: /user/username/projects/myproject/tsconfig.json WatchType: Wild card directory Before request //// [/user/username/projects/myproject/src/sub/fooBar.ts] @@ -352,15 +362,17 @@ export function fooBar() { } Timeout callback:: count: 2 -1: /user/username/projects/myproject/tsconfig.json *new* -2: *ensureProjectForOpenFiles* *new* +1: /user/username/projects/myproject/tsconfig.json *deleted* +2: *ensureProjectForOpenFiles* *deleted* +3: /user/username/projects/myproject/tsconfig.json *new* +4: *ensureProjectForOpenFiles* *new* Projects:: /dev/null/inferredProject1* (Inferred) projectStateVersion: 1 projectProgramVersion: 1 /user/username/projects/myproject/tsconfig.json (Configured) *changed* - projectStateVersion: 2 *changed* + projectStateVersion: 3 *changed* projectProgramVersion: 1 dirty: true *changed* @@ -380,23 +392,23 @@ Info seq [hh:mm:ss:mss] request: After request Timeout callback:: count: 3 -1: /user/username/projects/myproject/tsconfig.json -2: *ensureProjectForOpenFiles* -3: checkOne *new* +3: /user/username/projects/myproject/tsconfig.json +4: *ensureProjectForOpenFiles* +5: checkOne *new* Before running Timeout callback:: count: 3 -1: /user/username/projects/myproject/tsconfig.json -2: *ensureProjectForOpenFiles* -3: checkOne +3: /user/username/projects/myproject/tsconfig.json +4: *ensureProjectForOpenFiles* +5: checkOne -Invoking Timeout callback:: timeoutId:: 3:: checkOne +Invoking Timeout callback:: timeoutId:: 5:: checkOne Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /user/username/projects/myproject/src/sub/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /user/username/projects/myproject/src/sub/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /user/username/projects/myproject/src/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /user/username/projects/myproject/src/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /user/username/projects/myproject/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /user/username/projects/myproject/tsconfig.json -Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /user/username/projects/myproject/tsconfig.json projectStateVersion: 2 projectProgramVersion: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /user/username/projects/myproject/tsconfig.json projectStateVersion: 3 projectProgramVersion: 1 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 (4) /a/lib/lib.d.ts Text-1 "/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }" @@ -471,7 +483,7 @@ Projects:: dirty: true *changed* isOrphan: true *changed* /user/username/projects/myproject/tsconfig.json (Configured) *changed* - projectStateVersion: 2 + projectStateVersion: 3 projectProgramVersion: 2 *changed* dirty: false *changed* @@ -529,16 +541,16 @@ Info seq [hh:mm:ss:mss] event: After running Immedidate callback:: count: 0 Timeout callback:: count: 3 -1: /user/username/projects/myproject/tsconfig.json -2: *ensureProjectForOpenFiles* -4: checkOne *new* +3: /user/username/projects/myproject/tsconfig.json +4: *ensureProjectForOpenFiles* +6: checkOne *new* Before running Timeout callback:: count: 3 -1: /user/username/projects/myproject/tsconfig.json -2: *ensureProjectForOpenFiles* -4: checkOne +3: /user/username/projects/myproject/tsconfig.json +4: *ensureProjectForOpenFiles* +6: checkOne -Invoking Timeout callback:: timeoutId:: 4:: checkOne +Invoking Timeout callback:: timeoutId:: 6:: checkOne Info seq [hh:mm:ss:mss] event: { "seq": 0, diff --git a/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-before-watcher-is-invoked,-ask-errors-on-it-before-old-one-without-file-being-in-config.js b/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-before-watcher-is-invoked,-ask-errors-on-it-before-old-one-without-file-being-in-config.js index eceac628b46..145e40027e2 100644 --- a/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-before-watcher-is-invoked,-ask-errors-on-it-before-old-one-without-file-being-in-config.js +++ b/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-before-watcher-is-invoked,-ask-errors-on-it-before-old-one-without-file-being-in-config.js @@ -220,6 +220,8 @@ Info seq [hh:mm:ss:mss] request: "seq": 2, "type": "request" } +Info seq [hh:mm:ss:mss] Invoking /user/username/projects/myproject/tsconfig.json:: wildcard for open scriptInfo:: /user/username/projects/myproject/src/sub/fooBar.ts +Info seq [hh:mm:ss:mss] Project: /user/username/projects/myproject/tsconfig.json Detected excluded file: /user/username/projects/myproject/src/sub/fooBar.ts Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/src/sub/fooBar.ts ProjectRootPath: /user/username/projects/myproject:: Result: /user/username/projects/myproject/tsconfig.json Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/tsconfig.json ProjectRootPath: /user/username/projects/myproject:: Result: undefined Info seq [hh:mm:ss:mss] event: diff --git a/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-before-watcher-is-invoked,-ask-errors-on-it-before-old-one.js b/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-before-watcher-is-invoked,-ask-errors-on-it-before-old-one.js index de120b1b825..6c4b7571617 100644 --- a/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-before-watcher-is-invoked,-ask-errors-on-it-before-old-one.js +++ b/tests/baselines/reference/tsserver/configuredProjects/creating-new-file-and-then-open-it-before-watcher-is-invoked,-ask-errors-on-it-before-old-one.js @@ -217,7 +217,13 @@ Info seq [hh:mm:ss:mss] request: "seq": 2, "type": "request" } +Info seq [hh:mm:ss:mss] Invoking /user/username/projects/myproject/tsconfig.json:: wildcard for open scriptInfo:: /user/username/projects/myproject/src/sub/fooBar.ts +Info seq [hh:mm:ss:mss] Scheduled: /user/username/projects/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles* Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/src/sub/fooBar.ts ProjectRootPath: /user/username/projects/myproject:: Result: /user/username/projects/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /user/username/projects/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /user/username/projects/myproject/tsconfig.json projectStateVersion: 2 projectProgramVersion: 1 structureChanged: false structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Same program as before Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/tsconfig.json ProjectRootPath: /user/username/projects/myproject:: Result: undefined Info seq [hh:mm:ss:mss] event: { @@ -315,12 +321,16 @@ FsWatchesRecursive:: /user/username/projects/myproject/src: {} +Timeout callback:: count: 2 +1: /user/username/projects/myproject/tsconfig.json *new* +2: *ensureProjectForOpenFiles* *new* + Projects:: /dev/null/inferredProject1* (Inferred) *new* projectStateVersion: 1 projectProgramVersion: 1 -/user/username/projects/myproject/tsconfig.json (Configured) - projectStateVersion: 1 +/user/username/projects/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 2 *changed* projectProgramVersion: 1 ScriptInfos:: @@ -343,8 +353,8 @@ ScriptInfos:: /dev/null/inferredProject1* *default* Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /user/username/projects/myproject/src/sub/fooBar.ts :: WatchInfo: /user/username/projects/myproject/src 1 undefined Config: /user/username/projects/myproject/tsconfig.json WatchType: Wild card directory -Info seq [hh:mm:ss:mss] Scheduled: /user/username/projects/myproject/tsconfig.json -Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles* +Info seq [hh:mm:ss:mss] Scheduled: /user/username/projects/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/src/sub/fooBar.ts :: WatchInfo: /user/username/projects/myproject/src 1 undefined Config: /user/username/projects/myproject/tsconfig.json WatchType: Wild card directory Before request //// [/user/username/projects/myproject/src/sub/fooBar.ts] @@ -352,15 +362,17 @@ export function fooBar() { } Timeout callback:: count: 2 -1: /user/username/projects/myproject/tsconfig.json *new* -2: *ensureProjectForOpenFiles* *new* +1: /user/username/projects/myproject/tsconfig.json *deleted* +2: *ensureProjectForOpenFiles* *deleted* +3: /user/username/projects/myproject/tsconfig.json *new* +4: *ensureProjectForOpenFiles* *new* Projects:: /dev/null/inferredProject1* (Inferred) projectStateVersion: 1 projectProgramVersion: 1 /user/username/projects/myproject/tsconfig.json (Configured) *changed* - projectStateVersion: 2 *changed* + projectStateVersion: 3 *changed* projectProgramVersion: 1 dirty: true *changed* @@ -380,16 +392,16 @@ Info seq [hh:mm:ss:mss] request: After request Timeout callback:: count: 3 -1: /user/username/projects/myproject/tsconfig.json -2: *ensureProjectForOpenFiles* -3: checkOne *new* +3: /user/username/projects/myproject/tsconfig.json +4: *ensureProjectForOpenFiles* +5: checkOne *new* Before running Timeout callback:: count: 3 -1: /user/username/projects/myproject/tsconfig.json -2: *ensureProjectForOpenFiles* -3: checkOne +3: /user/username/projects/myproject/tsconfig.json +4: *ensureProjectForOpenFiles* +5: checkOne -Invoking Timeout callback:: timeoutId:: 3:: checkOne +Invoking Timeout callback:: timeoutId:: 5:: checkOne Info seq [hh:mm:ss:mss] event: { "seq": 0, @@ -439,23 +451,23 @@ Info seq [hh:mm:ss:mss] event: After running Immedidate callback:: count: 0 Timeout callback:: count: 3 -1: /user/username/projects/myproject/tsconfig.json -2: *ensureProjectForOpenFiles* -4: checkOne *new* +3: /user/username/projects/myproject/tsconfig.json +4: *ensureProjectForOpenFiles* +6: checkOne *new* Before running Timeout callback:: count: 3 -1: /user/username/projects/myproject/tsconfig.json -2: *ensureProjectForOpenFiles* -4: checkOne +3: /user/username/projects/myproject/tsconfig.json +4: *ensureProjectForOpenFiles* +6: checkOne -Invoking Timeout callback:: timeoutId:: 4:: checkOne +Invoking Timeout callback:: timeoutId:: 6:: checkOne Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /user/username/projects/myproject/src/sub/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /user/username/projects/myproject/src/sub/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /user/username/projects/myproject/src/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /user/username/projects/myproject/src/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /user/username/projects/myproject/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /user/username/projects/myproject/tsconfig.json -Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /user/username/projects/myproject/tsconfig.json projectStateVersion: 2 projectProgramVersion: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /user/username/projects/myproject/tsconfig.json projectStateVersion: 3 projectProgramVersion: 1 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 (4) /a/lib/lib.d.ts Text-1 "/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }" @@ -530,7 +542,7 @@ Projects:: dirty: true *changed* isOrphan: true *changed* /user/username/projects/myproject/tsconfig.json (Configured) *changed* - projectStateVersion: 2 + projectStateVersion: 3 projectProgramVersion: 2 *changed* dirty: false *changed* diff --git a/tests/baselines/reference/tsserver/externalProjects/handles-creation-of-external-project-with-jsconfig-before-jsconfig-creation-watcher-is-invoked.js b/tests/baselines/reference/tsserver/externalProjects/handles-creation-of-external-project-with-jsconfig-before-jsconfig-creation-watcher-is-invoked.js index 9cd40115a66..ddee7806df8 100644 --- a/tests/baselines/reference/tsserver/externalProjects/handles-creation-of-external-project-with-jsconfig-before-jsconfig-creation-watcher-is-invoked.js +++ b/tests/baselines/reference/tsserver/externalProjects/handles-creation-of-external-project-with-jsconfig-before-jsconfig-creation-watcher-is-invoked.js @@ -231,6 +231,8 @@ Info seq [hh:mm:ss:mss] request: "seq": 3, "type": "request" } +Info seq [hh:mm:ss:mss] Invoking /user/username/projects/myproject/tsconfig.json:: wildcard for open scriptInfo:: /user/username/projects/myproject/javascript.js +Info seq [hh:mm:ss:mss] Project: /user/username/projects/myproject/tsconfig.json Detected file add/remove of non supported extension: /user/username/projects/myproject/javascript.js Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/javascript.js ProjectRootPath: undefined:: Result: /user/username/projects/myproject/tsconfig.json Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/tsconfig.json ProjectRootPath: undefined:: Result: undefined Info seq [hh:mm:ss:mss] event: diff --git a/tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-after-seeing-file-existance-on-the-disk-with-updateOpen.js b/tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-after-seeing-file-existance-on-the-disk-with-updateOpen.js new file mode 100644 index 00000000000..1dbf439abe5 --- /dev/null +++ b/tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-after-seeing-file-existance-on-the-disk-with-updateOpen.js @@ -0,0 +1,745 @@ +currentDirectory:: / useCaseSensitiveFileNames: false +Info seq [hh:mm:ss:mss] Provided types map file "/typesMap.json" doesn't exist +Before request +//// [/home/src/myproject/src/index.ts] +import {} from '@/old'; + +//// [/home/src/myproject/src/old.ts] +export const x = 10; + +//// [/home/src/myproject/tsconfig.json] +{ + "compilerOptions": { + "paths": { + "@/*": [ + "./src/*" + ] + } + } +} + +//// [/a/lib/lib.d.ts] +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } + + +Info seq [hh:mm:ss:mss] request: + { + "command": "updateOpen", + "arguments": { + "openFiles": [ + { + "file": "/home/src/myproject/src/index.ts", + "projectRootPath": "/home/src/myproject" + }, + { + "file": "/home/src/myproject/src/old.ts", + "projectRootPath": "/home/src/myproject" + } + ] + }, + "seq": 1, + "type": "request" + } +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject:: Result: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Creating configuration project /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/myproject/tsconfig.json 2000 undefined Project: /home/src/myproject/tsconfig.json WatchType: Config file +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 1, + "path": "/home/src/myproject/tsconfig.json" + } + } +Custom watchFile:: Added:: {"id":1,"path":"/home/src/myproject/tsconfig.json"} +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectLoadingStart", + "body": { + "projectName": "/home/src/myproject/tsconfig.json", + "reason": "Creating possible configured project for /home/src/myproject/src/index.ts to open" + } + } +Info seq [hh:mm:ss:mss] Config: /home/src/myproject/tsconfig.json : { + "rootNames": [ + "/home/src/myproject/src/index.ts", + "/home/src/myproject/src/old.ts" + ], + "options": { + "paths": { + "@/*": [ + "./src/*" + ] + }, + "pathsBasePath": "/home/src/myproject", + "configFilePath": "/home/src/myproject/tsconfig.json" + } +} +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 2, + "path": "/home/src/myproject", + "recursive": true, + "ignoreUpdate": true + } + } +Custom watchDirectory:: Added:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/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] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 3, + "path": "/a/lib/lib.d.ts" + } + } +Custom watchFile:: Added:: {"id":3,"path":"/a/lib/lib.d.ts"} +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules/@types 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 4, + "path": "/home/src/myproject/node_modules/@types", + "recursive": true, + "ignoreUpdate": true + } + } +Custom watchDirectory:: Added:: {"id":4,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules/@types 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/myproject/tsconfig.json projectStateVersion: 1 projectProgramVersion: 0 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/home/src/myproject/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (3) + /a/lib/lib.d.ts Text-1 "/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }" + /home/src/myproject/src/old.ts SVC-1-0 "export const x = 10;" + /home/src/myproject/src/index.ts SVC-1-0 "import {} from '@/old';" + + + ../../../a/lib/lib.d.ts + Default library for target 'es5' + src/old.ts + Imported via '@/old' from file 'src/index.ts' + Matched by default include pattern '**/*' + src/index.ts + Matched by default include pattern '**/*' + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectLoadingFinish", + "body": { + "projectName": "/home/src/myproject/tsconfig.json" + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "telemetry", + "body": { + "telemetryEventName": "projectInfo", + "payload": { + "projectId": "6bb806941aafa001b31e4d631704de33d39b9ccdac64dcf4d86298a41f7f5e12", + "fileStats": { + "js": 0, + "jsSize": 0, + "jsx": 0, + "jsxSize": 0, + "ts": 2, + "tsSize": 43, + "tsx": 0, + "tsxSize": 0, + "dts": 1, + "dtsSize": 334, + "deferred": 0, + "deferredSize": 0 + }, + "compilerOptions": { + "paths": "" + }, + "typeAcquisition": { + "enable": false, + "include": false, + "exclude": false + }, + "extends": false, + "files": false, + "include": false, + "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": "/home/src/myproject/src/index.ts", + "configFile": "/home/src/myproject/tsconfig.json", + "diagnostics": [] + } + } +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/myproject/src/old.ts ProjectRootPath: /home/src/myproject:: Result: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] FileName: /home/src/myproject/src/old.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "response": true, + "responseRequired": true, + "performanceData": { + "updateGraphDurationMs": * + } + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: *new* + {"event":{"id":3,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/tsconfig.json: *new* + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +FsWatchesRecursive:: +/home/src/myproject: *new* + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules/@types: *new* + {"event":{"id":4,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *new* + projectStateVersion: 1 + projectProgramVersion: 1 + +ScriptInfos:: +/a/lib/lib.d.ts *new* + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) *new* + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/old.ts (Open) *new* + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* + +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src/old.ts deleted +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src/new.ts created +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src/new.ts updated +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src updated +Before request +//// [/home/src/myproject/src/new.ts] +export const x = 10; + +//// [/home/src/myproject/src/old.ts] deleted + +Info seq [hh:mm:ss:mss] request: + { + "command": "watchChange", + "arguments": { + "id": 2, + "deleted": [ + "/home/src/myproject/src/old.ts" + ], + "created": [ + "/home/src/myproject/src/new.ts" + ] + }, + "seq": 2, + "type": "request" + } +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /home/src/myproject/src/new.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles* +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/myproject/src/new.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /home/src/myproject/src/old.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/myproject/src/old.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +After request + +Timeout callback:: count: 2 +1: /home/src/myproject/tsconfig.json *new* +2: *ensureProjectForOpenFiles* *new* + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 2 *changed* + projectProgramVersion: 1 + dirty: true *changed* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "updateOpen", + "arguments": { + "openFiles": [ + { + "file": "/home/src/myproject/src/new.ts", + "fileContent": "export const x = 10;", + "projectRootPath": "/home/src/myproject" + } + ], + "closedFiles": [ + "/home/src/myproject/src/old.ts" + ] + }, + "seq": 3, + "type": "request" + } +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one +Info seq [hh:mm:ss:mss] Invoking /home/src/myproject/tsconfig.json:: wildcard for open scriptInfo:: /home/src/myproject/src/new.ts +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/myproject/src/new.ts ProjectRootPath: /home/src/myproject:: Result: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/src 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 5, + "path": "/home/src/myproject/src", + "recursive": true, + "ignoreUpdate": true + } + } +Custom watchDirectory:: Added:: {"id":5,"path":"/home/src/myproject/src","recursive":true,"ignoreUpdate":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/src 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 6, + "path": "/home/src/myproject/node_modules", + "recursive": true + } + } +Custom watchDirectory:: Added:: {"id":6,"path":"/home/src/myproject/node_modules","recursive":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/myproject/tsconfig.json projectStateVersion: 2 projectProgramVersion: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/home/src/myproject/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (3) + /a/lib/lib.d.ts Text-1 "/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }" + /home/src/myproject/src/index.ts SVC-1-0 "import {} from '@/old';" + /home/src/myproject/src/new.ts SVC-1-0 "export const x = 10;" + + + ../../../a/lib/lib.d.ts + Default library for target 'es5' + src/index.ts + Matched by default include pattern '**/*' + src/new.ts + Matched by default include pattern '**/*' + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] FileName: /home/src/myproject/src/new.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "response": true, + "responseRequired": true, + "performanceData": { + "updateGraphDurationMs": * + } + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: + {"event":{"id":3,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/tsconfig.json: + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +FsWatchesRecursive:: +/home/src/myproject: + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules: *new* + {"event":{"id":6,"path":"/home/src/myproject/node_modules","recursive":true}} +/home/src/myproject/node_modules/@types: + {"event":{"id":4,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/src: *new* + {"event":{"id":5,"path":"/home/src/myproject/src","recursive":true,"ignoreUpdate":true}} + +Timeout callback:: count: 2 +1: /home/src/myproject/tsconfig.json *deleted* +2: *ensureProjectForOpenFiles* *deleted* +5: /home/src/myproject/tsconfig.json *new* +6: *ensureProjectForOpenFiles* *new* + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 2 + projectProgramVersion: 2 *changed* + dirty: false *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts (Open) *new* + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/old.ts *deleted* + open: false *changed* + version: SVC-1-0 + containingProjects: 0 *changed* + /home/src/myproject/tsconfig.json *deleted* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "getEditsForFileRename", + "arguments": { + "oldFilePath": "/home/src/myproject/src/old.ts", + "newFilePath": "/home/src/myproject/src/new.ts" + }, + "seq": 4, + "type": "request" + } +Info seq [hh:mm:ss:mss] response: + { + "response": [ + { + "fileName": "/home/src/myproject/src/index.ts", + "textChanges": [ + { + "start": { + "line": 1, + "offset": 17 + }, + "end": { + "line": 1, + "offset": 22 + }, + "newText": "@/new" + } + ] + } + ], + "responseRequired": true + } +After request + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 2 + projectProgramVersion: 2 + documentPositionMappers: 1 *changed* + /a/lib/lib.d.ts: identitySourceMapConsumer *new* + +ScriptInfos:: +/a/lib/lib.d.ts *changed* + version: Text-1 + sourceMapFilePath: false *changed* + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "updateOpen", + "arguments": { + "closedFiles": [ + "/home/src/myproject/src/new.ts" + ] + }, + "seq": 5, + "type": "request" + } +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/myproject/src/new.ts 500 undefined WatchType: Closed Script info +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 7, + "path": "/home/src/myproject/src/new.ts" + } + } +Custom watchFile:: Added:: {"id":7,"path":"/home/src/myproject/src/new.ts"} +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "response": true, + "responseRequired": true + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: + {"event":{"id":3,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/src/new.ts: *new* + {"event":{"id":7,"path":"/home/src/myproject/src/new.ts"}} +/home/src/myproject/tsconfig.json: + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +FsWatchesRecursive:: +/home/src/myproject: + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules: + {"event":{"id":6,"path":"/home/src/myproject/node_modules","recursive":true}} +/home/src/myproject/node_modules/@types: + {"event":{"id":4,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/src: + {"event":{"id":5,"path":"/home/src/myproject/src","recursive":true,"ignoreUpdate":true}} + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 3 *changed* + projectProgramVersion: 2 + dirty: true *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + sourceMapFilePath: false + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts *changed* + open: false *changed* + version: SVC-1-0 + pendingReloadFromDisk: true *changed* + containingProjects: 1 + /home/src/myproject/tsconfig.json + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "geterr", + "arguments": { + "delay": 0, + "files": [ + "/home/src/myproject/src/index.ts" + ] + }, + "seq": 6, + "type": "request" + } +After request + +Timeout callback:: count: 3 +5: /home/src/myproject/tsconfig.json +6: *ensureProjectForOpenFiles* +7: checkOne *new* + +Before running Timeout callback:: count: 3 +5: /home/src/myproject/tsconfig.json +6: *ensureProjectForOpenFiles* +7: checkOne + +Info seq [hh:mm:ss:mss] Running: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/myproject/tsconfig.json projectStateVersion: 3 projectProgramVersion: 2 structureChanged: false structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Same program as before +Info seq [hh:mm:ss:mss] Running: *ensureProjectForOpenFiles* +Info seq [hh:mm:ss:mss] Before ensureProjectForOpenFiles: +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] After ensureProjectForOpenFiles: +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] got projects updated in background /home/src/myproject/src/index.ts +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectsUpdatedInBackground", + "body": { + "openFiles": [ + "/home/src/myproject/src/index.ts" + ] + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "syntaxDiag", + "body": { + "file": "/home/src/myproject/src/index.ts", + "diagnostics": [] + } + } +After running Timeout callback:: count: 0 + +Immedidate callback:: count: 1 +1: semanticCheck *new* + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 3 + projectProgramVersion: 2 + dirty: false *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + sourceMapFilePath: false + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts *changed* + version: SVC-1-0 + pendingReloadFromDisk: false *changed* + containingProjects: 1 + /home/src/myproject/tsconfig.json + +Before running Immedidate callback:: count: 1 +1: semanticCheck + +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "semanticDiag", + "body": { + "file": "/home/src/myproject/src/index.ts", + "diagnostics": [ + { + "start": { + "line": 1, + "offset": 16 + }, + "end": { + "line": 1, + "offset": 23 + }, + "text": "Cannot find module '@/old' or its corresponding type declarations.", + "code": 2307, + "category": "error" + } + ] + } + } +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": "/home/src/myproject/src/index.ts", + "diagnostics": [] + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "requestCompleted", + "body": { + "request_seq": 6, + "performanceData": { + "diagnosticsDuration": [ + { + "syntaxDiag": *, + "semanticDiag": *, + "suggestionDiag": *, + "file": "/home/src/myproject/src/index.ts" + } + ] + } + } + } +After running Immedidate callback:: count: 0 diff --git a/tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-after-seeing-file-existance-on-the-disk.js b/tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-after-seeing-file-existance-on-the-disk.js new file mode 100644 index 00000000000..b2693e57c3d --- /dev/null +++ b/tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-after-seeing-file-existance-on-the-disk.js @@ -0,0 +1,866 @@ +currentDirectory:: / useCaseSensitiveFileNames: false +Info seq [hh:mm:ss:mss] Provided types map file "/typesMap.json" doesn't exist +Before request +//// [/home/src/myproject/src/index.ts] +import {} from '@/old'; + +//// [/home/src/myproject/src/old.ts] +export const x = 10; + +//// [/home/src/myproject/tsconfig.json] +{ + "compilerOptions": { + "paths": { + "@/*": [ + "./src/*" + ] + } + } +} + +//// [/a/lib/lib.d.ts] +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } + + +Info seq [hh:mm:ss:mss] request: + { + "command": "open", + "arguments": { + "file": "/home/src/myproject/src/index.ts", + "projectRootPath": "/home/src/myproject" + }, + "seq": 1, + "type": "request" + } +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject:: Result: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Creating configuration project /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/myproject/tsconfig.json 2000 undefined Project: /home/src/myproject/tsconfig.json WatchType: Config file +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 1, + "path": "/home/src/myproject/tsconfig.json" + } + } +Custom watchFile:: Added:: {"id":1,"path":"/home/src/myproject/tsconfig.json"} +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectLoadingStart", + "body": { + "projectName": "/home/src/myproject/tsconfig.json", + "reason": "Creating possible configured project for /home/src/myproject/src/index.ts to open" + } + } +Info seq [hh:mm:ss:mss] Config: /home/src/myproject/tsconfig.json : { + "rootNames": [ + "/home/src/myproject/src/index.ts", + "/home/src/myproject/src/old.ts" + ], + "options": { + "paths": { + "@/*": [ + "./src/*" + ] + }, + "pathsBasePath": "/home/src/myproject", + "configFilePath": "/home/src/myproject/tsconfig.json" + } +} +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 2, + "path": "/home/src/myproject", + "recursive": true, + "ignoreUpdate": true + } + } +Custom watchDirectory:: Added:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/myproject/src/old.ts 500 undefined WatchType: Closed Script info +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 3, + "path": "/home/src/myproject/src/old.ts" + } + } +Custom watchFile:: Added:: {"id":3,"path":"/home/src/myproject/src/old.ts"} +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/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] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 4, + "path": "/a/lib/lib.d.ts" + } + } +Custom watchFile:: Added:: {"id":4,"path":"/a/lib/lib.d.ts"} +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules/@types 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 5, + "path": "/home/src/myproject/node_modules/@types", + "recursive": true, + "ignoreUpdate": true + } + } +Custom watchDirectory:: Added:: {"id":5,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules/@types 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/myproject/tsconfig.json projectStateVersion: 1 projectProgramVersion: 0 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/home/src/myproject/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (3) + /a/lib/lib.d.ts Text-1 "/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }" + /home/src/myproject/src/old.ts Text-1 "export const x = 10;" + /home/src/myproject/src/index.ts SVC-1-0 "import {} from '@/old';" + + + ../../../a/lib/lib.d.ts + Default library for target 'es5' + src/old.ts + Imported via '@/old' from file 'src/index.ts' + Matched by default include pattern '**/*' + src/index.ts + Matched by default include pattern '**/*' + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectLoadingFinish", + "body": { + "projectName": "/home/src/myproject/tsconfig.json" + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "telemetry", + "body": { + "telemetryEventName": "projectInfo", + "payload": { + "projectId": "6bb806941aafa001b31e4d631704de33d39b9ccdac64dcf4d86298a41f7f5e12", + "fileStats": { + "js": 0, + "jsSize": 0, + "jsx": 0, + "jsxSize": 0, + "ts": 2, + "tsSize": 43, + "tsx": 0, + "tsxSize": 0, + "dts": 1, + "dtsSize": 334, + "deferred": 0, + "deferredSize": 0 + }, + "compilerOptions": { + "paths": "" + }, + "typeAcquisition": { + "enable": false, + "include": false, + "exclude": false + }, + "extends": false, + "files": false, + "include": false, + "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": "/home/src/myproject/src/index.ts", + "configFile": "/home/src/myproject/tsconfig.json", + "diagnostics": [] + } + } +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "seq": 0, + "type": "response", + "command": "open", + "request_seq": 1, + "success": true, + "performanceData": { + "updateGraphDurationMs": * + } + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: *new* + {"event":{"id":4,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/src/old.ts: *new* + {"event":{"id":3,"path":"/home/src/myproject/src/old.ts"}} +/home/src/myproject/tsconfig.json: *new* + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +FsWatchesRecursive:: +/home/src/myproject: *new* + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules/@types: *new* + {"event":{"id":5,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *new* + projectStateVersion: 1 + projectProgramVersion: 1 + +ScriptInfos:: +/a/lib/lib.d.ts *new* + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) *new* + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/old.ts *new* + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "open", + "arguments": { + "file": "/home/src/myproject/src/old.ts", + "projectRootPath": "/home/src/myproject" + }, + "seq": 2, + "type": "request" + } +Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /home/src/myproject/src/old.ts 500 undefined WatchType: Closed Script info +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "closeFileWatcher", + "body": { + "id": 3 + } + } +Custom watchFile:: Close:: {"id":3,"path":"/home/src/myproject/src/old.ts"} +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/myproject/src/old.ts ProjectRootPath: /home/src/myproject:: Result: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] FileName: /home/src/myproject/src/old.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "seq": 0, + "type": "response", + "command": "open", + "request_seq": 2, + "success": true + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: + {"event":{"id":4,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/tsconfig.json: + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +PolledWatches *deleted*:: +/home/src/myproject/src/old.ts: + {"event":{"id":3,"path":"/home/src/myproject/src/old.ts"}} + +FsWatchesRecursive:: +/home/src/myproject: + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules/@types: + {"event":{"id":5,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/old.ts (Open) *changed* + open: true *changed* + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* + +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src/old.ts deleted +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src/new.ts created +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src/new.ts updated +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src updated +Before request +//// [/home/src/myproject/src/new.ts] +export const x = 10; + +//// [/home/src/myproject/src/old.ts] deleted + +Info seq [hh:mm:ss:mss] request: + { + "command": "watchChange", + "arguments": { + "id": 2, + "deleted": [ + "/home/src/myproject/src/old.ts" + ], + "created": [ + "/home/src/myproject/src/new.ts" + ] + }, + "seq": 3, + "type": "request" + } +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /home/src/myproject/src/new.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles* +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/myproject/src/new.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /home/src/myproject/src/old.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/myproject/src/old.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +After request + +Timeout callback:: count: 2 +1: /home/src/myproject/tsconfig.json *new* +2: *ensureProjectForOpenFiles* *new* + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 2 *changed* + projectProgramVersion: 1 + dirty: true *changed* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "close", + "arguments": { + "file": "/home/src/myproject/src/old.ts" + }, + "seq": 4, + "type": "request" + } +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "seq": 0, + "type": "response", + "command": "close", + "request_seq": 4, + "success": true + } +After request + +Timeout callback:: count: 2 +1: /home/src/myproject/tsconfig.json *deleted* +2: *ensureProjectForOpenFiles* *deleted* +3: /home/src/myproject/tsconfig.json *new* +4: *ensureProjectForOpenFiles* *new* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/old.ts *deleted* + open: false *changed* + version: Text-1 + containingProjects: 0 *changed* + /home/src/myproject/tsconfig.json *deleted* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "open", + "arguments": { + "file": "/home/src/myproject/src/new.ts", + "projectRootPath": "/home/src/myproject", + "fileContent": "export const x = 10;" + }, + "seq": 5, + "type": "request" + } +Info seq [hh:mm:ss:mss] Invoking /home/src/myproject/tsconfig.json:: wildcard for open scriptInfo:: /home/src/myproject/src/new.ts +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/myproject/src/new.ts ProjectRootPath: /home/src/myproject:: Result: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/src 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 6, + "path": "/home/src/myproject/src", + "recursive": true, + "ignoreUpdate": true + } + } +Custom watchDirectory:: Added:: {"id":6,"path":"/home/src/myproject/src","recursive":true,"ignoreUpdate":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/src 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 7, + "path": "/home/src/myproject/node_modules", + "recursive": true + } + } +Custom watchDirectory:: Added:: {"id":7,"path":"/home/src/myproject/node_modules","recursive":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/myproject/tsconfig.json projectStateVersion: 2 projectProgramVersion: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/home/src/myproject/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (3) + /a/lib/lib.d.ts Text-1 "/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }" + /home/src/myproject/src/index.ts SVC-1-0 "import {} from '@/old';" + /home/src/myproject/src/new.ts SVC-1-0 "export const x = 10;" + + + ../../../a/lib/lib.d.ts + Default library for target 'es5' + src/index.ts + Matched by default include pattern '**/*' + src/new.ts + Matched by default include pattern '**/*' + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] FileName: /home/src/myproject/src/new.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "seq": 0, + "type": "response", + "command": "open", + "request_seq": 5, + "success": true, + "performanceData": { + "updateGraphDurationMs": * + } + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: + {"event":{"id":4,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/tsconfig.json: + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +FsWatchesRecursive:: +/home/src/myproject: + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules: *new* + {"event":{"id":7,"path":"/home/src/myproject/node_modules","recursive":true}} +/home/src/myproject/node_modules/@types: + {"event":{"id":5,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/src: *new* + {"event":{"id":6,"path":"/home/src/myproject/src","recursive":true,"ignoreUpdate":true}} + +Timeout callback:: count: 2 +3: /home/src/myproject/tsconfig.json *deleted* +4: *ensureProjectForOpenFiles* *deleted* +5: /home/src/myproject/tsconfig.json *new* +6: *ensureProjectForOpenFiles* *new* + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 2 + projectProgramVersion: 2 *changed* + dirty: false *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts (Open) *new* + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "getEditsForFileRename", + "arguments": { + "oldFilePath": "/home/src/myproject/src/old.ts", + "newFilePath": "/home/src/myproject/src/new.ts" + }, + "seq": 6, + "type": "request" + } +Info seq [hh:mm:ss:mss] response: + { + "response": [ + { + "fileName": "/home/src/myproject/src/index.ts", + "textChanges": [ + { + "start": { + "line": 1, + "offset": 17 + }, + "end": { + "line": 1, + "offset": 22 + }, + "newText": "@/new" + } + ] + } + ], + "responseRequired": true + } +After request + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 2 + projectProgramVersion: 2 + documentPositionMappers: 1 *changed* + /a/lib/lib.d.ts: identitySourceMapConsumer *new* + +ScriptInfos:: +/a/lib/lib.d.ts *changed* + version: Text-1 + sourceMapFilePath: false *changed* + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "close", + "arguments": { + "file": "/home/src/myproject/src/new.ts" + }, + "seq": 7, + "type": "request" + } +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/myproject/src/new.ts 500 undefined WatchType: Closed Script info +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 8, + "path": "/home/src/myproject/src/new.ts" + } + } +Custom watchFile:: Added:: {"id":8,"path":"/home/src/myproject/src/new.ts"} +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "seq": 0, + "type": "response", + "command": "close", + "request_seq": 7, + "success": true + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: + {"event":{"id":4,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/src/new.ts: *new* + {"event":{"id":8,"path":"/home/src/myproject/src/new.ts"}} +/home/src/myproject/tsconfig.json: + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +FsWatchesRecursive:: +/home/src/myproject: + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules: + {"event":{"id":7,"path":"/home/src/myproject/node_modules","recursive":true}} +/home/src/myproject/node_modules/@types: + {"event":{"id":5,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/src: + {"event":{"id":6,"path":"/home/src/myproject/src","recursive":true,"ignoreUpdate":true}} + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 3 *changed* + projectProgramVersion: 2 + dirty: true *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + sourceMapFilePath: false + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts *changed* + open: false *changed* + version: SVC-1-0 + pendingReloadFromDisk: true *changed* + containingProjects: 1 + /home/src/myproject/tsconfig.json + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "geterr", + "arguments": { + "delay": 0, + "files": [ + "/home/src/myproject/src/index.ts" + ] + }, + "seq": 8, + "type": "request" + } +After request + +Timeout callback:: count: 3 +5: /home/src/myproject/tsconfig.json +6: *ensureProjectForOpenFiles* +7: checkOne *new* + +Before running Timeout callback:: count: 3 +5: /home/src/myproject/tsconfig.json +6: *ensureProjectForOpenFiles* +7: checkOne + +Info seq [hh:mm:ss:mss] Running: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/myproject/tsconfig.json projectStateVersion: 3 projectProgramVersion: 2 structureChanged: false structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Same program as before +Info seq [hh:mm:ss:mss] Running: *ensureProjectForOpenFiles* +Info seq [hh:mm:ss:mss] Before ensureProjectForOpenFiles: +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] After ensureProjectForOpenFiles: +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] got projects updated in background /home/src/myproject/src/index.ts +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectsUpdatedInBackground", + "body": { + "openFiles": [ + "/home/src/myproject/src/index.ts" + ] + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "syntaxDiag", + "body": { + "file": "/home/src/myproject/src/index.ts", + "diagnostics": [] + } + } +After running Timeout callback:: count: 0 + +Immedidate callback:: count: 1 +1: semanticCheck *new* + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 3 + projectProgramVersion: 2 + dirty: false *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + sourceMapFilePath: false + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts *changed* + version: SVC-1-0 + pendingReloadFromDisk: false *changed* + containingProjects: 1 + /home/src/myproject/tsconfig.json + +Before running Immedidate callback:: count: 1 +1: semanticCheck + +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "semanticDiag", + "body": { + "file": "/home/src/myproject/src/index.ts", + "diagnostics": [ + { + "start": { + "line": 1, + "offset": 16 + }, + "end": { + "line": 1, + "offset": 23 + }, + "text": "Cannot find module '@/old' or its corresponding type declarations.", + "code": 2307, + "category": "error" + } + ] + } + } +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": "/home/src/myproject/src/index.ts", + "diagnostics": [] + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "requestCompleted", + "body": { + "request_seq": 8, + "performanceData": { + "diagnosticsDuration": [ + { + "syntaxDiag": *, + "semanticDiag": *, + "suggestionDiag": *, + "file": "/home/src/myproject/src/index.ts" + } + ] + } + } + } +After running Immedidate callback:: count: 0 diff --git a/tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-before-seeing-file-existance-on-the-disk-closed-before-change-with-updateOpen.js b/tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-before-seeing-file-existance-on-the-disk-closed-before-change-with-updateOpen.js new file mode 100644 index 00000000000..c2130013699 --- /dev/null +++ b/tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-before-seeing-file-existance-on-the-disk-closed-before-change-with-updateOpen.js @@ -0,0 +1,740 @@ +currentDirectory:: / useCaseSensitiveFileNames: false +Info seq [hh:mm:ss:mss] Provided types map file "/typesMap.json" doesn't exist +Before request +//// [/home/src/myproject/src/index.ts] +import {} from '@/old'; + +//// [/home/src/myproject/src/old.ts] +export const x = 10; + +//// [/home/src/myproject/tsconfig.json] +{ + "compilerOptions": { + "paths": { + "@/*": [ + "./src/*" + ] + } + } +} + +//// [/a/lib/lib.d.ts] +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } + + +Info seq [hh:mm:ss:mss] request: + { + "command": "updateOpen", + "arguments": { + "openFiles": [ + { + "file": "/home/src/myproject/src/index.ts", + "projectRootPath": "/home/src/myproject" + }, + { + "file": "/home/src/myproject/src/old.ts", + "projectRootPath": "/home/src/myproject" + } + ] + }, + "seq": 1, + "type": "request" + } +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject:: Result: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Creating configuration project /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/myproject/tsconfig.json 2000 undefined Project: /home/src/myproject/tsconfig.json WatchType: Config file +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 1, + "path": "/home/src/myproject/tsconfig.json" + } + } +Custom watchFile:: Added:: {"id":1,"path":"/home/src/myproject/tsconfig.json"} +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectLoadingStart", + "body": { + "projectName": "/home/src/myproject/tsconfig.json", + "reason": "Creating possible configured project for /home/src/myproject/src/index.ts to open" + } + } +Info seq [hh:mm:ss:mss] Config: /home/src/myproject/tsconfig.json : { + "rootNames": [ + "/home/src/myproject/src/index.ts", + "/home/src/myproject/src/old.ts" + ], + "options": { + "paths": { + "@/*": [ + "./src/*" + ] + }, + "pathsBasePath": "/home/src/myproject", + "configFilePath": "/home/src/myproject/tsconfig.json" + } +} +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 2, + "path": "/home/src/myproject", + "recursive": true, + "ignoreUpdate": true + } + } +Custom watchDirectory:: Added:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/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] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 3, + "path": "/a/lib/lib.d.ts" + } + } +Custom watchFile:: Added:: {"id":3,"path":"/a/lib/lib.d.ts"} +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules/@types 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 4, + "path": "/home/src/myproject/node_modules/@types", + "recursive": true, + "ignoreUpdate": true + } + } +Custom watchDirectory:: Added:: {"id":4,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules/@types 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/myproject/tsconfig.json projectStateVersion: 1 projectProgramVersion: 0 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/home/src/myproject/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (3) + /a/lib/lib.d.ts Text-1 "/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }" + /home/src/myproject/src/old.ts SVC-1-0 "export const x = 10;" + /home/src/myproject/src/index.ts SVC-1-0 "import {} from '@/old';" + + + ../../../a/lib/lib.d.ts + Default library for target 'es5' + src/old.ts + Imported via '@/old' from file 'src/index.ts' + Matched by default include pattern '**/*' + src/index.ts + Matched by default include pattern '**/*' + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectLoadingFinish", + "body": { + "projectName": "/home/src/myproject/tsconfig.json" + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "telemetry", + "body": { + "telemetryEventName": "projectInfo", + "payload": { + "projectId": "6bb806941aafa001b31e4d631704de33d39b9ccdac64dcf4d86298a41f7f5e12", + "fileStats": { + "js": 0, + "jsSize": 0, + "jsx": 0, + "jsxSize": 0, + "ts": 2, + "tsSize": 43, + "tsx": 0, + "tsxSize": 0, + "dts": 1, + "dtsSize": 334, + "deferred": 0, + "deferredSize": 0 + }, + "compilerOptions": { + "paths": "" + }, + "typeAcquisition": { + "enable": false, + "include": false, + "exclude": false + }, + "extends": false, + "files": false, + "include": false, + "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": "/home/src/myproject/src/index.ts", + "configFile": "/home/src/myproject/tsconfig.json", + "diagnostics": [] + } + } +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/myproject/src/old.ts ProjectRootPath: /home/src/myproject:: Result: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] FileName: /home/src/myproject/src/old.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "response": true, + "responseRequired": true, + "performanceData": { + "updateGraphDurationMs": * + } + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: *new* + {"event":{"id":3,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/tsconfig.json: *new* + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +FsWatchesRecursive:: +/home/src/myproject: *new* + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules/@types: *new* + {"event":{"id":4,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *new* + projectStateVersion: 1 + projectProgramVersion: 1 + +ScriptInfos:: +/a/lib/lib.d.ts *new* + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) *new* + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/old.ts (Open) *new* + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* + +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src/old.ts deleted +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src/new.ts created +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src/new.ts updated +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src updated +Before request +//// [/home/src/myproject/src/new.ts] +export const x = 10; + +//// [/home/src/myproject/src/old.ts] deleted + +Info seq [hh:mm:ss:mss] request: + { + "command": "updateOpen", + "arguments": { + "openFiles": [ + { + "file": "/home/src/myproject/src/new.ts", + "fileContent": "export const x = 10;", + "projectRootPath": "/home/src/myproject" + } + ], + "closedFiles": [ + "/home/src/myproject/src/old.ts" + ] + }, + "seq": 2, + "type": "request" + } +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles* +Info seq [hh:mm:ss:mss] Invoking /home/src/myproject/tsconfig.json:: wildcard for open scriptInfo:: /home/src/myproject/src/new.ts +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/myproject/src/new.ts ProjectRootPath: /home/src/myproject:: Result: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/src 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 5, + "path": "/home/src/myproject/src", + "recursive": true, + "ignoreUpdate": true + } + } +Custom watchDirectory:: Added:: {"id":5,"path":"/home/src/myproject/src","recursive":true,"ignoreUpdate":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/src 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 6, + "path": "/home/src/myproject/node_modules", + "recursive": true + } + } +Custom watchDirectory:: Added:: {"id":6,"path":"/home/src/myproject/node_modules","recursive":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/myproject/tsconfig.json projectStateVersion: 2 projectProgramVersion: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/home/src/myproject/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (3) + /a/lib/lib.d.ts Text-1 "/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }" + /home/src/myproject/src/index.ts SVC-1-0 "import {} from '@/old';" + /home/src/myproject/src/new.ts SVC-1-0 "export const x = 10;" + + + ../../../a/lib/lib.d.ts + Default library for target 'es5' + src/index.ts + Matched by default include pattern '**/*' + src/new.ts + Matched by default include pattern '**/*' + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] FileName: /home/src/myproject/src/new.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "response": true, + "responseRequired": true, + "performanceData": { + "updateGraphDurationMs": * + } + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: + {"event":{"id":3,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/tsconfig.json: + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +FsWatchesRecursive:: +/home/src/myproject: + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules: *new* + {"event":{"id":6,"path":"/home/src/myproject/node_modules","recursive":true}} +/home/src/myproject/node_modules/@types: + {"event":{"id":4,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/src: *new* + {"event":{"id":5,"path":"/home/src/myproject/src","recursive":true,"ignoreUpdate":true}} + +Timeout callback:: count: 2 +3: /home/src/myproject/tsconfig.json *new* +4: *ensureProjectForOpenFiles* *new* + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 2 *changed* + projectProgramVersion: 2 *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts (Open) *new* + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/old.ts *deleted* + open: false *changed* + version: SVC-1-0 + containingProjects: 0 *changed* + /home/src/myproject/tsconfig.json *deleted* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "getEditsForFileRename", + "arguments": { + "oldFilePath": "/home/src/myproject/src/old.ts", + "newFilePath": "/home/src/myproject/src/new.ts" + }, + "seq": 3, + "type": "request" + } +Info seq [hh:mm:ss:mss] response: + { + "response": [ + { + "fileName": "/home/src/myproject/src/index.ts", + "textChanges": [ + { + "start": { + "line": 1, + "offset": 17 + }, + "end": { + "line": 1, + "offset": 22 + }, + "newText": "@/new" + } + ] + } + ], + "responseRequired": true + } +After request + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 2 + projectProgramVersion: 2 + documentPositionMappers: 1 *changed* + /a/lib/lib.d.ts: identitySourceMapConsumer *new* + +ScriptInfos:: +/a/lib/lib.d.ts *changed* + version: Text-1 + sourceMapFilePath: false *changed* + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "updateOpen", + "arguments": { + "closedFiles": [ + "/home/src/myproject/src/new.ts" + ] + }, + "seq": 4, + "type": "request" + } +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/myproject/src/new.ts 500 undefined WatchType: Closed Script info +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 7, + "path": "/home/src/myproject/src/new.ts" + } + } +Custom watchFile:: Added:: {"id":7,"path":"/home/src/myproject/src/new.ts"} +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "response": true, + "responseRequired": true + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: + {"event":{"id":3,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/src/new.ts: *new* + {"event":{"id":7,"path":"/home/src/myproject/src/new.ts"}} +/home/src/myproject/tsconfig.json: + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +FsWatchesRecursive:: +/home/src/myproject: + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules: + {"event":{"id":6,"path":"/home/src/myproject/node_modules","recursive":true}} +/home/src/myproject/node_modules/@types: + {"event":{"id":4,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/src: + {"event":{"id":5,"path":"/home/src/myproject/src","recursive":true,"ignoreUpdate":true}} + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 3 *changed* + projectProgramVersion: 2 + dirty: true *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + sourceMapFilePath: false + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts *changed* + open: false *changed* + version: SVC-1-0 + pendingReloadFromDisk: true *changed* + containingProjects: 1 + /home/src/myproject/tsconfig.json + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "watchChange", + "arguments": { + "id": 2, + "deleted": [ + "/home/src/myproject/src/old.ts" + ], + "created": [ + "/home/src/myproject/src/new.ts" + ] + }, + "seq": 5, + "type": "request" + } +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /home/src/myproject/src/new.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/myproject/src/new.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /home/src/myproject/src/old.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/myproject/src/old.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +After request + +Timeout callback:: count: 2 +3: /home/src/myproject/tsconfig.json *deleted* +4: *ensureProjectForOpenFiles* *deleted* +7: /home/src/myproject/tsconfig.json *new* +8: *ensureProjectForOpenFiles* *new* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "geterr", + "arguments": { + "delay": 0, + "files": [ + "/home/src/myproject/src/index.ts" + ] + }, + "seq": 6, + "type": "request" + } +After request + +Timeout callback:: count: 3 +7: /home/src/myproject/tsconfig.json +8: *ensureProjectForOpenFiles* +9: checkOne *new* + +Before running Timeout callback:: count: 3 +7: /home/src/myproject/tsconfig.json +8: *ensureProjectForOpenFiles* +9: checkOne + +Info seq [hh:mm:ss:mss] Running: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/myproject/tsconfig.json projectStateVersion: 3 projectProgramVersion: 2 structureChanged: false structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Same program as before +Info seq [hh:mm:ss:mss] Running: *ensureProjectForOpenFiles* +Info seq [hh:mm:ss:mss] Before ensureProjectForOpenFiles: +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] After ensureProjectForOpenFiles: +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] got projects updated in background /home/src/myproject/src/index.ts +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectsUpdatedInBackground", + "body": { + "openFiles": [ + "/home/src/myproject/src/index.ts" + ] + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "syntaxDiag", + "body": { + "file": "/home/src/myproject/src/index.ts", + "diagnostics": [] + } + } +After running Timeout callback:: count: 0 + +Immedidate callback:: count: 1 +1: semanticCheck *new* + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 3 + projectProgramVersion: 2 + dirty: false *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + sourceMapFilePath: false + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts *changed* + version: SVC-1-0 + pendingReloadFromDisk: false *changed* + containingProjects: 1 + /home/src/myproject/tsconfig.json + +Before running Immedidate callback:: count: 1 +1: semanticCheck + +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "semanticDiag", + "body": { + "file": "/home/src/myproject/src/index.ts", + "diagnostics": [ + { + "start": { + "line": 1, + "offset": 16 + }, + "end": { + "line": 1, + "offset": 23 + }, + "text": "Cannot find module '@/old' or its corresponding type declarations.", + "code": 2307, + "category": "error" + } + ] + } + } +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": "/home/src/myproject/src/index.ts", + "diagnostics": [] + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "requestCompleted", + "body": { + "request_seq": 6, + "performanceData": { + "diagnosticsDuration": [ + { + "syntaxDiag": *, + "semanticDiag": *, + "suggestionDiag": *, + "file": "/home/src/myproject/src/index.ts" + } + ] + } + } + } +After running Immedidate callback:: count: 0 diff --git a/tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-before-seeing-file-existance-on-the-disk-closed-before-change.js b/tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-before-seeing-file-existance-on-the-disk-closed-before-change.js new file mode 100644 index 00000000000..5ba56962fa9 --- /dev/null +++ b/tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-before-seeing-file-existance-on-the-disk-closed-before-change.js @@ -0,0 +1,868 @@ +currentDirectory:: / useCaseSensitiveFileNames: false +Info seq [hh:mm:ss:mss] Provided types map file "/typesMap.json" doesn't exist +Before request +//// [/home/src/myproject/src/index.ts] +import {} from '@/old'; + +//// [/home/src/myproject/src/old.ts] +export const x = 10; + +//// [/home/src/myproject/tsconfig.json] +{ + "compilerOptions": { + "paths": { + "@/*": [ + "./src/*" + ] + } + } +} + +//// [/a/lib/lib.d.ts] +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } + + +Info seq [hh:mm:ss:mss] request: + { + "command": "open", + "arguments": { + "file": "/home/src/myproject/src/index.ts", + "projectRootPath": "/home/src/myproject" + }, + "seq": 1, + "type": "request" + } +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject:: Result: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Creating configuration project /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/myproject/tsconfig.json 2000 undefined Project: /home/src/myproject/tsconfig.json WatchType: Config file +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 1, + "path": "/home/src/myproject/tsconfig.json" + } + } +Custom watchFile:: Added:: {"id":1,"path":"/home/src/myproject/tsconfig.json"} +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectLoadingStart", + "body": { + "projectName": "/home/src/myproject/tsconfig.json", + "reason": "Creating possible configured project for /home/src/myproject/src/index.ts to open" + } + } +Info seq [hh:mm:ss:mss] Config: /home/src/myproject/tsconfig.json : { + "rootNames": [ + "/home/src/myproject/src/index.ts", + "/home/src/myproject/src/old.ts" + ], + "options": { + "paths": { + "@/*": [ + "./src/*" + ] + }, + "pathsBasePath": "/home/src/myproject", + "configFilePath": "/home/src/myproject/tsconfig.json" + } +} +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 2, + "path": "/home/src/myproject", + "recursive": true, + "ignoreUpdate": true + } + } +Custom watchDirectory:: Added:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/myproject/src/old.ts 500 undefined WatchType: Closed Script info +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 3, + "path": "/home/src/myproject/src/old.ts" + } + } +Custom watchFile:: Added:: {"id":3,"path":"/home/src/myproject/src/old.ts"} +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/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] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 4, + "path": "/a/lib/lib.d.ts" + } + } +Custom watchFile:: Added:: {"id":4,"path":"/a/lib/lib.d.ts"} +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules/@types 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 5, + "path": "/home/src/myproject/node_modules/@types", + "recursive": true, + "ignoreUpdate": true + } + } +Custom watchDirectory:: Added:: {"id":5,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules/@types 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/myproject/tsconfig.json projectStateVersion: 1 projectProgramVersion: 0 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/home/src/myproject/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (3) + /a/lib/lib.d.ts Text-1 "/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }" + /home/src/myproject/src/old.ts Text-1 "export const x = 10;" + /home/src/myproject/src/index.ts SVC-1-0 "import {} from '@/old';" + + + ../../../a/lib/lib.d.ts + Default library for target 'es5' + src/old.ts + Imported via '@/old' from file 'src/index.ts' + Matched by default include pattern '**/*' + src/index.ts + Matched by default include pattern '**/*' + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectLoadingFinish", + "body": { + "projectName": "/home/src/myproject/tsconfig.json" + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "telemetry", + "body": { + "telemetryEventName": "projectInfo", + "payload": { + "projectId": "6bb806941aafa001b31e4d631704de33d39b9ccdac64dcf4d86298a41f7f5e12", + "fileStats": { + "js": 0, + "jsSize": 0, + "jsx": 0, + "jsxSize": 0, + "ts": 2, + "tsSize": 43, + "tsx": 0, + "tsxSize": 0, + "dts": 1, + "dtsSize": 334, + "deferred": 0, + "deferredSize": 0 + }, + "compilerOptions": { + "paths": "" + }, + "typeAcquisition": { + "enable": false, + "include": false, + "exclude": false + }, + "extends": false, + "files": false, + "include": false, + "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": "/home/src/myproject/src/index.ts", + "configFile": "/home/src/myproject/tsconfig.json", + "diagnostics": [] + } + } +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "seq": 0, + "type": "response", + "command": "open", + "request_seq": 1, + "success": true, + "performanceData": { + "updateGraphDurationMs": * + } + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: *new* + {"event":{"id":4,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/src/old.ts: *new* + {"event":{"id":3,"path":"/home/src/myproject/src/old.ts"}} +/home/src/myproject/tsconfig.json: *new* + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +FsWatchesRecursive:: +/home/src/myproject: *new* + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules/@types: *new* + {"event":{"id":5,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *new* + projectStateVersion: 1 + projectProgramVersion: 1 + +ScriptInfos:: +/a/lib/lib.d.ts *new* + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) *new* + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/old.ts *new* + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "open", + "arguments": { + "file": "/home/src/myproject/src/old.ts", + "projectRootPath": "/home/src/myproject" + }, + "seq": 2, + "type": "request" + } +Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /home/src/myproject/src/old.ts 500 undefined WatchType: Closed Script info +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "closeFileWatcher", + "body": { + "id": 3 + } + } +Custom watchFile:: Close:: {"id":3,"path":"/home/src/myproject/src/old.ts"} +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/myproject/src/old.ts ProjectRootPath: /home/src/myproject:: Result: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] FileName: /home/src/myproject/src/old.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "seq": 0, + "type": "response", + "command": "open", + "request_seq": 2, + "success": true + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: + {"event":{"id":4,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/tsconfig.json: + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +PolledWatches *deleted*:: +/home/src/myproject/src/old.ts: + {"event":{"id":3,"path":"/home/src/myproject/src/old.ts"}} + +FsWatchesRecursive:: +/home/src/myproject: + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules/@types: + {"event":{"id":5,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/old.ts (Open) *changed* + open: true *changed* + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* + +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src/old.ts deleted +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src/new.ts created +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src/new.ts updated +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src updated +Before request +//// [/home/src/myproject/src/new.ts] +export const x = 10; + +//// [/home/src/myproject/src/old.ts] deleted + +Info seq [hh:mm:ss:mss] request: + { + "command": "close", + "arguments": { + "file": "/home/src/myproject/src/old.ts" + }, + "seq": 3, + "type": "request" + } +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles* +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "seq": 0, + "type": "response", + "command": "close", + "request_seq": 3, + "success": true + } +After request + +Timeout callback:: count: 2 +1: /home/src/myproject/tsconfig.json *new* +2: *ensureProjectForOpenFiles* *new* + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 2 *changed* + projectProgramVersion: 1 + dirty: true *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/old.ts *deleted* + open: false *changed* + version: Text-1 + containingProjects: 0 *changed* + /home/src/myproject/tsconfig.json *deleted* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "open", + "arguments": { + "file": "/home/src/myproject/src/new.ts", + "projectRootPath": "/home/src/myproject", + "fileContent": "export const x = 10;" + }, + "seq": 4, + "type": "request" + } +Info seq [hh:mm:ss:mss] Invoking /home/src/myproject/tsconfig.json:: wildcard for open scriptInfo:: /home/src/myproject/src/new.ts +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/myproject/src/new.ts ProjectRootPath: /home/src/myproject:: Result: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/src 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 6, + "path": "/home/src/myproject/src", + "recursive": true, + "ignoreUpdate": true + } + } +Custom watchDirectory:: Added:: {"id":6,"path":"/home/src/myproject/src","recursive":true,"ignoreUpdate":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/src 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 7, + "path": "/home/src/myproject/node_modules", + "recursive": true + } + } +Custom watchDirectory:: Added:: {"id":7,"path":"/home/src/myproject/node_modules","recursive":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/myproject/tsconfig.json projectStateVersion: 2 projectProgramVersion: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/home/src/myproject/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (3) + /a/lib/lib.d.ts Text-1 "/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }" + /home/src/myproject/src/index.ts SVC-1-0 "import {} from '@/old';" + /home/src/myproject/src/new.ts SVC-1-0 "export const x = 10;" + + + ../../../a/lib/lib.d.ts + Default library for target 'es5' + src/index.ts + Matched by default include pattern '**/*' + src/new.ts + Matched by default include pattern '**/*' + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] FileName: /home/src/myproject/src/new.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "seq": 0, + "type": "response", + "command": "open", + "request_seq": 4, + "success": true, + "performanceData": { + "updateGraphDurationMs": * + } + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: + {"event":{"id":4,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/tsconfig.json: + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +FsWatchesRecursive:: +/home/src/myproject: + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules: *new* + {"event":{"id":7,"path":"/home/src/myproject/node_modules","recursive":true}} +/home/src/myproject/node_modules/@types: + {"event":{"id":5,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/src: *new* + {"event":{"id":6,"path":"/home/src/myproject/src","recursive":true,"ignoreUpdate":true}} + +Timeout callback:: count: 2 +1: /home/src/myproject/tsconfig.json *deleted* +2: *ensureProjectForOpenFiles* *deleted* +3: /home/src/myproject/tsconfig.json *new* +4: *ensureProjectForOpenFiles* *new* + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 2 + projectProgramVersion: 2 *changed* + dirty: false *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts (Open) *new* + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "getEditsForFileRename", + "arguments": { + "oldFilePath": "/home/src/myproject/src/old.ts", + "newFilePath": "/home/src/myproject/src/new.ts" + }, + "seq": 5, + "type": "request" + } +Info seq [hh:mm:ss:mss] response: + { + "response": [ + { + "fileName": "/home/src/myproject/src/index.ts", + "textChanges": [ + { + "start": { + "line": 1, + "offset": 17 + }, + "end": { + "line": 1, + "offset": 22 + }, + "newText": "@/new" + } + ] + } + ], + "responseRequired": true + } +After request + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 2 + projectProgramVersion: 2 + documentPositionMappers: 1 *changed* + /a/lib/lib.d.ts: identitySourceMapConsumer *new* + +ScriptInfos:: +/a/lib/lib.d.ts *changed* + version: Text-1 + sourceMapFilePath: false *changed* + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "close", + "arguments": { + "file": "/home/src/myproject/src/new.ts" + }, + "seq": 6, + "type": "request" + } +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/myproject/src/new.ts 500 undefined WatchType: Closed Script info +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 8, + "path": "/home/src/myproject/src/new.ts" + } + } +Custom watchFile:: Added:: {"id":8,"path":"/home/src/myproject/src/new.ts"} +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "seq": 0, + "type": "response", + "command": "close", + "request_seq": 6, + "success": true + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: + {"event":{"id":4,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/src/new.ts: *new* + {"event":{"id":8,"path":"/home/src/myproject/src/new.ts"}} +/home/src/myproject/tsconfig.json: + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +FsWatchesRecursive:: +/home/src/myproject: + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules: + {"event":{"id":7,"path":"/home/src/myproject/node_modules","recursive":true}} +/home/src/myproject/node_modules/@types: + {"event":{"id":5,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/src: + {"event":{"id":6,"path":"/home/src/myproject/src","recursive":true,"ignoreUpdate":true}} + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 3 *changed* + projectProgramVersion: 2 + dirty: true *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + sourceMapFilePath: false + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts *changed* + open: false *changed* + version: SVC-1-0 + pendingReloadFromDisk: true *changed* + containingProjects: 1 + /home/src/myproject/tsconfig.json + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "watchChange", + "arguments": { + "id": 2, + "deleted": [ + "/home/src/myproject/src/old.ts" + ], + "created": [ + "/home/src/myproject/src/new.ts" + ] + }, + "seq": 7, + "type": "request" + } +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /home/src/myproject/src/new.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/myproject/src/new.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /home/src/myproject/src/old.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/myproject/src/old.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +After request + +Timeout callback:: count: 2 +3: /home/src/myproject/tsconfig.json *deleted* +4: *ensureProjectForOpenFiles* *deleted* +7: /home/src/myproject/tsconfig.json *new* +8: *ensureProjectForOpenFiles* *new* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "geterr", + "arguments": { + "delay": 0, + "files": [ + "/home/src/myproject/src/index.ts" + ] + }, + "seq": 8, + "type": "request" + } +After request + +Timeout callback:: count: 3 +7: /home/src/myproject/tsconfig.json +8: *ensureProjectForOpenFiles* +9: checkOne *new* + +Before running Timeout callback:: count: 3 +7: /home/src/myproject/tsconfig.json +8: *ensureProjectForOpenFiles* +9: checkOne + +Info seq [hh:mm:ss:mss] Running: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/myproject/tsconfig.json projectStateVersion: 3 projectProgramVersion: 2 structureChanged: false structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Same program as before +Info seq [hh:mm:ss:mss] Running: *ensureProjectForOpenFiles* +Info seq [hh:mm:ss:mss] Before ensureProjectForOpenFiles: +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] After ensureProjectForOpenFiles: +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] got projects updated in background /home/src/myproject/src/index.ts +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectsUpdatedInBackground", + "body": { + "openFiles": [ + "/home/src/myproject/src/index.ts" + ] + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "syntaxDiag", + "body": { + "file": "/home/src/myproject/src/index.ts", + "diagnostics": [] + } + } +After running Timeout callback:: count: 0 + +Immedidate callback:: count: 1 +1: semanticCheck *new* + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 3 + projectProgramVersion: 2 + dirty: false *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + sourceMapFilePath: false + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts *changed* + version: SVC-1-0 + pendingReloadFromDisk: false *changed* + containingProjects: 1 + /home/src/myproject/tsconfig.json + +Before running Immedidate callback:: count: 1 +1: semanticCheck + +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "semanticDiag", + "body": { + "file": "/home/src/myproject/src/index.ts", + "diagnostics": [ + { + "start": { + "line": 1, + "offset": 16 + }, + "end": { + "line": 1, + "offset": 23 + }, + "text": "Cannot find module '@/old' or its corresponding type declarations.", + "code": 2307, + "category": "error" + } + ] + } + } +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": "/home/src/myproject/src/index.ts", + "diagnostics": [] + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "requestCompleted", + "body": { + "request_seq": 8, + "performanceData": { + "diagnosticsDuration": [ + { + "syntaxDiag": *, + "semanticDiag": *, + "suggestionDiag": *, + "file": "/home/src/myproject/src/index.ts" + } + ] + } + } + } +After running Immedidate callback:: count: 0 diff --git a/tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-before-seeing-file-existance-on-the-disk-with-updateOpen.js b/tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-before-seeing-file-existance-on-the-disk-with-updateOpen.js new file mode 100644 index 00000000000..a1442f76b64 --- /dev/null +++ b/tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-before-seeing-file-existance-on-the-disk-with-updateOpen.js @@ -0,0 +1,738 @@ +currentDirectory:: / useCaseSensitiveFileNames: false +Info seq [hh:mm:ss:mss] Provided types map file "/typesMap.json" doesn't exist +Before request +//// [/home/src/myproject/src/index.ts] +import {} from '@/old'; + +//// [/home/src/myproject/src/old.ts] +export const x = 10; + +//// [/home/src/myproject/tsconfig.json] +{ + "compilerOptions": { + "paths": { + "@/*": [ + "./src/*" + ] + } + } +} + +//// [/a/lib/lib.d.ts] +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } + + +Info seq [hh:mm:ss:mss] request: + { + "command": "updateOpen", + "arguments": { + "openFiles": [ + { + "file": "/home/src/myproject/src/index.ts", + "projectRootPath": "/home/src/myproject" + }, + { + "file": "/home/src/myproject/src/old.ts", + "projectRootPath": "/home/src/myproject" + } + ] + }, + "seq": 1, + "type": "request" + } +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject:: Result: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Creating configuration project /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/myproject/tsconfig.json 2000 undefined Project: /home/src/myproject/tsconfig.json WatchType: Config file +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 1, + "path": "/home/src/myproject/tsconfig.json" + } + } +Custom watchFile:: Added:: {"id":1,"path":"/home/src/myproject/tsconfig.json"} +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectLoadingStart", + "body": { + "projectName": "/home/src/myproject/tsconfig.json", + "reason": "Creating possible configured project for /home/src/myproject/src/index.ts to open" + } + } +Info seq [hh:mm:ss:mss] Config: /home/src/myproject/tsconfig.json : { + "rootNames": [ + "/home/src/myproject/src/index.ts", + "/home/src/myproject/src/old.ts" + ], + "options": { + "paths": { + "@/*": [ + "./src/*" + ] + }, + "pathsBasePath": "/home/src/myproject", + "configFilePath": "/home/src/myproject/tsconfig.json" + } +} +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 2, + "path": "/home/src/myproject", + "recursive": true, + "ignoreUpdate": true + } + } +Custom watchDirectory:: Added:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/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] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 3, + "path": "/a/lib/lib.d.ts" + } + } +Custom watchFile:: Added:: {"id":3,"path":"/a/lib/lib.d.ts"} +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules/@types 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 4, + "path": "/home/src/myproject/node_modules/@types", + "recursive": true, + "ignoreUpdate": true + } + } +Custom watchDirectory:: Added:: {"id":4,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules/@types 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/myproject/tsconfig.json projectStateVersion: 1 projectProgramVersion: 0 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/home/src/myproject/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (3) + /a/lib/lib.d.ts Text-1 "/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }" + /home/src/myproject/src/old.ts SVC-1-0 "export const x = 10;" + /home/src/myproject/src/index.ts SVC-1-0 "import {} from '@/old';" + + + ../../../a/lib/lib.d.ts + Default library for target 'es5' + src/old.ts + Imported via '@/old' from file 'src/index.ts' + Matched by default include pattern '**/*' + src/index.ts + Matched by default include pattern '**/*' + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectLoadingFinish", + "body": { + "projectName": "/home/src/myproject/tsconfig.json" + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "telemetry", + "body": { + "telemetryEventName": "projectInfo", + "payload": { + "projectId": "6bb806941aafa001b31e4d631704de33d39b9ccdac64dcf4d86298a41f7f5e12", + "fileStats": { + "js": 0, + "jsSize": 0, + "jsx": 0, + "jsxSize": 0, + "ts": 2, + "tsSize": 43, + "tsx": 0, + "tsxSize": 0, + "dts": 1, + "dtsSize": 334, + "deferred": 0, + "deferredSize": 0 + }, + "compilerOptions": { + "paths": "" + }, + "typeAcquisition": { + "enable": false, + "include": false, + "exclude": false + }, + "extends": false, + "files": false, + "include": false, + "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": "/home/src/myproject/src/index.ts", + "configFile": "/home/src/myproject/tsconfig.json", + "diagnostics": [] + } + } +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/myproject/src/old.ts ProjectRootPath: /home/src/myproject:: Result: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] FileName: /home/src/myproject/src/old.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "response": true, + "responseRequired": true, + "performanceData": { + "updateGraphDurationMs": * + } + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: *new* + {"event":{"id":3,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/tsconfig.json: *new* + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +FsWatchesRecursive:: +/home/src/myproject: *new* + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules/@types: *new* + {"event":{"id":4,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *new* + projectStateVersion: 1 + projectProgramVersion: 1 + +ScriptInfos:: +/a/lib/lib.d.ts *new* + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) *new* + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/old.ts (Open) *new* + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* + +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src/old.ts deleted +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src/new.ts created +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src/new.ts updated +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src updated +Before request +//// [/home/src/myproject/src/new.ts] +export const x = 10; + +//// [/home/src/myproject/src/old.ts] deleted + +Info seq [hh:mm:ss:mss] request: + { + "command": "updateOpen", + "arguments": { + "openFiles": [ + { + "file": "/home/src/myproject/src/new.ts", + "fileContent": "export const x = 10;", + "projectRootPath": "/home/src/myproject" + } + ], + "closedFiles": [ + "/home/src/myproject/src/old.ts" + ] + }, + "seq": 2, + "type": "request" + } +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles* +Info seq [hh:mm:ss:mss] Invoking /home/src/myproject/tsconfig.json:: wildcard for open scriptInfo:: /home/src/myproject/src/new.ts +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/myproject/src/new.ts ProjectRootPath: /home/src/myproject:: Result: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/src 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 5, + "path": "/home/src/myproject/src", + "recursive": true, + "ignoreUpdate": true + } + } +Custom watchDirectory:: Added:: {"id":5,"path":"/home/src/myproject/src","recursive":true,"ignoreUpdate":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/src 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 6, + "path": "/home/src/myproject/node_modules", + "recursive": true + } + } +Custom watchDirectory:: Added:: {"id":6,"path":"/home/src/myproject/node_modules","recursive":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/myproject/tsconfig.json projectStateVersion: 2 projectProgramVersion: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/home/src/myproject/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (3) + /a/lib/lib.d.ts Text-1 "/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }" + /home/src/myproject/src/index.ts SVC-1-0 "import {} from '@/old';" + /home/src/myproject/src/new.ts SVC-1-0 "export const x = 10;" + + + ../../../a/lib/lib.d.ts + Default library for target 'es5' + src/index.ts + Matched by default include pattern '**/*' + src/new.ts + Matched by default include pattern '**/*' + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] FileName: /home/src/myproject/src/new.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "response": true, + "responseRequired": true, + "performanceData": { + "updateGraphDurationMs": * + } + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: + {"event":{"id":3,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/tsconfig.json: + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +FsWatchesRecursive:: +/home/src/myproject: + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules: *new* + {"event":{"id":6,"path":"/home/src/myproject/node_modules","recursive":true}} +/home/src/myproject/node_modules/@types: + {"event":{"id":4,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/src: *new* + {"event":{"id":5,"path":"/home/src/myproject/src","recursive":true,"ignoreUpdate":true}} + +Timeout callback:: count: 2 +3: /home/src/myproject/tsconfig.json *new* +4: *ensureProjectForOpenFiles* *new* + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 2 *changed* + projectProgramVersion: 2 *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts (Open) *new* + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/old.ts *deleted* + open: false *changed* + version: SVC-1-0 + containingProjects: 0 *changed* + /home/src/myproject/tsconfig.json *deleted* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "getEditsForFileRename", + "arguments": { + "oldFilePath": "/home/src/myproject/src/old.ts", + "newFilePath": "/home/src/myproject/src/new.ts" + }, + "seq": 3, + "type": "request" + } +Info seq [hh:mm:ss:mss] response: + { + "response": [ + { + "fileName": "/home/src/myproject/src/index.ts", + "textChanges": [ + { + "start": { + "line": 1, + "offset": 17 + }, + "end": { + "line": 1, + "offset": 22 + }, + "newText": "@/new" + } + ] + } + ], + "responseRequired": true + } +After request + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 2 + projectProgramVersion: 2 + documentPositionMappers: 1 *changed* + /a/lib/lib.d.ts: identitySourceMapConsumer *new* + +ScriptInfos:: +/a/lib/lib.d.ts *changed* + version: Text-1 + sourceMapFilePath: false *changed* + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "watchChange", + "arguments": { + "id": 2, + "deleted": [ + "/home/src/myproject/src/old.ts" + ], + "created": [ + "/home/src/myproject/src/new.ts" + ] + }, + "seq": 4, + "type": "request" + } +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /home/src/myproject/src/new.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/myproject/src/new.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /home/src/myproject/src/old.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/myproject/src/old.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +After request + +Timeout callback:: count: 2 +3: /home/src/myproject/tsconfig.json *deleted* +4: *ensureProjectForOpenFiles* *deleted* +5: /home/src/myproject/tsconfig.json *new* +6: *ensureProjectForOpenFiles* *new* + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 3 *changed* + projectProgramVersion: 2 + dirty: true *changed* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "updateOpen", + "arguments": { + "closedFiles": [ + "/home/src/myproject/src/new.ts" + ] + }, + "seq": 5, + "type": "request" + } +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/myproject/src/new.ts 500 undefined WatchType: Closed Script info +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 7, + "path": "/home/src/myproject/src/new.ts" + } + } +Custom watchFile:: Added:: {"id":7,"path":"/home/src/myproject/src/new.ts"} +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "response": true, + "responseRequired": true + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: + {"event":{"id":3,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/src/new.ts: *new* + {"event":{"id":7,"path":"/home/src/myproject/src/new.ts"}} +/home/src/myproject/tsconfig.json: + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +FsWatchesRecursive:: +/home/src/myproject: + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules: + {"event":{"id":6,"path":"/home/src/myproject/node_modules","recursive":true}} +/home/src/myproject/node_modules/@types: + {"event":{"id":4,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/src: + {"event":{"id":5,"path":"/home/src/myproject/src","recursive":true,"ignoreUpdate":true}} + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + sourceMapFilePath: false + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts *changed* + open: false *changed* + version: SVC-1-0 + pendingReloadFromDisk: true *changed* + containingProjects: 1 + /home/src/myproject/tsconfig.json + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "geterr", + "arguments": { + "delay": 0, + "files": [ + "/home/src/myproject/src/index.ts" + ] + }, + "seq": 6, + "type": "request" + } +After request + +Timeout callback:: count: 3 +5: /home/src/myproject/tsconfig.json +6: *ensureProjectForOpenFiles* +7: checkOne *new* + +Before running Timeout callback:: count: 3 +5: /home/src/myproject/tsconfig.json +6: *ensureProjectForOpenFiles* +7: checkOne + +Info seq [hh:mm:ss:mss] Running: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/myproject/tsconfig.json projectStateVersion: 3 projectProgramVersion: 2 structureChanged: false structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Same program as before +Info seq [hh:mm:ss:mss] Running: *ensureProjectForOpenFiles* +Info seq [hh:mm:ss:mss] Before ensureProjectForOpenFiles: +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] After ensureProjectForOpenFiles: +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] got projects updated in background /home/src/myproject/src/index.ts +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectsUpdatedInBackground", + "body": { + "openFiles": [ + "/home/src/myproject/src/index.ts" + ] + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "syntaxDiag", + "body": { + "file": "/home/src/myproject/src/index.ts", + "diagnostics": [] + } + } +After running Timeout callback:: count: 0 + +Immedidate callback:: count: 1 +1: semanticCheck *new* + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 3 + projectProgramVersion: 2 + dirty: false *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + sourceMapFilePath: false + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts *changed* + version: SVC-1-0 + pendingReloadFromDisk: false *changed* + containingProjects: 1 + /home/src/myproject/tsconfig.json + +Before running Immedidate callback:: count: 1 +1: semanticCheck + +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "semanticDiag", + "body": { + "file": "/home/src/myproject/src/index.ts", + "diagnostics": [ + { + "start": { + "line": 1, + "offset": 16 + }, + "end": { + "line": 1, + "offset": 23 + }, + "text": "Cannot find module '@/old' or its corresponding type declarations.", + "code": 2307, + "category": "error" + } + ] + } + } +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": "/home/src/myproject/src/index.ts", + "diagnostics": [] + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "requestCompleted", + "body": { + "request_seq": 6, + "performanceData": { + "diagnosticsDuration": [ + { + "syntaxDiag": *, + "semanticDiag": *, + "suggestionDiag": *, + "file": "/home/src/myproject/src/index.ts" + } + ] + } + } + } +After running Immedidate callback:: count: 0 diff --git a/tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-before-seeing-file-existance-on-the-disk.js b/tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-before-seeing-file-existance-on-the-disk.js new file mode 100644 index 00000000000..0e223c8cffc --- /dev/null +++ b/tests/baselines/reference/tsserver/getEditsForFileRename/works-with-when-file-is-opened-before-seeing-file-existance-on-the-disk.js @@ -0,0 +1,866 @@ +currentDirectory:: / useCaseSensitiveFileNames: false +Info seq [hh:mm:ss:mss] Provided types map file "/typesMap.json" doesn't exist +Before request +//// [/home/src/myproject/src/index.ts] +import {} from '@/old'; + +//// [/home/src/myproject/src/old.ts] +export const x = 10; + +//// [/home/src/myproject/tsconfig.json] +{ + "compilerOptions": { + "paths": { + "@/*": [ + "./src/*" + ] + } + } +} + +//// [/a/lib/lib.d.ts] +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } + + +Info seq [hh:mm:ss:mss] request: + { + "command": "open", + "arguments": { + "file": "/home/src/myproject/src/index.ts", + "projectRootPath": "/home/src/myproject" + }, + "seq": 1, + "type": "request" + } +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject:: Result: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Creating configuration project /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/myproject/tsconfig.json 2000 undefined Project: /home/src/myproject/tsconfig.json WatchType: Config file +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 1, + "path": "/home/src/myproject/tsconfig.json" + } + } +Custom watchFile:: Added:: {"id":1,"path":"/home/src/myproject/tsconfig.json"} +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectLoadingStart", + "body": { + "projectName": "/home/src/myproject/tsconfig.json", + "reason": "Creating possible configured project for /home/src/myproject/src/index.ts to open" + } + } +Info seq [hh:mm:ss:mss] Config: /home/src/myproject/tsconfig.json : { + "rootNames": [ + "/home/src/myproject/src/index.ts", + "/home/src/myproject/src/old.ts" + ], + "options": { + "paths": { + "@/*": [ + "./src/*" + ] + }, + "pathsBasePath": "/home/src/myproject", + "configFilePath": "/home/src/myproject/tsconfig.json" + } +} +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 2, + "path": "/home/src/myproject", + "recursive": true, + "ignoreUpdate": true + } + } +Custom watchDirectory:: Added:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/myproject/src/old.ts 500 undefined WatchType: Closed Script info +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 3, + "path": "/home/src/myproject/src/old.ts" + } + } +Custom watchFile:: Added:: {"id":3,"path":"/home/src/myproject/src/old.ts"} +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/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] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 4, + "path": "/a/lib/lib.d.ts" + } + } +Custom watchFile:: Added:: {"id":4,"path":"/a/lib/lib.d.ts"} +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules/@types 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 5, + "path": "/home/src/myproject/node_modules/@types", + "recursive": true, + "ignoreUpdate": true + } + } +Custom watchDirectory:: Added:: {"id":5,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules/@types 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Type roots +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/myproject/tsconfig.json projectStateVersion: 1 projectProgramVersion: 0 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/home/src/myproject/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (3) + /a/lib/lib.d.ts Text-1 "/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }" + /home/src/myproject/src/old.ts Text-1 "export const x = 10;" + /home/src/myproject/src/index.ts SVC-1-0 "import {} from '@/old';" + + + ../../../a/lib/lib.d.ts + Default library for target 'es5' + src/old.ts + Imported via '@/old' from file 'src/index.ts' + Matched by default include pattern '**/*' + src/index.ts + Matched by default include pattern '**/*' + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectLoadingFinish", + "body": { + "projectName": "/home/src/myproject/tsconfig.json" + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "telemetry", + "body": { + "telemetryEventName": "projectInfo", + "payload": { + "projectId": "6bb806941aafa001b31e4d631704de33d39b9ccdac64dcf4d86298a41f7f5e12", + "fileStats": { + "js": 0, + "jsSize": 0, + "jsx": 0, + "jsxSize": 0, + "ts": 2, + "tsSize": 43, + "tsx": 0, + "tsxSize": 0, + "dts": 1, + "dtsSize": 334, + "deferred": 0, + "deferredSize": 0 + }, + "compilerOptions": { + "paths": "" + }, + "typeAcquisition": { + "enable": false, + "include": false, + "exclude": false + }, + "extends": false, + "files": false, + "include": false, + "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": "/home/src/myproject/src/index.ts", + "configFile": "/home/src/myproject/tsconfig.json", + "diagnostics": [] + } + } +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "seq": 0, + "type": "response", + "command": "open", + "request_seq": 1, + "success": true, + "performanceData": { + "updateGraphDurationMs": * + } + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: *new* + {"event":{"id":4,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/src/old.ts: *new* + {"event":{"id":3,"path":"/home/src/myproject/src/old.ts"}} +/home/src/myproject/tsconfig.json: *new* + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +FsWatchesRecursive:: +/home/src/myproject: *new* + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules/@types: *new* + {"event":{"id":5,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *new* + projectStateVersion: 1 + projectProgramVersion: 1 + +ScriptInfos:: +/a/lib/lib.d.ts *new* + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) *new* + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/old.ts *new* + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "open", + "arguments": { + "file": "/home/src/myproject/src/old.ts", + "projectRootPath": "/home/src/myproject" + }, + "seq": 2, + "type": "request" + } +Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /home/src/myproject/src/old.ts 500 undefined WatchType: Closed Script info +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "closeFileWatcher", + "body": { + "id": 3 + } + } +Custom watchFile:: Close:: {"id":3,"path":"/home/src/myproject/src/old.ts"} +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/myproject/src/old.ts ProjectRootPath: /home/src/myproject:: Result: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] FileName: /home/src/myproject/src/old.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "seq": 0, + "type": "response", + "command": "open", + "request_seq": 2, + "success": true + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: + {"event":{"id":4,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/tsconfig.json: + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +PolledWatches *deleted*:: +/home/src/myproject/src/old.ts: + {"event":{"id":3,"path":"/home/src/myproject/src/old.ts"}} + +FsWatchesRecursive:: +/home/src/myproject: + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules/@types: + {"event":{"id":5,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/old.ts (Open) *changed* + open: true *changed* + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* + +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src/old.ts deleted +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src/new.ts created +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src/new.ts updated +Custom watchDirectory:: Triggered Ignored:: {"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}:: /home/src/myproject/src updated +Before request +//// [/home/src/myproject/src/new.ts] +export const x = 10; + +//// [/home/src/myproject/src/old.ts] deleted + +Info seq [hh:mm:ss:mss] request: + { + "command": "close", + "arguments": { + "file": "/home/src/myproject/src/old.ts" + }, + "seq": 3, + "type": "request" + } +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles* +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "seq": 0, + "type": "response", + "command": "close", + "request_seq": 3, + "success": true + } +After request + +Timeout callback:: count: 2 +1: /home/src/myproject/tsconfig.json *new* +2: *ensureProjectForOpenFiles* *new* + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 2 *changed* + projectProgramVersion: 1 + dirty: true *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/old.ts *deleted* + open: false *changed* + version: Text-1 + containingProjects: 0 *changed* + /home/src/myproject/tsconfig.json *deleted* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "open", + "arguments": { + "file": "/home/src/myproject/src/new.ts", + "projectRootPath": "/home/src/myproject", + "fileContent": "export const x = 10;" + }, + "seq": 4, + "type": "request" + } +Info seq [hh:mm:ss:mss] Invoking /home/src/myproject/tsconfig.json:: wildcard for open scriptInfo:: /home/src/myproject/src/new.ts +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/src/myproject/src/new.ts ProjectRootPath: /home/src/myproject:: Result: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/src 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 6, + "path": "/home/src/myproject/src", + "recursive": true, + "ignoreUpdate": true + } + } +Custom watchDirectory:: Added:: {"id":6,"path":"/home/src/myproject/src","recursive":true,"ignoreUpdate":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/src 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createDirectoryWatcher", + "body": { + "id": 7, + "path": "/home/src/myproject/node_modules", + "recursive": true + } + } +Custom watchDirectory:: Added:: {"id":7,"path":"/home/src/myproject/node_modules","recursive":true} +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/myproject/node_modules 1 undefined Project: /home/src/myproject/tsconfig.json WatchType: Failed Lookup Locations +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/myproject/tsconfig.json projectStateVersion: 2 projectProgramVersion: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Project '/home/src/myproject/tsconfig.json' (Configured) +Info seq [hh:mm:ss:mss] Files (3) + /a/lib/lib.d.ts Text-1 "/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }" + /home/src/myproject/src/index.ts SVC-1-0 "import {} from '@/old';" + /home/src/myproject/src/new.ts SVC-1-0 "export const x = 10;" + + + ../../../a/lib/lib.d.ts + Default library for target 'es5' + src/index.ts + Matched by default include pattern '**/*' + src/new.ts + Matched by default include pattern '**/*' + +Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] FileName: /home/src/myproject/src/new.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "seq": 0, + "type": "response", + "command": "open", + "request_seq": 4, + "success": true, + "performanceData": { + "updateGraphDurationMs": * + } + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: + {"event":{"id":4,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/tsconfig.json: + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +FsWatchesRecursive:: +/home/src/myproject: + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules: *new* + {"event":{"id":7,"path":"/home/src/myproject/node_modules","recursive":true}} +/home/src/myproject/node_modules/@types: + {"event":{"id":5,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/src: *new* + {"event":{"id":6,"path":"/home/src/myproject/src","recursive":true,"ignoreUpdate":true}} + +Timeout callback:: count: 2 +1: /home/src/myproject/tsconfig.json *deleted* +2: *ensureProjectForOpenFiles* *deleted* +3: /home/src/myproject/tsconfig.json *new* +4: *ensureProjectForOpenFiles* *new* + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 2 + projectProgramVersion: 2 *changed* + dirty: false *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts (Open) *new* + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "getEditsForFileRename", + "arguments": { + "oldFilePath": "/home/src/myproject/src/old.ts", + "newFilePath": "/home/src/myproject/src/new.ts" + }, + "seq": 5, + "type": "request" + } +Info seq [hh:mm:ss:mss] response: + { + "response": [ + { + "fileName": "/home/src/myproject/src/index.ts", + "textChanges": [ + { + "start": { + "line": 1, + "offset": 17 + }, + "end": { + "line": 1, + "offset": 22 + }, + "newText": "@/new" + } + ] + } + ], + "responseRequired": true + } +After request + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 2 + projectProgramVersion: 2 + documentPositionMappers: 1 *changed* + /a/lib/lib.d.ts: identitySourceMapConsumer *new* + +ScriptInfos:: +/a/lib/lib.d.ts *changed* + version: Text-1 + sourceMapFilePath: false *changed* + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "watchChange", + "arguments": { + "id": 2, + "deleted": [ + "/home/src/myproject/src/old.ts" + ], + "created": [ + "/home/src/myproject/src/new.ts" + ] + }, + "seq": 6, + "type": "request" + } +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /home/src/myproject/src/new.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/myproject/src/new.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /home/src/myproject/src/old.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] Scheduled: /home/src/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/myproject/src/old.ts :: WatchInfo: /home/src/myproject 1 undefined Config: /home/src/myproject/tsconfig.json WatchType: Wild card directory +After request + +Timeout callback:: count: 2 +3: /home/src/myproject/tsconfig.json *deleted* +4: *ensureProjectForOpenFiles* *deleted* +5: /home/src/myproject/tsconfig.json *new* +6: *ensureProjectForOpenFiles* *new* + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 3 *changed* + projectProgramVersion: 2 + dirty: true *changed* + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "close", + "arguments": { + "file": "/home/src/myproject/src/new.ts" + }, + "seq": 7, + "type": "request" + } +Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/myproject/src/new.ts 500 undefined WatchType: Closed Script info +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "createFileWatcher", + "body": { + "id": 8, + "path": "/home/src/myproject/src/new.ts" + } + } +Custom watchFile:: Added:: {"id":8,"path":"/home/src/myproject/src/new.ts"} +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] response: + { + "seq": 0, + "type": "response", + "command": "close", + "request_seq": 7, + "success": true + } +After request + +PolledWatches:: +/a/lib/lib.d.ts: + {"event":{"id":4,"path":"/a/lib/lib.d.ts"}} +/home/src/myproject/src/new.ts: *new* + {"event":{"id":8,"path":"/home/src/myproject/src/new.ts"}} +/home/src/myproject/tsconfig.json: + {"event":{"id":1,"path":"/home/src/myproject/tsconfig.json"}} + +FsWatchesRecursive:: +/home/src/myproject: + {"event":{"id":2,"path":"/home/src/myproject","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/node_modules: + {"event":{"id":7,"path":"/home/src/myproject/node_modules","recursive":true}} +/home/src/myproject/node_modules/@types: + {"event":{"id":5,"path":"/home/src/myproject/node_modules/@types","recursive":true,"ignoreUpdate":true}} +/home/src/myproject/src: + {"event":{"id":6,"path":"/home/src/myproject/src","recursive":true,"ignoreUpdate":true}} + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + sourceMapFilePath: false + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts *changed* + open: false *changed* + version: SVC-1-0 + pendingReloadFromDisk: true *changed* + containingProjects: 1 + /home/src/myproject/tsconfig.json + +Before request + +Info seq [hh:mm:ss:mss] request: + { + "command": "geterr", + "arguments": { + "delay": 0, + "files": [ + "/home/src/myproject/src/index.ts" + ] + }, + "seq": 8, + "type": "request" + } +After request + +Timeout callback:: count: 3 +5: /home/src/myproject/tsconfig.json +6: *ensureProjectForOpenFiles* +7: checkOne *new* + +Before running Timeout callback:: count: 3 +5: /home/src/myproject/tsconfig.json +6: *ensureProjectForOpenFiles* +7: checkOne + +Info seq [hh:mm:ss:mss] Running: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/myproject/tsconfig.json projectStateVersion: 3 projectProgramVersion: 2 structureChanged: false structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Same program as before +Info seq [hh:mm:ss:mss] Running: *ensureProjectForOpenFiles* +Info seq [hh:mm:ss:mss] Before ensureProjectForOpenFiles: +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] After ensureProjectForOpenFiles: +Info seq [hh:mm:ss:mss] Project '/home/src/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: /home/src/myproject/src/index.ts ProjectRootPath: /home/src/myproject +Info seq [hh:mm:ss:mss] Projects: /home/src/myproject/tsconfig.json +Info seq [hh:mm:ss:mss] got projects updated in background /home/src/myproject/src/index.ts +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "projectsUpdatedInBackground", + "body": { + "openFiles": [ + "/home/src/myproject/src/index.ts" + ] + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "syntaxDiag", + "body": { + "file": "/home/src/myproject/src/index.ts", + "diagnostics": [] + } + } +After running Timeout callback:: count: 0 + +Immedidate callback:: count: 1 +1: semanticCheck *new* + +Projects:: +/home/src/myproject/tsconfig.json (Configured) *changed* + projectStateVersion: 3 + projectProgramVersion: 2 + dirty: false *changed* + +ScriptInfos:: +/a/lib/lib.d.ts + version: Text-1 + sourceMapFilePath: false + containingProjects: 1 + /home/src/myproject/tsconfig.json +/home/src/myproject/src/index.ts (Open) + version: SVC-1-0 + containingProjects: 1 + /home/src/myproject/tsconfig.json *default* +/home/src/myproject/src/new.ts *changed* + version: SVC-1-0 + pendingReloadFromDisk: false *changed* + containingProjects: 1 + /home/src/myproject/tsconfig.json + +Before running Immedidate callback:: count: 1 +1: semanticCheck + +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "semanticDiag", + "body": { + "file": "/home/src/myproject/src/index.ts", + "diagnostics": [ + { + "start": { + "line": 1, + "offset": 16 + }, + "end": { + "line": 1, + "offset": 23 + }, + "text": "Cannot find module '@/old' or its corresponding type declarations.", + "code": 2307, + "category": "error" + } + ] + } + } +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": "/home/src/myproject/src/index.ts", + "diagnostics": [] + } + } +Info seq [hh:mm:ss:mss] event: + { + "seq": 0, + "type": "event", + "event": "requestCompleted", + "body": { + "request_seq": 8, + "performanceData": { + "diagnosticsDuration": [ + { + "syntaxDiag": *, + "semanticDiag": *, + "suggestionDiag": *, + "file": "/home/src/myproject/src/index.ts" + } + ] + } + } + } +After running Immedidate callback:: count: 0 diff --git a/tests/baselines/reference/tsserver/inferredProjects/should-still-retain-configured-project-created-while-opening-the-file.js b/tests/baselines/reference/tsserver/inferredProjects/should-still-retain-configured-project-created-while-opening-the-file.js index 7f0c79f1084..77174ec907f 100644 --- a/tests/baselines/reference/tsserver/inferredProjects/should-still-retain-configured-project-created-while-opening-the-file.js +++ b/tests/baselines/reference/tsserver/inferredProjects/should-still-retain-configured-project-created-while-opening-the-file.js @@ -475,6 +475,8 @@ Info seq [hh:mm:ss:mss] request: "seq": 3, "type": "request" } +Info seq [hh:mm:ss:mss] Invoking /user/username/projects/myproject/tsconfig.json:: wildcard for open scriptInfo:: /user/username/projects/myproject/jsFile2.js +Info seq [hh:mm:ss:mss] Project: /user/username/projects/myproject/tsconfig.json Detected file add/remove of non supported extension: /user/username/projects/myproject/jsFile2.js Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/jsFile2.js ProjectRootPath: undefined:: Result: /user/username/projects/myproject/tsconfig.json Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/tsconfig.json ProjectRootPath: undefined:: Result: undefined Info seq [hh:mm:ss:mss] event: @@ -682,6 +684,8 @@ Info seq [hh:mm:ss:mss] request: "seq": 4, "type": "request" } +Info seq [hh:mm:ss:mss] Invoking /user/username/projects/myproject/tsconfig.json:: wildcard for open scriptInfo:: /user/username/projects/myproject/jsFile1.js +Info seq [hh:mm:ss:mss] Project: /user/username/projects/myproject/tsconfig.json Detected file add/remove of non supported extension: /user/username/projects/myproject/jsFile1.js Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/jsFile1.js ProjectRootPath: undefined:: Result: /user/username/projects/myproject/tsconfig.json Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/username/projects/myproject/tsconfig.json ProjectRootPath: undefined:: Result: undefined Info seq [hh:mm:ss:mss] event: diff --git a/tests/baselines/reference/tsserver/openfile/uses-existing-project-even-if-project-refresh-is-pending.js b/tests/baselines/reference/tsserver/openfile/uses-existing-project-even-if-project-refresh-is-pending.js index 1e5f3c478eb..9e47bd56560 100644 --- a/tests/baselines/reference/tsserver/openfile/uses-existing-project-even-if-project-refresh-is-pending.js +++ b/tests/baselines/reference/tsserver/openfile/uses-existing-project-even-if-project-refresh-is-pending.js @@ -214,6 +214,9 @@ Info seq [hh:mm:ss:mss] request: "seq": 2, "type": "request" } +Info seq [hh:mm:ss:mss] Invoking /user/someuser/projects/myproject/tsconfig.json:: wildcard for open scriptInfo:: /user/someuser/projects/myproject/src/b.ts +Info seq [hh:mm:ss:mss] Scheduled: /user/someuser/projects/myproject/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /user/someuser/projects/myproject/src/b.ts ProjectRootPath: /user/someuser/projects/myproject:: Result: /user/someuser/projects/myproject/tsconfig.json Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /user/someuser/projects/myproject/tsconfig.json Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /user/someuser/projects/myproject/tsconfig.json projectStateVersion: 2 projectProgramVersion: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms @@ -254,6 +257,12 @@ Info seq [hh:mm:ss:mss] response: } After request +Timeout callback:: count: 2 +1: /user/someuser/projects/myproject/tsconfig.json *deleted* +2: *ensureProjectForOpenFiles* *deleted* +3: /user/someuser/projects/myproject/tsconfig.json *new* +4: *ensureProjectForOpenFiles* *new* + Projects:: /user/someuser/projects/myproject/tsconfig.json (Configured) *changed* projectStateVersion: 2 diff --git a/tests/baselines/reference/tsserver/projectErrors/file-rename-on-wsl2.js b/tests/baselines/reference/tsserver/projectErrors/file-rename-on-wsl2.js index 1383cf14357..e2f14e34bd7 100644 --- a/tests/baselines/reference/tsserver/projectErrors/file-rename-on-wsl2.js +++ b/tests/baselines/reference/tsserver/projectErrors/file-rename-on-wsl2.js @@ -269,92 +269,37 @@ Info seq [hh:mm:ss:mss] request: "seq": 2, "type": "request" } +Info seq [hh:mm:ss:mss] Invoking /home/username/project/tsconfig.json:: wildcard for open scriptInfo:: /home/username/project/src/c.ts +Info seq [hh:mm:ss:mss] Scheduled: /home/username/project/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/username/project/src/c.ts ProjectRootPath: /home/username/project:: Result: /home/username/project/tsconfig.json Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/username/project/tsconfig.json -Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/username/project/src/b.ts 500 undefined Project: /home/username/project/tsconfig.json WatchType: Missing file Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/username/project/tsconfig.json projectStateVersion: 2 projectProgramVersion: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms Info seq [hh:mm:ss:mss] Project '/home/username/project/tsconfig.json' (Configured) -Info seq [hh:mm:ss:mss] Files (2) +Info seq [hh:mm:ss:mss] Files (3) /a/lib/lib.d.ts Text-1 "/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }" /home/username/project/src/a.ts SVC-1-0 "export const a = 10;" + /home/username/project/src/c.ts SVC-1-0 "export const b = 10;" ../../../a/lib/lib.d.ts Default library for target 'es5' src/a.ts Matched by include pattern 'src/**/*.ts' in 'tsconfig.json' - -Info seq [hh:mm:ss:mss] ----------------------------------------------- -Info seq [hh:mm:ss:mss] event: - { - "seq": 0, - "type": "event", - "event": "configFileDiag", - "body": { - "triggerFile": "/home/username/project/src/c.ts", - "configFile": "/home/username/project/tsconfig.json", - "diagnostics": [ - { - "text": "File '/home/username/project/src/b.ts' not found.\n The file is in the program because:\n Matched by include pattern 'src/**/*.ts' in '/home/username/project/tsconfig.json'", - "code": 6053, - "category": "error", - "relatedInformation": [ - { - "span": { - "start": { - "line": 6, - "offset": 5 - }, - "end": { - "line": 6, - "offset": 18 - }, - "file": "/home/username/project/tsconfig.json" - }, - "message": "File is matched by include pattern specified here.", - "category": "message", - "code": 1408 - } - ] - } - ] - } - } -Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /home/username/project/tsconfig.json ProjectRootPath: /home/username/project:: Result: undefined -Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/username/project/src/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root -Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/username/project/src/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root -Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /dev/null/inferredProject1* -Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/username/project/src/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots -Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/username/project/src/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots -Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/username/project/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots -Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/username/project/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots -Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /dev/null/inferredProject1* projectStateVersion: 1 projectProgramVersion: 0 structureChanged: true structureIsReused:: Not Elapsed:: *ms -Info seq [hh:mm:ss:mss] Project '/dev/null/inferredProject1*' (Inferred) -Info seq [hh:mm:ss:mss] Files (2) - /a/lib/lib.d.ts Text-1 "/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }" - /home/username/project/src/c.ts SVC-1-0 "export const b = 10;" - - - ../../../../a/lib/lib.d.ts - Default library for target 'es5' - c.ts - Root file specified for compilation + src/c.ts + Matched by include pattern 'src/**/*.ts' in 'tsconfig.json' Info seq [hh:mm:ss:mss] ----------------------------------------------- Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /home/username/project/src/b.ts 500 undefined WatchType: Closed Script info Info seq [hh:mm:ss:mss] Project '/home/username/project/tsconfig.json' (Configured) -Info seq [hh:mm:ss:mss] Files (2) - -Info seq [hh:mm:ss:mss] ----------------------------------------------- -Info seq [hh:mm:ss:mss] Project '/dev/null/inferredProject1*' (Inferred) -Info seq [hh:mm:ss:mss] Files (2) +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: /home/username/project/src/a.ts ProjectRootPath: /home/username/project Info seq [hh:mm:ss:mss] Projects: /home/username/project/tsconfig.json Info seq [hh:mm:ss:mss] FileName: /home/username/project/src/c.ts ProjectRootPath: /home/username/project -Info seq [hh:mm:ss:mss] Projects: /dev/null/inferredProject1* +Info seq [hh:mm:ss:mss] Projects: /home/username/project/tsconfig.json Info seq [hh:mm:ss:mss] response: { "seq": 0, @@ -371,14 +316,10 @@ After request PolledWatches:: /home/username/project/node_modules/@types: {"pollingInterval":500} + +PolledWatches *deleted*:: /home/username/project/src/b.ts: {"pollingInterval":500} -/home/username/project/src/jsconfig.json: *new* - {"pollingInterval":2000} -/home/username/project/src/node_modules/@types: *new* - {"pollingInterval":500} -/home/username/project/src/tsconfig.json: *new* - {"pollingInterval":2000} FsWatches:: /a/lib/lib.d.ts: @@ -388,21 +329,24 @@ FsWatches:: /home/username/project/tsconfig.json: {"inode":7} +Timeout callback:: count: 3 +1: /home/username/project/tsconfig.json *deleted* +2: *ensureProjectForOpenFiles* *deleted* +4: timerToUpdateChildWatches +5: /home/username/project/tsconfig.json *new* +6: *ensureProjectForOpenFiles* *new* + Projects:: -/dev/null/inferredProject1* (Inferred) *new* - projectStateVersion: 1 - projectProgramVersion: 1 /home/username/project/tsconfig.json (Configured) *changed* projectStateVersion: 2 projectProgramVersion: 2 *changed* dirty: false *changed* ScriptInfos:: -/a/lib/lib.d.ts *changed* +/a/lib/lib.d.ts version: Text-1 - containingProjects: 2 *changed* + containingProjects: 1 /home/username/project/tsconfig.json - /dev/null/inferredProject1* *new* /home/username/project/src/a.ts (Open) version: SVC-1-0 containingProjects: 1 @@ -415,77 +359,31 @@ ScriptInfos:: /home/username/project/src/c.ts (Open) *new* version: SVC-1-0 containingProjects: 1 - /dev/null/inferredProject1* *default* + /home/username/project/tsconfig.json *default* Before running Timeout callback:: count: 3 -1: /home/username/project/tsconfig.json -2: *ensureProjectForOpenFiles* 4: timerToUpdateChildWatches +5: /home/username/project/tsconfig.json +6: *ensureProjectForOpenFiles* -Info seq [hh:mm:ss:mss] Running: /home/username/project/tsconfig.json -Info seq [hh:mm:ss:mss] Running: *ensureProjectForOpenFiles* -Info seq [hh:mm:ss:mss] Before ensureProjectForOpenFiles: -Info seq [hh:mm:ss:mss] Project '/home/username/project/tsconfig.json' (Configured) -Info seq [hh:mm:ss:mss] Files (2) - -Info seq [hh:mm:ss:mss] ----------------------------------------------- -Info seq [hh:mm:ss:mss] Project '/dev/null/inferredProject1*' (Inferred) -Info seq [hh:mm:ss:mss] Files (2) - -Info seq [hh:mm:ss:mss] ----------------------------------------------- -Info seq [hh:mm:ss:mss] Open files: -Info seq [hh:mm:ss:mss] FileName: /home/username/project/src/a.ts ProjectRootPath: /home/username/project -Info seq [hh:mm:ss:mss] Projects: /home/username/project/tsconfig.json -Info seq [hh:mm:ss:mss] FileName: /home/username/project/src/c.ts ProjectRootPath: /home/username/project -Info seq [hh:mm:ss:mss] Projects: /dev/null/inferredProject1* -Info seq [hh:mm:ss:mss] After ensureProjectForOpenFiles: -Info seq [hh:mm:ss:mss] Project '/home/username/project/tsconfig.json' (Configured) -Info seq [hh:mm:ss:mss] Files (2) - -Info seq [hh:mm:ss:mss] ----------------------------------------------- -Info seq [hh:mm:ss:mss] Project '/dev/null/inferredProject1*' (Inferred) -Info seq [hh:mm:ss:mss] Files (2) - -Info seq [hh:mm:ss:mss] ----------------------------------------------- -Info seq [hh:mm:ss:mss] Open files: -Info seq [hh:mm:ss:mss] FileName: /home/username/project/src/a.ts ProjectRootPath: /home/username/project -Info seq [hh:mm:ss:mss] Projects: /home/username/project/tsconfig.json -Info seq [hh:mm:ss:mss] FileName: /home/username/project/src/c.ts ProjectRootPath: /home/username/project -Info seq [hh:mm:ss:mss] Projects: /dev/null/inferredProject1* -Info seq [hh:mm:ss:mss] got projects updated in background /home/username/project/src/a.ts,/home/username/project/src/c.ts -Info seq [hh:mm:ss:mss] event: - { - "seq": 0, - "type": "event", - "event": "projectsUpdatedInBackground", - "body": { - "openFiles": [ - "/home/username/project/src/a.ts", - "/home/username/project/src/c.ts" - ] - } - } Info seq [hh:mm:ss:mss] sysLog:: onTimerToUpdateChildWatches:: 1 Info seq [hh:mm:ss:mss] sysLog:: invokingWatchers:: Elapsed:: *ms:: 0 Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /home/username/project/src/b.ts 0:: WatchInfo: /home/username/project/src 1 undefined Config: /home/username/project/tsconfig.json WatchType: Wild card directory -Info seq [hh:mm:ss:mss] Scheduled: /home/username/project/tsconfig.json -Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles* -Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /home/username/project/src/b.ts 0:: WatchInfo: /home/username/project/src 1 undefined Config: /home/username/project/tsconfig.json WatchType: Wild card directory -Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /home/username/project/src/c.ts 1:: WatchInfo: /home/username/project/src 1 undefined Config: /home/username/project/tsconfig.json WatchType: Wild card directory Info seq [hh:mm:ss:mss] Scheduled: /home/username/project/tsconfig.json, Cancelled earlier one Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one +Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /home/username/project/src/b.ts 0:: WatchInfo: /home/username/project/src 1 undefined Config: /home/username/project/tsconfig.json WatchType: Wild card directory +Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /home/username/project/src/c.ts 1:: WatchInfo: /home/username/project/src 1 undefined Config: /home/username/project/tsconfig.json WatchType: Wild card directory Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /home/username/project/src/c.ts 1:: WatchInfo: /home/username/project/src 1 undefined Config: /home/username/project/tsconfig.json WatchType: Wild card directory Info seq [hh:mm:ss:mss] sysLog:: Elapsed:: *ms:: onTimerToUpdateChildWatches:: 0 undefined After running Timeout callback:: count: 2 Timeout callback:: count: 2 +5: /home/username/project/tsconfig.json *deleted* +6: *ensureProjectForOpenFiles* *deleted* 7: /home/username/project/tsconfig.json *new* 8: *ensureProjectForOpenFiles* *new* Projects:: -/dev/null/inferredProject1* (Inferred) - projectStateVersion: 1 - projectProgramVersion: 1 /home/username/project/tsconfig.json (Configured) *changed* projectStateVersion: 3 *changed* projectProgramVersion: 2 @@ -496,68 +394,24 @@ Before running Timeout callback:: count: 2 8: *ensureProjectForOpenFiles* Info seq [hh:mm:ss:mss] Running: /home/username/project/tsconfig.json -Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /home/username/project/src/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root -Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /home/username/project/src/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/username/project/tsconfig.json -Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /home/username/project/src/b.ts 500 undefined Project: /home/username/project/tsconfig.json WatchType: Missing file -Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/username/project/tsconfig.json projectStateVersion: 3 projectProgramVersion: 2 structureChanged: true structureIsReused:: Not Elapsed:: *ms -Info seq [hh:mm:ss:mss] Project '/home/username/project/tsconfig.json' (Configured) -Info seq [hh:mm:ss:mss] Files (3) - /a/lib/lib.d.ts Text-1 "/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }" - /home/username/project/src/a.ts SVC-1-0 "export const a = 10;" - /home/username/project/src/c.ts SVC-1-0 "export const b = 10;" - - - ../../../a/lib/lib.d.ts - Default library for target 'es5' - src/a.ts - Matched by include pattern 'src/**/*.ts' in 'tsconfig.json' - src/c.ts - Matched by include pattern 'src/**/*.ts' in 'tsconfig.json' - -Info seq [hh:mm:ss:mss] ----------------------------------------------- -Info seq [hh:mm:ss:mss] event: - { - "seq": 0, - "type": "event", - "event": "configFileDiag", - "body": { - "triggerFile": "/home/username/project/tsconfig.json", - "configFile": "/home/username/project/tsconfig.json", - "diagnostics": [] - } - } +Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/username/project/tsconfig.json projectStateVersion: 3 projectProgramVersion: 2 structureChanged: false structureIsReused:: Not Elapsed:: *ms +Info seq [hh:mm:ss:mss] Same program as before Info seq [hh:mm:ss:mss] Running: *ensureProjectForOpenFiles* Info seq [hh:mm:ss:mss] Before ensureProjectForOpenFiles: Info seq [hh:mm:ss:mss] Project '/home/username/project/tsconfig.json' (Configured) Info seq [hh:mm:ss:mss] Files (3) -Info seq [hh:mm:ss:mss] ----------------------------------------------- -Info seq [hh:mm:ss:mss] Project '/dev/null/inferredProject1*' (Inferred) -Info seq [hh:mm:ss:mss] Files (2) - Info seq [hh:mm:ss:mss] ----------------------------------------------- Info seq [hh:mm:ss:mss] Open files: Info seq [hh:mm:ss:mss] FileName: /home/username/project/src/a.ts ProjectRootPath: /home/username/project Info seq [hh:mm:ss:mss] Projects: /home/username/project/tsconfig.json Info seq [hh:mm:ss:mss] FileName: /home/username/project/src/c.ts ProjectRootPath: /home/username/project Info seq [hh:mm:ss:mss] Projects: /home/username/project/tsconfig.json -Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /dev/null/inferredProject1* -Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /dev/null/inferredProject1* projectStateVersion: 2 projectProgramVersion: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms -Info seq [hh:mm:ss:mss] Project '/dev/null/inferredProject1*' (Inferred) -Info seq [hh:mm:ss:mss] Files (0) - - - -Info seq [hh:mm:ss:mss] ----------------------------------------------- Info seq [hh:mm:ss:mss] After ensureProjectForOpenFiles: Info seq [hh:mm:ss:mss] Project '/home/username/project/tsconfig.json' (Configured) Info seq [hh:mm:ss:mss] Files (3) -Info seq [hh:mm:ss:mss] ----------------------------------------------- -Info seq [hh:mm:ss:mss] Project '/dev/null/inferredProject1*' (Inferred) -Info seq [hh:mm:ss:mss] Files (0) - Info seq [hh:mm:ss:mss] ----------------------------------------------- Info seq [hh:mm:ss:mss] Open files: Info seq [hh:mm:ss:mss] FileName: /home/username/project/src/a.ts ProjectRootPath: /home/username/project @@ -579,54 +433,12 @@ Info seq [hh:mm:ss:mss] event: } After running Timeout callback:: count: 0 -PolledWatches:: -/home/username/project/node_modules/@types: - {"pollingInterval":500} -/home/username/project/src/node_modules/@types: - {"pollingInterval":500} - -PolledWatches *deleted*:: -/home/username/project/src/b.ts: - {"pollingInterval":500} -/home/username/project/src/jsconfig.json: - {"pollingInterval":2000} -/home/username/project/src/tsconfig.json: - {"pollingInterval":2000} - -FsWatches:: -/a/lib/lib.d.ts: - {"inode":10} -/home/username/project/src: - {"inode":4} -/home/username/project/tsconfig.json: - {"inode":7} - Projects:: -/dev/null/inferredProject1* (Inferred) *changed* - projectStateVersion: 2 *changed* - projectProgramVersion: 2 *changed* - isOrphan: true *changed* /home/username/project/tsconfig.json (Configured) *changed* projectStateVersion: 3 - projectProgramVersion: 3 *changed* + projectProgramVersion: 2 dirty: false *changed* -ScriptInfos:: -/a/lib/lib.d.ts *changed* - version: Text-1 - containingProjects: 1 *changed* - /home/username/project/tsconfig.json - /dev/null/inferredProject1* *deleted* -/home/username/project/src/a.ts (Open) - version: SVC-1-0 - containingProjects: 1 - /home/username/project/tsconfig.json *default* -/home/username/project/src/c.ts (Open) *changed* - version: SVC-1-0 - containingProjects: 1 *changed* - /home/username/project/tsconfig.json *default* *new* - /dev/null/inferredProject1* *deleted* - Before request Info seq [hh:mm:ss:mss] request: @@ -642,10 +454,6 @@ Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/username/project Info seq [hh:mm:ss:mss] Project '/home/username/project/tsconfig.json' (Configured) Info seq [hh:mm:ss:mss] Files (3) -Info seq [hh:mm:ss:mss] ----------------------------------------------- -Info seq [hh:mm:ss:mss] Project '/dev/null/inferredProject1*' (Inferred) -Info seq [hh:mm:ss:mss] Files (0) - Info seq [hh:mm:ss:mss] ----------------------------------------------- Info seq [hh:mm:ss:mss] Open files: Info seq [hh:mm:ss:mss] FileName: /home/username/project/src/a.ts ProjectRootPath: /home/username/project @@ -663,8 +471,6 @@ After request PolledWatches:: /home/username/project/node_modules/@types: {"pollingInterval":500} -/home/username/project/src/node_modules/@types: - {"pollingInterval":500} FsWatches:: /a/lib/lib.d.ts: @@ -677,13 +483,9 @@ FsWatches:: {"inode":7} Projects:: -/dev/null/inferredProject1* (Inferred) - projectStateVersion: 2 - projectProgramVersion: 2 - isOrphan: true /home/username/project/tsconfig.json (Configured) *changed* projectStateVersion: 4 *changed* - projectProgramVersion: 3 + projectProgramVersion: 2 dirty: true *changed* ScriptInfos:: diff --git a/tests/baselines/reference/tsserver/projects/handles-delayed-directory-watch-invoke-on-file-creation.js b/tests/baselines/reference/tsserver/projects/handles-delayed-directory-watch-invoke-on-file-creation.js index 209ff035d7f..ad74a6b9f1d 100644 --- a/tests/baselines/reference/tsserver/projects/handles-delayed-directory-watch-invoke-on-file-creation.js +++ b/tests/baselines/reference/tsserver/projects/handles-delayed-directory-watch-invoke-on-file-creation.js @@ -358,6 +358,9 @@ Info seq [hh:mm:ss:mss] request: "seq": 4, "type": "request" } +Info seq [hh:mm:ss:mss] Invoking /users/username/projects/project/tsconfig.json:: wildcard for open scriptInfo:: /users/username/projects/project/a.ts +Info seq [hh:mm:ss:mss] Scheduled: /users/username/projects/project/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /users/username/projects/project/a.ts ProjectRootPath: /users/username/projects/project:: Result: /users/username/projects/project/tsconfig.json Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /users/username/projects/project/tsconfig.json Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /users/username/projects/project/tsconfig.json projectStateVersion: 2 projectProgramVersion: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms @@ -398,6 +401,12 @@ Info seq [hh:mm:ss:mss] response: } After request +Timeout callback:: count: 2 +5: /users/username/projects/project/tsconfig.json *deleted* +6: *ensureProjectForOpenFiles* *deleted* +7: /users/username/projects/project/tsconfig.json *new* +8: *ensureProjectForOpenFiles* *new* + Projects:: /users/username/projects/project/tsconfig.json (Configured) *changed* projectStateVersion: 2 @@ -419,8 +428,8 @@ ScriptInfos:: /users/username/projects/project/tsconfig.json *default* Before running Timeout callback:: count: 2 -5: /users/username/projects/project/tsconfig.json -6: *ensureProjectForOpenFiles* +7: /users/username/projects/project/tsconfig.json +8: *ensureProjectForOpenFiles* Info seq [hh:mm:ss:mss] Running: /users/username/projects/project/tsconfig.json Info seq [hh:mm:ss:mss] Running: *ensureProjectForOpenFiles* @@ -490,8 +499,8 @@ Info seq [hh:mm:ss:mss] response: After request Timeout callback:: count: 2 -7: /users/username/projects/project/tsconfig.json *new* -8: *ensureProjectForOpenFiles* *new* +9: /users/username/projects/project/tsconfig.json *new* +10: *ensureProjectForOpenFiles* *new* Projects:: /users/username/projects/project/tsconfig.json (Configured) *changed* @@ -526,9 +535,11 @@ Info seq [hh:mm:ss:mss] request: "seq": 6, "type": "request" } +Info seq [hh:mm:ss:mss] Invoking /users/username/projects/project/tsconfig.json:: wildcard for open scriptInfo:: /users/username/projects/project/sub/a.ts +Info seq [hh:mm:ss:mss] Scheduled: /users/username/projects/project/tsconfig.json, Cancelled earlier one +Info seq [hh:mm:ss:mss] Scheduled: *ensureProjectForOpenFiles*, Cancelled earlier one Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /users/username/projects/project/sub/a.ts ProjectRootPath: /users/username/projects/project:: Result: /users/username/projects/project/tsconfig.json Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /users/username/projects/project/tsconfig.json -Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/project/a.ts 500 undefined Project: /users/username/projects/project/tsconfig.json WatchType: Missing file Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /users/username/projects/project/tsconfig.json projectStateVersion: 3 projectProgramVersion: 2 structureChanged: true structureIsReused:: Not Elapsed:: *ms Info seq [hh:mm:ss:mss] Project '/users/username/projects/project/tsconfig.json' (Configured) Info seq [hh:mm:ss:mss] Files (2) @@ -542,6 +553,7 @@ Info seq [hh:mm:ss:mss] Files (2) Matched by default include pattern '**/*' Info seq [hh:mm:ss:mss] ----------------------------------------------- +Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /users/username/projects/project/tsconfig.json ProjectRootPath: /users/username/projects/project:: Result: undefined Info seq [hh:mm:ss:mss] event: { "seq": 0, @@ -550,16 +562,9 @@ Info seq [hh:mm:ss:mss] event: "body": { "triggerFile": "/users/username/projects/project/sub/a.ts", "configFile": "/users/username/projects/project/tsconfig.json", - "diagnostics": [ - { - "text": "File '/users/username/projects/project/a.ts' not found.\n The file is in the program because:\n Matched by default include pattern '**/*'", - "code": 6053, - "category": "error" - } - ] + "diagnostics": [] } } -Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /users/username/projects/project/tsconfig.json ProjectRootPath: /users/username/projects/project:: Result: undefined Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/project/sub/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/project/sub/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/project/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root @@ -612,8 +617,6 @@ After request PolledWatches:: /users/username/projects/node_modules/@types: {"pollingInterval":500} -/users/username/projects/project/a.ts: *new* - {"pollingInterval":500} /users/username/projects/project/jsconfig.json: *new* {"pollingInterval":2000} /users/username/projects/project/node_modules/@types: @@ -635,6 +638,12 @@ FsWatchesRecursive:: /users/username/projects/project: {} +Timeout callback:: count: 2 +9: /users/username/projects/project/tsconfig.json *deleted* +10: *ensureProjectForOpenFiles* *deleted* +11: /users/username/projects/project/tsconfig.json *new* +12: *ensureProjectForOpenFiles* *new* + Projects:: /dev/null/inferredProject1* (Inferred) *new* projectStateVersion: 1 @@ -660,8 +669,8 @@ ScriptInfos:: /dev/null/inferredProject1* *default* Before running Timeout callback:: count: 2 -7: /users/username/projects/project/tsconfig.json -8: *ensureProjectForOpenFiles* +11: /users/username/projects/project/tsconfig.json +12: *ensureProjectForOpenFiles* Info seq [hh:mm:ss:mss] Running: /users/username/projects/project/tsconfig.json Info seq [hh:mm:ss:mss] Running: *ensureProjectForOpenFiles* @@ -727,8 +736,8 @@ export const a = 10; //// [/users/username/projects/project/a.ts] deleted Timeout callback:: count: 2 -13: /users/username/projects/project/tsconfig.json *new* -14: *ensureProjectForOpenFiles* *new* +17: /users/username/projects/project/tsconfig.json *new* +18: *ensureProjectForOpenFiles* *new* Projects:: /dev/null/inferredProject1* (Inferred) @@ -755,21 +764,20 @@ Info seq [hh:mm:ss:mss] request: After request Timeout callback:: count: 3 -13: /users/username/projects/project/tsconfig.json -14: *ensureProjectForOpenFiles* -15: checkOne *new* +17: /users/username/projects/project/tsconfig.json +18: *ensureProjectForOpenFiles* +19: checkOne *new* Before running Timeout callback:: count: 3 -13: /users/username/projects/project/tsconfig.json -14: *ensureProjectForOpenFiles* -15: checkOne +17: /users/username/projects/project/tsconfig.json +18: *ensureProjectForOpenFiles* +19: checkOne -Invoking Timeout callback:: timeoutId:: 15:: checkOne +Invoking Timeout callback:: timeoutId:: 19:: checkOne Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /users/username/projects/project/sub/tsconfig.json 2000 undefined WatchType: Config file for the inferred project root Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /users/username/projects/project/sub/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /users/username/projects/project/jsconfig.json 2000 undefined WatchType: Config file for the inferred project root Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /users/username/projects/project/tsconfig.json -Info seq [hh:mm:ss:mss] FileWatcher:: Close:: WatchInfo: /users/username/projects/project/a.ts 500 undefined Project: /users/username/projects/project/tsconfig.json WatchType: Missing file Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /users/username/projects/project/tsconfig.json projectStateVersion: 4 projectProgramVersion: 3 structureChanged: true structureIsReused:: Not Elapsed:: *ms Info seq [hh:mm:ss:mss] Project '/users/username/projects/project/tsconfig.json' (Configured) Info seq [hh:mm:ss:mss] Files (3) @@ -786,17 +794,6 @@ Info seq [hh:mm:ss:mss] Files (3) Matched by default include pattern '**/*' Info seq [hh:mm:ss:mss] ----------------------------------------------- -Info seq [hh:mm:ss:mss] event: - { - "seq": 0, - "type": "event", - "event": "configFileDiag", - "body": { - "triggerFile": "/users/username/projects/project/tsconfig.json", - "configFile": "/users/username/projects/project/tsconfig.json", - "diagnostics": [] - } - } Info seq [hh:mm:ss:mss] event: { "seq": 0, @@ -818,8 +815,6 @@ PolledWatches:: {"pollingInterval":500} PolledWatches *deleted*:: -/users/username/projects/project/a.ts: - {"pollingInterval":500} /users/username/projects/project/jsconfig.json: {"pollingInterval":2000} /users/username/projects/project/sub/jsconfig.json: @@ -901,16 +896,16 @@ Info seq [hh:mm:ss:mss] event: After running Immedidate callback:: count: 0 Timeout callback:: count: 3 -13: /users/username/projects/project/tsconfig.json -14: *ensureProjectForOpenFiles* -16: checkOne *new* +17: /users/username/projects/project/tsconfig.json +18: *ensureProjectForOpenFiles* +20: checkOne *new* Before running Timeout callback:: count: 3 -13: /users/username/projects/project/tsconfig.json -14: *ensureProjectForOpenFiles* -16: checkOne +17: /users/username/projects/project/tsconfig.json +18: *ensureProjectForOpenFiles* +20: checkOne -Invoking Timeout callback:: timeoutId:: 16:: checkOne +Invoking Timeout callback:: timeoutId:: 20:: checkOne Info seq [hh:mm:ss:mss] event: { "seq": 0, diff --git a/tests/baselines/reference/tsserver/projects/loading-files-with-correct-priority.js b/tests/baselines/reference/tsserver/projects/loading-files-with-correct-priority.js index eb310f72273..c4a7a020c8f 100644 --- a/tests/baselines/reference/tsserver/projects/loading-files-with-correct-priority.js +++ b/tests/baselines/reference/tsserver/projects/loading-files-with-correct-priority.js @@ -318,6 +318,8 @@ Info seq [hh:mm:ss:mss] request: "seq": 4, "type": "request" } +Info seq [hh:mm:ss:mss] Invoking /a/tsconfig.json:: wildcard for open scriptInfo:: /a/main.js +Info seq [hh:mm:ss:mss] Project: /a/tsconfig.json Detected output file: /a/main.js Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /a/main.js ProjectRootPath: undefined:: Result: /a/tsconfig.json Info seq [hh:mm:ss:mss] getConfigFileNameForFile:: File: /a/tsconfig.json ProjectRootPath: undefined:: Result: undefined Info seq [hh:mm:ss:mss] event: