X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/b7f4ace0d187276573cb6cdd9e4c8ee11d3bd9ae..661908cd0282ff464794a8193475693e9130b866:/README.md diff --git a/README.md b/README.md index be0577c..e65d981 100644 --- a/README.md +++ b/README.md @@ -289,6 +289,33 @@ a bit easier than double quotes. The latter requires use of the Shift key. My recommendation here is to keep using whatever is faster to type and let *Black* handle the transformation. +### Line Breaks & Binary Operators + +*Black* will break a line before a binary operator when splitting a block +of code over multiple lines. This is so that *Black* is compliant with the +recent changes in the [PEP 8](https://www.python.org/dev/peps/pep-0008/#should-a-line-break-before-or-after-a-binary-operator) +style guide, which emphasizes that this approach improves readability. + +This behaviour may raise ``W503 line break before binary operator`` warnings in +style guide enforcement tools like Flake8. Since ``W503`` is not PEP 8 compliant, +you should tell Flake8 to ignore these warnings. + +### Parentheses + +Some parentheses are optional in the Python grammar. Any expression can +be wrapped in a pair of parentheses to form an atom. There are a few +interesting cases: + +- `if (...):` +- `while (...):` +- `for (...) in (...):` +- `assert (...), (...)` +- `from X import (...)` + +In those cases, parentheses are removed when the entire statement fits +in one line, or if the inner expression doesn't have any delimiters to +further split on. Otherwise, the parentheses are always added. + ## Editor integration @@ -297,6 +324,36 @@ and let *Black* handle the transformation. Use [proofit404/blacken](https://github.com/proofit404/blacken). +### PyCharm + +1. Install `black`. + + $ pip install black + +2. Locate your `black` installation folder. + + On MacOS / Linux / BSD: + + $ which black + /usr/local/bin/black # possible location + + On Windows: + + $ where black + %LocalAppData%\Programs\Python\Python36-32\Scripts\black.exe # possible location + +3. Open External tools in PyCharm with `File -> Settings -> Tools -> External Tools`. + +4. Click the + icon to add a new external tool with the following values: + - Name: Black + - Description: Black is the uncompromising Python code formatter. + - Program: + - Arguments: $FilePath$ + +5. Format the currently opened file by selecting `Tools -> External Tools -> black`. + - Alternatively, you can set a keyboard shortcut by navigating to `Preferences -> Keymap`. + + ### Vim Commands and shortcuts: @@ -434,16 +491,36 @@ More details can be found in [CONTRIBUTING](CONTRIBUTING.md). ## Change Log +### 18.4a3 + +* generalized star expression handling, including double stars; this + fixes multiplication making expressions "unsafe" for trailing commas (#132) + +### 18.4a2 + +* fixed parsing of unaligned standalone comments (#99, #112) + +* fixed placement of dictionary unpacking inside dictionary literals (#111) + +* Vim plugin now works on Windows, too + +* fixed unstable formatting when encountering unnecessarily escaped quotes + in a string (#120) + + ### 18.4a1 * added `--quiet` (#78) +* added automatic parentheses management (#4) + * added [pre-commit](https://pre-commit.com) integration (#103, #104) * fixed reporting on `--check` with multiple files (#101, #102) * fixed removing backslash escapes from raw strings (#100, #105) + ### 18.4a0 * added `--diff` (#87) @@ -568,8 +645,10 @@ More details can be found in [CONTRIBUTING](CONTRIBUTING.md). Glued together by [Łukasz Langa](mailto:lukasz@langa.pl). -Maintained with [Carol Willing](mailto:carolcode@willingconsulting.com) -and [Carl Meyer](mailto:carl@oddbird.net). +Maintained with [Carol Willing](mailto:carolcode@willingconsulting.com), +[Carl Meyer](mailto:carl@oddbird.net), +[Mika Naylor](mailto:mail@autophagy.io), and +[Zsolt Dollenstein](mailto:zsol.zsol@gmail.com). Multiple contributions by: * [Anthony Sottile](mailto:asottile@umich.edu) @@ -578,6 +657,4 @@ Multiple contributions by: * [Eli Treuherz](mailto:eli.treuherz@cgi.com) * Hugo van Kemenade * [Ivan Katanić](mailto:ivan.katanic@gmail.com) -* [Mika Naylor](mailto:mail@autophagy.io) * [Osaetin Daniel](mailto:osaetindaniel@gmail.com) -* [Zsolt Dollenstein](mailto:zsol.zsol@gmail.com)