sublack
Black integration in SublimeText
Details
Installs
- Total 16K
- Win 4K
- Mac 7K
- Linux 5K
Nov 21 | Nov 20 | Nov 19 | Nov 18 | Nov 17 | Nov 16 | Nov 15 | Nov 14 | Nov 13 | Nov 12 | Nov 11 | Nov 10 | Nov 9 | Nov 8 | Nov 7 | Nov 6 | Nov 5 | Nov 4 | Nov 3 | Nov 2 | Nov 1 | Oct 31 | Oct 30 | Oct 29 | Oct 28 | Oct 27 | Oct 26 | Oct 25 | Oct 24 | Oct 23 | Oct 22 | Oct 21 | Oct 20 | Oct 19 | Oct 18 | Oct 17 | Oct 16 | Oct 15 | Oct 14 | Oct 13 | Oct 12 | Oct 11 | Oct 10 | Oct 9 | Oct 8 | Oct 7 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 2 | 0 |
Mac | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 1 | 0 | 0 | 0 | 2 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 2 | 1 | 0 | 1 | 0 | 1 | 0 | 2 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 2 | 2 |
Linux | 0 | 2 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 3 | 3 | 0 | 0 | 1 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 2 | 1 |
Readme
- Source
- raw.githubusercontent.com
sublack
|==============================================================================
This repository will not be updated. The repository will be kept available in read-only mode.
A new nice maintainer is welcomed to fork it.
|================================================================================
Black integration for SublimeText
- License : GNU General Public License v3 or later (GPLv3+)
- Source: https://github.com/jgirardet/sublack
Table Of content
Installation | Usage | Blackd mode | Pre-commit integration | Settings | Code folding | Sublime Linter integration | Issues | Thanks | Changelog | Contributing | Authors
Installation
Install Black min (19.3b0) (if you haven't already):
pip install black # Requires python 3.6 or pip install black[d] # for blackd support
In PackageControl just find sublack, and that's it!
or
Without PackageControl install manually by navigating to Sublime's Packages folder and cloning this repository:
git clone https://github.com/jgirardet/sublack.git
Usage
- 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 } } }
pyproject.toml settings
Sublack supports the use of black configuration in pyproject.toml. Be aware that global/project settings will BE OVERRIDDEN by pyproject.toml's settings. Sublack will look for this file in your project directory then in your root folder(s). See black about pyproject.toml .
Code folding
Sublack tries to keep code folding as before reformatting. SublimeText only supports python3.3 syntax. For newer syntax (ex await/async), you have to set the python_interpreter setting.
{ "settings": { "python_interpreter": "/path/to/my/python/virtualenv/bin/python" } }
Sublime Linter integration
You can install SublimeLinter-addon-black-for-flake. The plugin will auto-configure flake8 and mute all warnings black can actually fix.
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 very inspired by the very good PyYapf Plugin. Thanks to Jason Kane.
Changelog
see install.txt
Contributing
- Remove sublack via Package Control.
- Fork sublack
- Clone your sublack fork to your Packages folder (Preferences --> Browse Packages...).
- Preferences --> Package Control: Satisfy Dependencies (install requests)
- Install UnitTesting in Package Control
- Adding a test for new features or bugfix is really nice if you can.
- Add your name to Authors in the readme.
Authors
Laboriously coded by Jimmy Girardet
Contributions by:
- nicokist
- mschneiderwind
- catch22
- Thom1729
- Jacobi Petrucciani
- Herr Kaste
- Martinj Peters
- Cyrus Yip
- Georgios Samaras
Todo
- cors
- refactor popen