MCPcopy Create free account
hub / github.com/microsoft/typescript-go / groupByModuleSpecifier

Function groupByModuleSpecifier

internal/ls/organizeimports.go:217–234  ·  view source on GitHub ↗
(imports []*ast.Statement)

Source from the content-addressed store, hash-verified

215}
216
217func groupByModuleSpecifier(imports []*ast.Statement) [][]*ast.Statement {
218 groups := make(map[string][]*ast.Statement)
219 var order []string
220
221 for _, imp := range imports {
222 specifier := lsutil.GetExternalModuleName(imp.ModuleSpecifier())
223 if _, exists := groups[specifier]; !exists {
224 order = append(order, specifier)
225 }
226 groups[specifier] = append(groups[specifier], imp)
227 }
228
229 result := make([][]*ast.Statement, 0, len(order))
230 for _, key := range order {
231 result = append(result, groups[key])
232 }
233 return result
234}
235
236func removeUnusedImports(oldImports []*ast.Statement, sourceFile *ast.SourceFile, typeChecker *checker.Checker, program *compiler.Program, changeTracker *change.Tracker) []*ast.Statement {
237 compilerOptions := program.Options()

Callers 1

organizeImportsWorkerFunction · 0.85

Calls 5

GetExternalModuleNameFunction · 0.92
lenFunction · 0.85
ModuleSpecifierMethod · 0.80
makeFunction · 0.50
appendFunction · 0.50

Tested by

no test coverage detected