X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/d9c6b9907390ca73130df1d8253481505eb2bce7..c7c8c4f5018844d69edbc961c922b29f0d6ceeaf:/README.md diff --git a/README.md b/README.md index 1b83308..20ab4be 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,12 @@ Options: --help Show this message and exit. ``` +`Black` is a well-behaved Unix-style command-line tool: +* it does nothing if no sources are passed to it; +* it will read from standard input and write to standard output if `-` + is used as the filename; +* it only outputs messages to users on standard error. + ## The philosophy behind *Black* @@ -76,12 +82,14 @@ or simple statement per line. If this fits the allotted line length, great. ```py3 # in: + l = [1, 2, 3, ] # out: + l = [1, 2, 3] ``` @@ -89,9 +97,11 @@ If not, *Black* will look at the contents of the first outer matching brackets and put that in a separate indented line. ```py3 # in: + l = [[n for n in list_bosses()], [n for n in list_employees()]] # out: + l = [ [n for n in list_bosses()], [n for n in list_employees()] ] @@ -106,12 +116,14 @@ matching brackets. If that doesn't work, it will put all of them in separate lines. ```py3 # in: + def very_important_function(template: str, *variables, file: os.PathLike, debug: bool = False): """Applies `variables` to the `template` and writes to `file`.""" with open(file, 'w') as f: ... # out: + def very_important_function( template: str, *variables, @@ -183,9 +195,33 @@ explains it. The tl;dr is "it's like highway speed limits, we won't bother you if you overdo it by a few km/h". +### Empty lines + +*Black* will allow single empty lines left by the original editors, +except when they're added within parenthesized expressions. Since such +expressions are always reformatted to fit minimal space, this whitespace +is lost. + +It will also insert proper spacing before and after function definitions. +It's one line before and after inner functions and two lines before and +after module-level functions. *Black* will put those empty lines also +between the function definition and any standalone comments that +immediately precede the given function. If you want to comment on the +entire function, use a docstring or put a leading comment in the function +body. + + ### Editor integration -There is currently no integration with any text editors. Vim and +* Visual Studio Code: [joslarson.black-vscode](https://marketplace.visualstudio.com/items?itemName=joslarson.black-vscode) + +Any tool that can pipe code through *Black* using its stdio mode (just +[use `-` as the file name](http://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. + +There is currently no integration with any other text editors. Vim and Atom/Nuclide integration is planned by the author, others will require external contributions. @@ -259,11 +295,16 @@ More details can be found in [CONTRIBUTING](CONTRIBUTING.md). ### 18.3a3 +* don't remove single empty lines outside of bracketed expressions + (#19) + * added ability to pipe formatting from stdin to stdin (#25) * restored ability to format code with legacy usage of `async` as a name (#20, #42) +* even better handling of numpy-style array indexing (#33, again) + ### 18.3a2