mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Don’t try to recreate AutoImportProvider after giving up because of too many dependencies until program structure changes (#59692)
This commit is contained in:
+4
-11
@@ -1365,20 +1365,13 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo
|
||||
|
||||
/** @internal */
|
||||
onAutoImportProviderSettingsChanged() {
|
||||
if (this.autoImportProviderHost === false) {
|
||||
this.autoImportProviderHost = undefined;
|
||||
}
|
||||
else {
|
||||
this.autoImportProviderHost?.markAsDirty();
|
||||
}
|
||||
this.markAutoImportProviderAsDirty();
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
onPackageJsonChange() {
|
||||
this.moduleSpecifierCache.clear();
|
||||
if (this.autoImportProviderHost) {
|
||||
this.autoImportProviderHost.markAsDirty();
|
||||
}
|
||||
this.markAutoImportProviderAsDirty();
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
@@ -2275,7 +2268,7 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo
|
||||
if (dependencySelection) {
|
||||
tracing?.push(tracing.Phase.Session, "getPackageJsonAutoImportProvider");
|
||||
const start = timestamp();
|
||||
this.autoImportProviderHost = AutoImportProviderProject.create(dependencySelection, this, this.getHostForAutoImportProvider(), this.documentRegistry);
|
||||
this.autoImportProviderHost = AutoImportProviderProject.create(dependencySelection, this, this.getHostForAutoImportProvider(), this.documentRegistry) ?? false;
|
||||
if (this.autoImportProviderHost) {
|
||||
updateProjectIfDirty(this.autoImportProviderHost);
|
||||
this.sendPerformanceEvent("CreatePackageJsonAutoImportProvider", timestamp() - start);
|
||||
@@ -2552,7 +2545,7 @@ export class AutoImportProviderProject extends Project {
|
||||
const symlinkCache = hostProject.getSymlinkCache();
|
||||
for (const name of arrayFrom(dependencyNames.keys())) {
|
||||
// Avoid creating a large project that would significantly slow down time to editor interactivity
|
||||
if (dependencySelection === PackageJsonAutoImportPreference.Auto && dependenciesAdded > this.maxDependencies) {
|
||||
if (dependencySelection === PackageJsonAutoImportPreference.Auto && dependenciesAdded >= this.maxDependencies) {
|
||||
hostProject.log(`AutoImportProviderProject: attempted to add more than ${this.maxDependencies} dependencies. Aborting.`);
|
||||
return ts.emptyArray;
|
||||
}
|
||||
|
||||
@@ -114,6 +114,7 @@ describe("unittests:: tsserver:: autoImportProvider", () => {
|
||||
|
||||
host.writeFile(packageJson.path, packageJson.content);
|
||||
session.host.baselineHost("Before getAutoImportProvider");
|
||||
host.runQueuedTimeoutCallbacks();
|
||||
assert.ok(session.getProjectService().configuredProjects.get(tsconfig.path)!.getLanguageService().getAutoImportProvider());
|
||||
session.host.baselineHost("After getAutoImportProvider");
|
||||
baselineTsserverLogs("autoImportProvider", "Responds to package_json changes", session);
|
||||
@@ -272,7 +273,7 @@ describe("unittests:: tsserver:: autoImportProvider", () => {
|
||||
];
|
||||
|
||||
const packages = [];
|
||||
for (let i = 0; i < 11; i++) {
|
||||
for (let i = 0; i < 10; i++) {
|
||||
packages.push(createPackage(i));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user