ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

isorted

by rimvaliulin ALL

isort integration for Sublime Text

Details

Installs

  • Total 508
  • Win 99
  • Mac 235
  • Linux 174
Dec 26 Dec 25 Dec 24 Dec 23 Dec 22 Dec 21 Dec 20 Dec 19 Dec 18 Dec 17 Dec 16 Dec 15 Dec 14 Dec 13 Dec 12 Dec 11 Dec 10 Dec 9 Dec 8 Dec 7 Dec 6 Dec 5 Dec 4 Dec 3 Dec 2 Dec 1 Nov 30 Nov 29 Nov 28 Nov 27 Nov 26 Nov 25 Nov 24 Nov 23 Nov 22 Nov 21 Nov 20 Nov 19 Nov 18 Nov 17 Nov 16 Nov 15 Nov 14 Nov 13 Nov 12 Nov 11
Windows 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
Mac 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1
Linux 0 0 0 0 0 0 3 1 0 0 0 0 1 1 0 0 1 0 2 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0

Readme

Source
raw.​githubusercontent.​com

isorted

__
      / /               __           __
     ---________  _____/ /____  ____/ /
    / / ___/ __ \/ ___/ __/ _ \/ __  /
   / /__  / /_/ / /  / /_/  __/ /_/ /
  /_/____/\____/_/   \__/\___/\__,_/

isort integration for Sublime Text. Make your imports great again.

Allows to use any externally installed isort by your favorite package manager…

Installation

Just find isorted in Package Control or install manually by navigating to Sublime's Packages folder and cloning this repository:

git clone https://github.com/rimvaliulin/isorted.git

Install isort if you haven't already:

pip3 install isort

Configuration

isort config files

isort looks for the closest supported config files in the order listed: .isort.cfg, pyproject.toml, setup.cfg, tox.ini and .editorconfig (.isort.cfg and pyproject.toml are preferred formats). isort will traverse up to 25 parent directories until it finds a suitable config file. isort will not leave a git or Mercurial repository (checking for a .git or .hg directory). As soon as it finds a file, it stops looking. The config file search is done relative to the current directory if isort or a file stream is passed in, or relative to the first path passed in if multiple paths are passed in. isort never merges config files together due to the confusion it can cause. You can manually specify the settings file or path by setting --settings-path from the command-line. See more: https://pycqa.github.io/isort/docs/configuration/config_files.html

Project settings

Add a isort command line options to Sublime Text settings (see: isort --help). Use long arguments (double dashed) and change hyphens to underscores to better look. This settings will be added directly to command line call and override any isort config file settings: .isort.cfg, pyproject.toml, setup.cfg, tox.ini, .editorconfig etc.

Just add isorted as prefix:

{
    "settings": {
        "isorted.isort_command": ["poetry", "run", "isort"],
        "isorted.isort_on_save": true,
        "isorted.profile": "black",
        "isorted.float_to_top": true,
        "isorted.line_length": 120
    }
}

Or in isorted subsettings:

{
    "settings": {
        "isorted": {
            "isort_command": ["${python_interpreter}", "-m", "isort"],
            "isort_on_save": true,
            "profile": "django",
            "dont_float_to_top": true,
            "indent": "    ",
            "extra_builtin": ["django", "rest_framework"]
        }
    }
}

Or in options section of isorted subsettings:

{
    "settings": {
        "isorted": {
            "isort_command": ["${python_interpreter}", "-m", "isort"],
            "isort_on_save": true,
            "options": {
                "profile": "django",
                "dont_float_to_top": true,
                "indent": "    ",
                "extra_builtin": ["django", "rest_framework"]
            }
        }
    }
}

Global/User settings

PreferencesPackage SettingsisortedSettings

Fill user settings with options you like on the left panel:

{
    "isort_command": "/usr/bin/local/isort",
    "isort_on_save": true,
    "options": {
        "profile": "pycharm",
        "multi_line": "GRID",
        "ensure_newline_before_comments": true,
        "known_local_folder": ["flask", "requests"]
    }
}

isorted specific options

  • isort_command: set custom location for isort command. Can be list of strings (by default: “isort”).

  • isort_on_save: always run isort before saving the file (by default: false).

Key Bindings

PreferencesPackage SettingsisortedKey Bindings:

Copy to user key bindings, uncomment, edit keys and and save:

[
    {"keys": ["ctrl+alt+s"], "command": "isort_file", "scope": "source.python"}
]

Usage

  • Sort imports on save by isort_on_save settings.

  • Open Command Panel from menu or with ctrl+shift+p (Mac: cmd+shift+p) and select isorted: Format file.

  • Run isort on the current file with key bindings activated before:

Press ctrl+alt+s (Mac: cmd+alt+s) to sort imports in the entire file.

Issues

If there is something wrong with this plugin, add an issue on GitHub and I'll try to address it.

Thanks

This plugin is inspired by Sublime text isort plugin and sublack. Thanks to @thijsdezoete and @jgirardet.

Changelog

see CHANGELOG

Contributing

  • Remove isorted via Package Control.
  • Fork isorted
  • Clone your isorted fork to your Packages folder (PreferencesBrowse Packages…).
  • Add your name to Authors in the readme.

Authors

Coded by Rim Valiulin @rimvaliulin.

Contributions: Stanley Chung @returnchung.

Todo

  • MacOS: Fix error 'You may need to install isort and/or configure 'isort_command' in isorted's settings.' on new Sublime Text startup after reboot (needs Sublime Text restart).

  • Add quick toggle isort_on_save for specific file.