sort-imports
Sort ES6 imports for JavaScript and TypeScript automatically.
Ported from the atom-import-sort package by Renke Grunwald.
Features
Automatically sorts imports on save. You can disable this behavior in the settings and sort imports manually:
- Launch the Command Palette (
Ctrl/Cmd + Shift + P
);
- Enter Sort imports
You can also save the document without saving imports. This could become handy when you have auto saving enabled, but don't want to sort the imports in a particular file:
- Launch the Command Palette (
Ctrl/Cmd + Shift + P
);
- Enter Save file without sorting imports
Extension Settings
This extension has the following settings:
sort-imports.default-sort-style
: sorting style if package.json
doesn't have import-sort
key (default: eslint
).
sort-imports.on-save
: enable/disable auto sorting on save (default: true
).
sort-imports.ignore-type-defs
: will not sort .d.ts
files by default since import-sort doesn't handle them well (default: true
).
sort-imports.languages
: selectively choose the languages which should be sorted (default: ['javascript', 'typescript']
).
sort-imports.cache-package-json-config-checks
: The sort config is only checked when config files change as a performance optimization, disable if necessary (default: true
).
Obsolete settings
See release notes for version 4
Use a different style or parser
Styles (and parsers) can be configured on a per-project basis including support for different types of files (currently JavaScript and TypeScript).
Just add the following to your package.json
and adapt it to your liking:
"importSort": {
".js, .jsx, .es6, .es": {
"parser": "babylon",
"style": "eslint",
"options": {}
},
".ts, .tsx": {
"parser": "typescript",
"style": "eslint",
"options": {}
}
}
The keys are a list of file extensions that map to the parser and style that should be used for files that have any of the listed file extensions.
By default, sort-imports
comes with these styles:
PRs with more styles are welcome.
Troubleshooting
parser.parseImports is not a function
This happens when using Typescript parser (import-sort#72). The solution is to install it manually:
npm i -D import-sort-parser-typescript
Release Notes
6.2.6
- Make package.json prevail over extension configuration
6.2.5
- Ensure current workspace folder can be resolved as an import-sort styles path
6.2.4
- Fix extension loading issue by forcing cosmiconfig version to 5.0.7
6.2.3
- Security upgrade on dependencies
- Safe types checking
6.2.2
- Fix current document workspace folder initialization
6.2.1
- Add missing parsers and styles dependencies
6.2.0
- Add workspace support with several folders and different configurations
6.1.0
- Improve config caching by listening for file changes on config files
- Move from an error toast to a status bar icon and panel. Click the "Sort Imports" text in the lower right to detailed errors.
- Don't sort
.d.ts
files by default since import-sort
handles them incorrectly (you can disable this feature via the new sort-imports.ignore-type-defs
configuration option)
6.0.2
- Upgrade import-sort to v6
6.0.0
5.1.0
5.0.0
4.1.0
- Implemented by @cliffkoh
- Introduced
sort-imports.default-sort-style
, which defaults to eslint
. Other possible values are module
, module-compact
and module-scoped
.
- Introduced
sort-imports.cache-package-json-config-checks
which defaults to true
. When true, will cache calls to import-sort-config
thereby improving performance
(avoids repeated non-trivial disk lookups and parsing).
- Fixed bug in
Save file without sorting import
which caused it to not work.
4.0.0
Update to ease transition from @peterjuras' extension.
sort-imports.blank-lines-after
: removed until a valid implementation is provided
sort-imports.sort-type
: you can now configure your sorting type following with a key in your package.json
. Documentation
by-module-name
: is now "style": "module-compact"
by-imported-name
: is removed
3.0.0
- Renamed to sort-imports. Renamed config settings to slug-case.
- Fixed blank linkes after imports feature.
2.4.0
- Implemented by @danieloprado: Added setting to selectively choose the languages. Set
sortImports.languages
to an array of the languages that you want to be sorted, e.g. ['javascript']
.
- Bugfixes
2.4.0 (amq-sort-imports fork)
- Import style
by-module-name
added.
- Added support for blank lines after imports.
2.3.0
- Import sort style
module
is now included by default alongside the eslint
style.
2.2.0
- Added setting to suppress warnings. Set
sortImports.suppressWarnings
to true
to hide warnings if sorting imports fails.
2.1.0
2.0.0
- Added TypeScript support
- Fixed inline comments on import statements
- Thanks to @shalomdotnet for the PR!
1.1.0
- Added 'Save without sorting imports' command
1.0.0
Initial release
Credits
Developed by Peter Juras,
maintained by A. Matías Quezada
Thanks