This configurable extension allows you to sort all the imports in a *.ts or *.tsx file.
Tip: You can access this functionality either from the context menu, or simply pressing 'F10'
Extension Settings
typescript.extension.sortImports.bracketWhitespace: If set to false whitespace will not be included in single line imports. Default: true
typescript.extension.sortImports.enableJavascript: If set to true, the extension will attempt to sort ES6-style imports in Javascript files. Default: false
typescript.extension.sortImports.forceTrailingCommas: Add the ability to use trailing commas in named import lists.
Default: never
never - never add any trailing commas.
always - always add trailing commas.
singleLineOnly - only add trailing commas to single line lists.
multiLineOnly - only add trailing commas to muti-line lists.
typescript.extension.sortImports.maxLineLength: The max character count allowed in a single line named import statement. Can override maxNamedImportsInSingleLine. (This rule has precedence) Please Note: this only applies to single line named imports, it does not check line length on multi-line import statements or default imports.
Default: 0 (no max length)
typescript.extension.sortImports.maxNamedImportsInSingleLine: The number of named imports to allow on a single line. If a single import has more than this number, they will be broken up onto separate lines.
Default: 0 (ignore rule)
typescript.extension.sortImports.multilineIndention: Control when to add indentation to multi-line imports.
Default: namesOnly
none - do not add indentation to multi-line imports.
namesOnly - only add indentation to the lines with named imports.
namesAndPath - add indentation to both the lines with named imports and the final line with the closing bracket and path.
typescript.extension.sortImports.omitSemicolon: If set to true, the trailing semicolon will be omitted. Default: false
typescript.extension.sortImports.pathSortOrder: An array describing the order in which imports should be sorted by paths. Only applicable if sortMethod is set to path.
package - Any import path that does not begin with .
relativeUpLevel - Any import path that begins with ../
relativeDownLevel - Any import path that begins with ./
typescript.extension.sortImports.pathSortOrderOverride: An array describing the order of packages that when sorting imports, should be excluded from the system, and instead moved to the top of the import list in order, packages should be expressed by path.
typescript.extension.sortImports.quoteStyle: The type of quotation mark to use. single(default) or double.
typescript.extension.sortImports.sortMethod: The method to use for sorting the imports.
'importName'(default) sorts by the type and name of the import. Namespace imports are first, followed by default imports, named imports, and unnamed imports.
'fileName' sorts by the file name in the import-path
'path' sorts by the import path, sorting relative-path imports above package imports
typescript.extension.sortImports.sortOnSave: If set to true, imports will be sorted whenever you save a file. Default: false
Inline Settings
You can use the flag disable-sort-imports in comments to disable sorting for that page. This is especially useful if you have the sortOnSave set to true
Known Issues
This extension does not currently sort comments within the import block along with the import statements
Future roadmap
Handle distinct blocks of imports separated by a blank line.