Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion internal/ls/autoimports.go
Original file line number Diff line number Diff line change
Expand Up @@ -1010,7 +1010,9 @@ func (l *LanguageService) getNewImportFixes(
) []*ImportFix /* FixAddNewImport | FixAddJsdocTypeImport */ {
isJs := tspath.HasJSFileExtension(sourceFile.FileName())
compilerOptions := l.GetProgram().Options()
// !!! packagejsonAutoimportProvider
// !!! if preferences.IncludePackageJsonAutoImports != "off" {
// !!! packagejsonAutoimportProvider
// !!! }
// getChecker := createGetChecker(program, host)// memoized typechecker based on `isFromPackageJson` bool

getModuleSpecifiers := func(moduleSymbol *ast.Symbol, checker *checker.Checker) ([]string, modulespecifiers.ResultKind) {
Expand Down Expand Up @@ -1345,6 +1347,10 @@ func forEachExternalModuleToImportFrom(
},
)

// if preferences.IncludePackageJsonAutoImports == "off" {
// return;
// }

// !!! autoImportProvider
// if autoImportProvider := useAutoImportProvider && l.getPackageJsonAutoImportProvider(); autoImportProvider != nil {
// // start := timestamp();
Expand Down
4 changes: 3 additions & 1 deletion internal/ls/completions.go
Original file line number Diff line number Diff line change
Expand Up @@ -1187,7 +1187,9 @@ func (l *LanguageService) getCompletionData(
isValidTypeOnlyUseSite := ast.IsValidTypeOnlyAliasUseSite(location)

// !!! moduleSpecifierCache := host.getModuleSpecifierCache();
// !!! packageJsonAutoImportProvider := host.getPackageJsonAutoImportProvider();
// !!! if preferences.includePackageJsonAutoImports != "off" {
// !!! packageJsonAutoImportProvider := host.getPackageJsonAutoImportProvider();
// !!! }
addSymbolToList := func(info []*SymbolExportInfo, symbolName string, isFromAmbientModule bool, exportMapKey ExportInfoMapKey) []*SymbolExportInfo {
// Do a relatively cheap check to bail early if all re-exports are non-importable
// due to file location or package.json dependency filtering. For non-node16+
Expand Down
3 changes: 3 additions & 0 deletions internal/modulespecifiers/preferences.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ func getPreferredEnding(
type ModuleSpecifierPreferences struct {
relativePreference RelativePreferenceKind
getAllowedEndingsInPreferredOrder func(syntaxImpliedNodeFormat core.ResolutionMode) []ModuleSpecifierEnding
packageJsonAutoImports IncludePackageJsonAutoImports
excludeRegexes []string
}

Expand Down Expand Up @@ -170,6 +171,7 @@ func getModuleSpecifierPreferences(
// all others are shortest
}
}

filePreferredEnding := getPreferredEnding(
prefs,
host,
Expand Down Expand Up @@ -226,6 +228,7 @@ func getModuleSpecifierPreferences(
}

return ModuleSpecifierPreferences{
packageJsonAutoImports: prefs.IncludePackageJsonAutoImports,
excludeRegexes: excludes,
relativePreference: relativePreference,
getAllowedEndingsInPreferredOrder: getAllowedEndingsInPreferredOrder,
Expand Down
2 changes: 1 addition & 1 deletion internal/modulespecifiers/specifiers.go
Original file line number Diff line number Diff line change
Expand Up @@ -493,7 +493,7 @@ func getLocalModuleSpecifier(
}

var fromPackageJsonImports string
if !pathsOnly {
if !pathsOnly && preferences.packageJsonAutoImports != IncludePackageJsonAutoImportsOff {
fromPackageJsonImports = tryGetModuleNameFromPackageJsonImports(
moduleFileName,
sourceDirectory,
Expand Down
10 changes: 10 additions & 0 deletions internal/modulespecifiers/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,19 @@ const (
ImportModuleSpecifierEndingPreferenceJs ImportModuleSpecifierEndingPreference = "js"
)

type IncludePackageJsonAutoImports string

const (
IncludePackageJsonAutoImportsNone IncludePackageJsonAutoImports = ""
IncludePackageJsonAutoImportsAuto IncludePackageJsonAutoImports = "auto"
IncludePackageJsonAutoImportsOn IncludePackageJsonAutoImports = "on"
IncludePackageJsonAutoImportsOff IncludePackageJsonAutoImports = "off"
)

type UserPreferences struct {
ImportModuleSpecifierPreference ImportModuleSpecifierPreference
ImportModuleSpecifierEnding ImportModuleSpecifierEndingPreference
IncludePackageJsonAutoImports IncludePackageJsonAutoImports
AutoImportSpecifierExcludeRegexes []string
}

Expand Down