X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/5fd1e91bff1857b2398c39f675267bb295d3cad6..d320e283aa6698ea7f7b80e2ff6f58a864fcfe0f:/README.md?ds=sidebyside diff --git a/README.md b/README.md index 5067557..e5a3036 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ possible. --- -*Contents:* **[Installation and Usage](#installation-and-usage)** | +*Contents:* **[Installation and usage](#installation-and-usage)** | **[The *Black* code style](#the-black-code-style)** | **[Editor integration](#editor-integration)** | **[Version control integration](#version-control-integration)** | @@ -80,6 +80,13 @@ Options: -q, --quiet Don't emit non-error messages to stderr. Errors are still emitted, silence those with 2>/dev/null. + --pyi Consider all input files typing stubs regardless + of file extension (useful when piping source on + standard input). + --py36 Allow using Python 3.6-only syntax on all input + files. This will put trailing commas in function + signatures and calls also after *args and + **kwargs. [default: per-file auto-detection] --version Show the version and exit. --help Show this message and exit. ``` @@ -197,10 +204,20 @@ If a data structure literal (tuple, list, set, dict) or a line of "from" imports cannot fit in the allotted length, it's always split into one element per line. This minimizes diffs as well as enables readers of code to find which commit introduced a particular entry. This also -makes *Black* compatible with [isort](https://pypi.org/p/isort/). Use -`multi_line_output=3`, `include_trailing_comma=True`, -`force_grid_wrap=0`, and `line_length=88` in your isort config. +makes *Black* compatible with [isort](https://pypi.org/p/isort/). +If you do wish to use *Black* alongside `isort`, you can pass the following +command-line arguments to ensure compatible behaviour: +``` +$ isort --multi-line=3 --trailing-comma --force-grid-wrap=0 --line-width=88 [ file.py ] +``` +Or use the equivalent directives in your isort config: +``` +multi_line_output=3 +include_trailing_comma=True +force_grid_wrap=0 +line_length=88 +``` ### Line length @@ -380,7 +397,7 @@ decision = (maybe.this() and values > 0) or (maybe.that() and values < 0) Some popular APIs, like ORMs, use call chaining. This API style is known as a [fluent interface](https://en.wikipedia.org/wiki/Fluent_interface). -*Black* formats those treating dots that follow a call or an indexing +*Black* formats those by treating dots that follow a call or an indexing operation like a very low priority delimiter. It's easier to show the behavior than to explain it. Look at the example: ```py3 @@ -521,6 +538,12 @@ install *Black* (for example you want to run a version from master), create a virtualenv manually and point `g:black_virtualenv` to it. The plugin will use it. +To run *Black* on save, add the following line to `.vimrc` or `init.vim`: + +``` +autocmd BufWritePost *.py execute ':Black' +``` + **How to get Vim with Python 3.6?** On Ubuntu 17.10 Vim comes with Python 3.6 by default. On macOS with Homebrew run: `brew install vim --with-python3`. @@ -651,6 +674,28 @@ More details can be found in [CONTRIBUTING](CONTRIBUTING.md). ## Change Log +### 18.5b1 (unreleased) + +* added `--pyi` (#249) + +* added `--py36` (#249) + +* Python grammar pickle caches are stored with the formatting caches, making + *Black* work in environments where site-packages is not user-writable (#192) + +* fixed invalid code produced when standalone comments were present in a trailer + that was omitted from line splitting on a large expression (#237) + +* fixed optional parentheses being removed within `# fmt: off` sections (#224) + +* fixed invalid code produced when stars in very long imports were incorrectly + wrapped in optional parentheses (#234) + +* fixed unstable formatting when inline comments were moved around in + a trailer that was omitted from line splitting on a large expression + (#238) + + ### 18.5b0 * call chains are now formatted according to the