liuliangsir / vsc-sort-imports

Sort ES6 imports automatically.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

sort-imports

Sort ES6 imports for JavaScript and TypeScript automatically. Ported from the atom-import-sort package by Renke Grunwald.

Sort Example

Features

Automatically sorts imports on save. You can disable this behavior in the settings and sort imports manually:

  1. Launch the Command Palette (Ctrl/Cmd + Shift + P);
  2. 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:

  1. Launch the Command Palette (Ctrl/Cmd + Shift + P);
  2. 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 sported (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-import 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.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

  • Upgrade dependencies

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-trival 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 folowing 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

About

Sort ES6 imports automatically.

License:ISC License


Languages

Language:TypeScript 100.0%