@@ -1631,11 +1631,11 @@ namespace ts.server {
16311631
16321632 /*@internal */
16331633 includePackageJsonAutoImports ( ) : PackageJsonAutoImportPreference {
1634- if ( this . projectService . includePackageJsonAutoImports ( ) === PackageJsonAutoImportPreference . None ||
1634+ if ( this . projectService . includePackageJsonAutoImports ( ) === PackageJsonAutoImportPreference . Off ||
16351635 ! this . languageServiceEnabled ||
16361636 isInsideNodeModules ( this . currentDirectory ) ||
16371637 ! this . isDefaultProjectForOpenFiles ( ) ) {
1638- return PackageJsonAutoImportPreference . None ;
1638+ return PackageJsonAutoImportPreference . Off ;
16391639 }
16401640 return this . projectService . includePackageJsonAutoImports ( ) ;
16411641 }
@@ -1831,6 +1831,9 @@ namespace ts.server {
18311831 export class AutoImportProviderProject extends Project {
18321832 private static readonly newName = createProjectNameFactoryWithCounter ( makeAutoImportProviderProjectName ) ;
18331833
1834+ /*@internal */
1835+ private static readonly maxDependencies = 10 ;
1836+
18341837 /*@internal */
18351838 static getRootFileNames ( dependencySelection : PackageJsonAutoImportPreference , hostProject : Project , moduleResolutionHost : ModuleResolutionHost , compilerOptions : CompilerOptions ) : string [ ] {
18361839 if ( ! dependencySelection ) {
@@ -1844,9 +1847,6 @@ namespace ts.server {
18441847 for ( const packageJson of packageJsons ) {
18451848 packageJson . dependencies ?. forEach ( ( _ , dependenyName ) => addDependency ( dependenyName ) ) ;
18461849 packageJson . peerDependencies ?. forEach ( ( _ , dependencyName ) => addDependency ( dependencyName ) ) ;
1847- if ( dependencySelection === PackageJsonAutoImportPreference . All ) {
1848- packageJson . devDependencies ?. forEach ( ( _ , dependencyName ) => addDependency ( dependencyName ) ) ;
1849- }
18501850 }
18511851
18521852 if ( dependencyNames ) {
@@ -1862,6 +1862,10 @@ namespace ts.server {
18621862 const fileName = moduleResolutionHost . realpath ?.( resolvedFileName ) || resolvedFileName ;
18631863 if ( ! hostProject . getCurrentProgram ( ) ! . getSourceFile ( fileName ) && ! hostProject . getCurrentProgram ( ) ! . getSourceFile ( resolvedFileName ) ) {
18641864 rootNames = append ( rootNames , fileName ) ;
1865+ // Avoid creating a large project that would significantly slow down time to editor interactivity
1866+ if ( dependencySelection === PackageJsonAutoImportPreference . Auto && rootNames . length > this . maxDependencies ) {
1867+ return ts . emptyArray ;
1868+ }
18651869 }
18661870 }
18671871 }
@@ -1877,7 +1881,7 @@ namespace ts.server {
18771881
18781882 /*@internal */
18791883 static create ( dependencySelection : PackageJsonAutoImportPreference , hostProject : Project , moduleResolutionHost : ModuleResolutionHost , documentRegistry : DocumentRegistry ) : AutoImportProviderProject | undefined {
1880- if ( dependencySelection === PackageJsonAutoImportPreference . None ) {
1884+ if ( dependencySelection === PackageJsonAutoImportPreference . Off ) {
18811885 return undefined ;
18821886 }
18831887
@@ -1974,7 +1978,7 @@ namespace ts.server {
19741978
19751979 /*@internal */
19761980 includePackageJsonAutoImports ( ) {
1977- return PackageJsonAutoImportPreference . None ;
1981+ return PackageJsonAutoImportPreference . Off ;
19781982 }
19791983
19801984 getTypeAcquisition ( ) : TypeAcquisition {
0 commit comments