NOTE: This project has been unmaintained for years. I'm no longer accepting pull requests so I'm archiving the repo. Feel free to clone it and do with the code as you please!
VSCode extension to sort and refactor python imports using
reorder-python-imports
.
Unlike other import organizers, reorder-python-imports
focuses on reducing the
frequency of merge conflicts, using static analysis to avoid the need for an active
venv, and providing better better compatibility with pre-commit
and black
.
To learn more, visit the original tool's homepage.
Refactoring the imports is provided as a code action, which can be invoked by right
clicking on the code or the lightbulb icon and selecting Reorder Imports
, or
selecting Python Refactor: Reorder Imports
from the command palette.
Below is an example of a settings.json file with settings relevant to vscode-reorder-python-imports.
{
"reorder-python-imports.args": [
"--application-directories=.:src",
"--add-import 'from __future__ import absolute_import'",
"--add-import 'from __future__ import division'",
"--add-import 'from __future__ import print_function'"
]
}
Reordering imports on save is also supported, but requires you to set the following in
your settings to prevent Microsoft's python extension from running isort
:
"[python]": {
"editor.codeActionsOnSave": {
"source.organizeImports": false,
"source.organizeImports.reorder-python-imports": true
},
}
reorder-python-imports
must be installed in the venv used by visual studio.
isort
from Microsoft's Python Extension also provides a code action for organizing
imports. When vscode is configured to organize imports on save, both isort
and
reorder-python-imports
are run. To work around this, see the reordering on save section.
Use npm version
with either major
, minor
or patch
to both bump the
version in package.json
and create a git version tag. The extension is
published to the VS Code Extension Marketplace using GitHub Actions.
This needs to be done outside CI/CD. The following command bumps the minor part
of the version (in package.json
and with a git tag) and publishes the
extension as a pre-release.
npx vsce publish minor --pre-release