Saturday, May 2, 2020

Sublime text with flake8 linter and black autoformatter



First install both libraries using pip from command line (Not inside anaconda!!)

Pip install flake8
Pip install black


Then in Sublime text, Press Ctrl + Shift + P, then open install packages

1. Install Sublack
2. Intall SublimeLinter-Flake8

Sometimes flake8 gives warning about what black does, you can install this to fix the problem

https://github.com/kaste/SublimeLinter-addon-black-for-flake

Usage of sublack

  • Run Black on the current file:
    Press Ctrl-Alt-B to format the entire file. You can also Ctrl-Shift-P (Mac: Cmd-Shift-P) and select Sublack: Format file.
  • Run Black with --diff:
    Press Ctrl-Alt-Shift-B will show diff in a new tab. You can also Ctrl-Shift-P (Mac: Cmd-Shift-P) and select Sublack: Diff file.
  • Toggle Black on save for current view :
    Press Ctrl-Shift-P (Mac: Cmd-Shift-P) and select Sublack: Toggle black on save for current view.
  • run Black Format All :
    Press Ctrl-Shift-P (Mac: Cmd-Shift-P) and select Sublack: Format All. Run black against each root folder in a standard way (without taking care of sublack options and configuration). Same thing as running black . being in the folder.
  • Start Blackd Server :
    Press Ctrl-Shift-P (Mac: Cmd-Shift-P) and select Sublack: Start BlackdServer.
  • Stop Blackd Server :
    Press Ctrl-Shift-P (Mac: Cmd-Shift-P) and select Sublack: Stop BlackdServer.

Blackd Mode

Sublack supports blackd. If option black_use_blackd is to true, Sublack will use blackd (and not black) according to the 'host' and 'port' configuration.
You can run blackd from SublimeText manually via Start Blackd Server command or automatically at SublimeText start via setting black_blackd_autostart to true.
Blackd server started via SublimeText can be stopped manually via the Stop Blackd Server command or automatically at sublime's exit.
Unlike "standalone" blackd, using sublack with blackd will continue to take care of the pyproject file.
Using standard mode ou blackd mode in sublack should always have the same result...or it's a bug :-)
Blackd is faster than Black.
Diff is always run with black.

Pre-commit integration

You can choose to run Black via pre-commit by setting black_use_precommit to true. Sublack settings will be ignored.

Settings

Sublack will always look for settings in the following order:
  • First in a pyproject.toml file
  • Second in the project file: first with sublack prefix then in a subsetting (see Project settings).
  • Then in Users global settings
  • Finally in Sublack's default settings

Global settings

Preferences -> Package Settings -> sublack -> settings :
Black specifics options
  • black_line_length:
    Set custom line length option used by Black. Default = null which lets black default.
  • black_fast:
    Black fast mode. default is false.
  • black_skip_string_normalization:
    Don't normalize string quotes or prefixes. Default = false.
  • black_py36[Deprecated]:
    Force use of python 3.6 only syntax. The default is Black-s default.
  • black_target_version:
    Python versions that should be supported by Black's output. You should enter it as a list ex : ["py37"]
Sublack specifics options
  • black_command:
    Set custom location. Default = "black".
  • black_on_save:
    Black is always run before saving the file. Default = false.
  • black_log:
    Show non error messages in console. Default = info.
  • black_default_encoding:
    Should not be changed. Only needed on some OSX platforms.
  • black_use_blackd:
    Use blackd instead of black. Default = false.
  • black_blackd_server_host:
    default = "localhost",
  • black_blackd_port:
    default = "45484"
  • black_blackd_autostart:
    Automatically run blackd in the background wen sublime starts. default is false.
  • black_use_precommit:
    run black via pre-commit hook.
  • black_confirm_formatall:
    Popup confirmation dialog before format_all command. default = true.

Project settings

Just add sublack as prefix (recommended):
{
    "settings": {
        "sublack.black_on_save": true
    }
}
A sublack subsettings is still possible:

{
    "settings": {
        "sublack": {
            "black_on_save": true
        }
    }
}

No comments:

Post a Comment

Loud fan of desktop

 Upon restart the fan of the desktop got loud again. I cleaned the desktop from the dust but it was still loud (Lower than the first sound) ...