-```
-hook global WinSetOption filetype=python %{
- set-option window formatcmd 'black -q -'
-}
-```
-
-### Thonny
-
-Use [Thonny-black-code-format](https://github.com/Franccisco/thonny-black-code-format).
-
-### Other editors
-
-Other editors will require external contributions.
-
-Patches welcome! ✨ 🍰 ✨
-
-Any tool that can pipe code through _Black_ using its stdio mode (just
-[use `-` as the file name](https://www.tldp.org/LDP/abs/html/special-chars.html#DASHREF2)).
-The formatted code will be returned on stdout (unless `--check` was passed). _Black_
-will still emit messages on stderr but that shouldn't affect your use case.
-
-This can be used for example with PyCharm's or IntelliJ's
-[File Watchers](https://www.jetbrains.com/help/pycharm/file-watchers.html).
-
-## blackd
-
-`blackd` is a small HTTP server that exposes _Black_'s functionality over a simple
-protocol. The main benefit of using it is to avoid paying the cost of starting up a new
-_Black_ process every time you want to blacken a file.
-
-### Usage
-
-`blackd` is not packaged alongside _Black_ by default because it has additional
-dependencies. You will need to do `pip install black[d]` to install it.
-
-You can start the server on the default port, binding only to the local interface by
-running `blackd`. You will see a single line mentioning the server's version, and the
-host and port it's listening on. `blackd` will then print an access log similar to most
-web servers on standard output, merged with any exception traces caused by invalid
-formatting requests.
-
-`blackd` provides even less options than _Black_. You can see them by running
-`blackd --help`:
-
-```text
-Usage: blackd [OPTIONS]
-
-Options:
- --bind-host TEXT Address to bind the server to.
- --bind-port INTEGER Port to listen on
- --version Show the version and exit.
- -h, --help Show this message and exit.
-```
-
-There is no official blackd client tool (yet!). You can test that blackd is working
-using `curl`:
-
-```
-blackd --bind-port 9090 & # or let blackd choose a port
-curl -s -XPOST "localhost:9090" -d "print('valid')"
-```
-
-### Protocol
-
-`blackd` only accepts `POST` requests at the `/` path. The body of the request should
-contain the python source code to be formatted, encoded according to the `charset` field
-in the `Content-Type` request header. If no `charset` is specified, `blackd` assumes
-`UTF-8`.
-
-There are a few HTTP headers that control how the source is formatted. These correspond
-to command line flags for _Black_. There is one exception to this: `X-Protocol-Version`
-which if present, should have the value `1`, otherwise the request is rejected with
-`HTTP 501` (Not Implemented).
-
-The headers controlling how code is formatted are:
-
-- `X-Line-Length`: corresponds to the `--line-length` command line flag.
-- `X-Skip-String-Normalization`: corresponds to the `--skip-string-normalization`
- command line flag. If present and its value is not the empty string, no string
- normalization will be performed.
-- `X-Fast-Or-Safe`: if set to `fast`, `blackd` will act as _Black_ does when passed the
- `--fast` command line flag.
-- `X-Python-Variant`: if set to `pyi`, `blackd` will act as _Black_ does when passed the
- `--pyi` command line flag. Otherwise, its value must correspond to a Python version or
- a set of comma-separated Python versions, optionally prefixed with `py`. For example,
- to request code that is compatible with Python 3.5 and 3.6, set the header to
- `py3.5,py3.6`.
-- `X-Diff`: corresponds to the `--diff` command line flag. If present, a diff of the
- formats will be output.
-
-If any of these headers are set to invalid values, `blackd` returns a `HTTP 400` error
-response, mentioning the name of the problematic header in the message body.
-
-Apart from the above, `blackd` can produce the following response codes:
-
-- `HTTP 204`: If the input is already well-formatted. The response body is empty.
-- `HTTP 200`: If formatting was needed on the input. The response body contains the
- blackened Python code, and the `Content-Type` header is set accordingly.
-- `HTTP 400`: If the input contains a syntax error. Details of the error are returned in
- the response body.
-- `HTTP 500`: If there was any kind of error while trying to format the input. The
- response body contains a textual representation of the error.
-
-The response headers include a `X-Black-Version` header containing the version of
-_Black_.
-
-## Version control integration
-
-Use [pre-commit](https://pre-commit.com/). Once you
-[have it installed](https://pre-commit.com/#install), add this to the
-`.pre-commit-config.yaml` in your repository:
-
-```yaml
-repos:
- - repo: https://github.com/psf/black
- rev: stable
- hooks:
- - id: black
- language_version: python3.6
-```
-
-Then run `pre-commit install` and you're ready to go.
-
-Avoid using `args` in the hook. Instead, store necessary configuration in
-`pyproject.toml` so that editors and command-line usage of Black all behave consistently
-for your project. See _Black_'s own
-[pyproject.toml](https://github.com/psf/black/blob/master/pyproject.toml) for an
-example.
-
-If you're already using Python 3.7, switch the `language_version` accordingly. Finally,
-`stable` is a tag that is pinned to the latest release on PyPI. If you'd rather run on
-master, this is also an option.
-
-## Ignoring unmodified files
-
-_Black_ remembers files it has already formatted, unless the `--diff` flag is used or
-code is passed via standard input. This information is stored per-user. The exact
-location of the file depends on the _Black_ version and the system on which _Black_ is
-run. The file is non-portable. The standard location on common operating systems is:
-
-- Windows:
- `C:\\Users\<username>\AppData\Local\black\black\Cache\<version>\cache.<line-length>.<file-mode>.pickle`
-- macOS:
- `/Users/<username>/Library/Caches/black/<version>/cache.<line-length>.<file-mode>.pickle`
-- Linux:
- `/home/<username>/.cache/black/<version>/cache.<line-length>.<file-mode>.pickle`
-
-`file-mode` is an int flag that determines whether the file was formatted as 3.6+ only,
-as .pyi, and whether string normalization was omitted.
-
-To override the location of these files on macOS or Linux, set the environment variable
-`XDG_CACHE_HOME` to your preferred location. For example, if you want to put the cache
-in the directory you're running _Black_ from, set `XDG_CACHE_HOME=.cache`. _Black_ will
-then write the above files to `.cache/black/<version>/`.