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

python-black

by thep0y ST4

Black formatter for Sublime Text

Labels formatter

Details

Installs

  • Total 14K
  • Win 6K
  • Mac 4K
  • Linux 4K
May 13 May 12 May 11 May 10 May 9 May 8 May 7 May 6 May 5 May 4 May 3 May 2 May 1 Apr 30 Apr 29 Apr 28 Apr 27 Apr 26 Apr 25 Apr 24 Apr 23 Apr 22 Apr 21 Apr 20 Apr 19 Apr 18 Apr 17 Apr 16 Apr 15 Apr 14 Apr 13 Apr 12 Apr 11 Apr 10 Apr 9 Apr 8 Apr 7 Apr 6 Apr 5 Apr 4 Apr 3 Apr 2 Apr 1 Mar 31 Mar 30 Mar 29
Windows 1 4 6 4 7 5 6 2 1 1 3 5 3 4 4 2 2 2 7 5 4 3 3 2 6 8 2 2 1 1 3 2 2 3 4 10 2 5 8 5 2 8 3 7 7 6
Mac 1 0 1 2 4 2 1 2 3 8 6 2 4 4 1 3 2 6 7 4 2 8 1 3 5 6 4 4 4 1 1 1 6 4 3 7 2 3 4 3 7 3 3 3 1 4
Linux 0 1 0 3 5 9 4 2 4 2 1 4 8 4 3 2 3 6 2 7 4 2 3 2 5 3 4 2 2 4 5 2 6 5 3 2 4 5 6 4 7 1 3 4 2 6

Readme

Source
raw.​githubusercontent.​com

python-black

black

Black formatter for Sublime Text.

It is recommended to use it with LSP-pyright.

Installation

There is no need to install black. However, if you choose to install it, it will not affect this package..

You can install python-black with Package Control:

  1. Open your command pallete and type Package Control: Install Package.
  2. Find this project python-black and press Enter.

Local installation

This package has been uploaded to packagecontrol.io, so you do not need to choose local installation:

git clone https://github.com/thep0y/python-black.git

Copy or move the python-black folder to the Packages directory of Sublime Text 4.

Usage

1 Key Binding

You can create custom key binding based on samplePreferences - Package Settings - Python Black - Key Bindings, such as:

{
  "keys": ["ctrl+super+l"],
  "command": "black",
  "args": {
    "use_selection": true
  }
}

The optional use_selection boolean (defaults to true) controls whether to format the selected region or the entire file.

:warning:Note: Do not duplicate the key binding of other packages.

2 Settings

There are some modifiable properties in settings:

{
   // Whether to automatically format the entire document when saving.
   // There are three modes:
   //    - "on"
   //    - "off"
   //    - "smart": Automatic formatting is only enabled if there is a `black` section in the project's `pyproject.toml`
   "format_on_save": "on",
   // Black [OPTIONS]
   // The priority of loading options for Black is:
   // Sublime project settings > Configuration file > Sublime package user settings > Sublime package default settings
   "options": {
      // Python versions that should be supported by Black's output.
      "target_version": [],
      // How many characters per line to allow.
      "line_length": 88,
      // Format all input files like typing stubs regardless of file extension (useful when piping source on standard input).
      "is_pyi": false,
      // Skip the first line of the source code.
      "skip_source_first_line": false,
      // Don't normalize string quotes or prefixes.
      "skip_string_normalization": false,
      // Don't use trailing commas as a reason to split lines.
      "skip_magic_trailing_comma": false
   }
}

The format_on_save can also be toggled via Preferences > Package Settings > Python Black > Format On Save.

The Black options can also be configured in sublime-project:

{
  "settings": {
    // ...
    "python-black": {
      "options": {
        "line_length": 127,
        "skip_string_normalization": true
      }
    }
  }
}

3 Create Black Configuration File

You can quickly generate a black configuration file for the current project.

Command Description
python-black: Create Black Configuration File Creates a pyproject.toml file in the root of the project with basic options. Opens the configuration file if it already exists.

:warning: If you don't want to generate a pyproject.toml for each project, you need to create a global configuration file for Black.

Refer to Black Documentation.

If you want to disable format_on_save in a project that does not use black code style #14, you need to add the configuration to *.sublime-project:

{
    ...
    "settings": {
        ...
        "python-black": {
            "format_on_save": "off"
        }
    }
}

Development

If you want to fix bugs or add features, you can read the logs:

  • Colorful: in python-black.log in the [SublimeText]/Log directory.

  • Colorless: in the Sublime Text console.

You can also add logs where you think they should be logged as follows:

from .log import child_logger

logger = child_logger(__name__)


# ...
logger.debug("...")
logger.info("...")
logger.warning("...")
logger.error("...")
# ...

Discussion and creation of PRs are welcome.

TODO

  • [ ] format all python files in the current project