]> git.madduck.net Git - etc/vim.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Don't omit whitespace when the factor is not a math operator
authorŁukasz Langa <lukasz@langa.pl>
Thu, 22 Mar 2018 01:23:46 +0000 (18:23 -0700)
committerŁukasz Langa <lukasz@langa.pl>
Thu, 22 Mar 2018 01:34:16 +0000 (18:34 -0700)
Fixes #55

README.md
black.py
tests/expression.py

index 20ab4be7e5b3c728d8cf6863563ac34e3d4fd22a..aba30ab2fb0483483e75bb32f28d7bd6185ae2ca 100644 (file)
--- a/README.md
+++ b/README.md
@@ -293,6 +293,11 @@ More details can be found in [CONTRIBUTING](CONTRIBUTING.md).
 
 ## Change Log
 
+### 18.3a4 (unreleased)
+
+* don't omit whitespace if the previous factor leaf wasn't a math
+  operator (#55)
+
 ### 18.3a3
 
 * don't remove single empty lines outside of bracketed expressions
index 1c07de713fde713f5814275cc0a6e07f8c18db26..0dd763073622d2ec1d0234b46cf5cd4e42bfe607 100644 (file)
--- a/black.py
+++ b/black.py
@@ -340,6 +340,7 @@ MATH_OPERATORS = {
     token.AMPER,
     token.PERCENT,
     token.CIRCUMFLEX,
+    token.TILDE,
     token.LEFTSHIFT,
     token.RIGHTSHIFT,
     token.DOUBLESTAR,
@@ -888,7 +889,11 @@ def whitespace(leaf: Leaf) -> str:  # noqa C901
             if prevp.parent and prevp.parent.type in {syms.subscript, syms.sliceop}:
                 return NO
 
-        elif prevp.parent and prevp.parent.type in {syms.factor, syms.star_expr}:
+        elif (
+            prevp.parent
+            and prevp.parent.type in {syms.factor, syms.star_expr}
+            and prevp.type in MATH_OPERATORS
+        ):
             return NO
 
     elif prev.type in OPENING_BRACKETS:
index dbb9303673eb2b98feb69ccdec018ecc28c5b09e..c18942ec3522f058dfd7f173d669bfb07385e932 100644 (file)
@@ -63,6 +63,8 @@ str or None if (1 if True else 2) else str or bytes or None
 [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
 {i: 0 for i in (1, 2, 3)}
 {i: j for i, j in ((1, 'a'), (2, 'b'), (3, 'c'))}
+{a: b * 2 for a, b in dictionary.items()}
+{a: b * -2 for a, b in dictionary.items()}
 {k: v for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension}
 Python3 > Python2 > COBOL
 Life is Life
@@ -214,6 +216,8 @@ str or None if (1 if True else 2) else str or bytes or None
 [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
 {i: 0 for i in (1, 2, 3)}
 {i: j for i, j in ((1, 'a'), (2, 'b'), (3, 'c'))}
+{a: b * 2 for a, b in dictionary.items()}
+{a: b * -2 for a, b in dictionary.items()}
 {
     k: v
     for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension