]> 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:

Fix long trivial assignments being wrapped in unnecessary parentheses
authorŁukasz Langa <lukasz@langa.pl>
Tue, 5 Jun 2018 03:24:50 +0000 (20:24 -0700)
committerŁukasz Langa <lukasz@langa.pl>
Tue, 5 Jun 2018 03:24:50 +0000 (20:24 -0700)
Fixes #273

README.md
black.py
tests/cantfit.py

index 911d1f98277e7470f7e3feefe3c557674ee99974..bfd77f94ab62f81a095807134919880b79cc0643 100644 (file)
--- a/README.md
+++ b/README.md
@@ -719,6 +719,8 @@ More details can be found in [CONTRIBUTING](CONTRIBUTING.md).
 
 * the header output in `--diff` now actually conforms to the unified diff spec
 
 
 * the header output in `--diff` now actually conforms to the unified diff spec
 
+* fixed long trivial assignments being wrapped in unnecessary parentheses (#273)
+
 * fixed stdin handling not working correctly if an old version of Click was
   used (#276)
 
 * fixed stdin handling not working correctly if an old version of Click was
   used (#276)
 
index c6b018ffd050431a4592ab5b15820cb610c986f3..35af598e59032c62397bff766d06b006df41174c 100644 (file)
--- a/black.py
+++ b/black.py
@@ -2213,11 +2213,14 @@ def right_hand_split(
             result.append(leaf, preformatted=True)
             for comment_after in line.comments_after(leaf):
                 result.append(comment_after, preformatted=True)
             result.append(leaf, preformatted=True)
             for comment_after in line.comments_after(leaf):
                 result.append(comment_after, preformatted=True)
-    bracket_split_succeeded_or_raise(head, body, tail)
     assert opening_bracket and closing_bracket
     assert opening_bracket and closing_bracket
+    body.should_explode = should_explode(body, opening_bracket)
+    bracket_split_succeeded_or_raise(head, body, tail)
     if (
     if (
+        # the body shouldn't be exploded
+        not body.should_explode
         # the opening bracket is an optional paren
         # the opening bracket is an optional paren
-        opening_bracket.type == token.LPAR
+        and opening_bracket.type == token.LPAR
         and not opening_bracket.value
         # the closing bracket is an optional paren
         and closing_bracket.type == token.RPAR
         and not opening_bracket.value
         # the closing bracket is an optional paren
         and closing_bracket.type == token.RPAR
@@ -2234,11 +2237,15 @@ def right_hand_split(
                 yield from right_hand_split(line, line_length, py36=py36, omit=omit)
                 return
             except CannotSplit:
                 yield from right_hand_split(line, line_length, py36=py36, omit=omit)
                 return
             except CannotSplit:
-                pass
+                if len(body.leaves) == 1 and not is_line_short_enough(
+                    body, line_length=line_length
+                ):
+                    raise CannotSplit(
+                        "Splitting failed, body is still too long and can't be split."
+                    )
 
     ensure_visible(opening_bracket)
     ensure_visible(closing_bracket)
 
     ensure_visible(opening_bracket)
     ensure_visible(closing_bracket)
-    body.should_explode = should_explode(body, opening_bracket)
     for result in (head, body, tail):
         if result:
             yield result
     for result in (head, body, tail):
         if result:
             yield result
index bc38ed22ecc1cb12b7d5418c41b7b3b5f77123f3..816cdef88819b9991668f6090aa89a71662d66a1 100644 (file)
@@ -25,6 +25,9 @@ normal_name = normal_function_name(
     "eggs with spam and eggs and spam with eggs with spam and eggs and spam with eggs with spam and eggs and spam with eggs",
     this_is_a_ridiculously_long_name_and_nobody_in_their_right_mind_would_use_one_like_it=0,
 )
     "eggs with spam and eggs and spam with eggs with spam and eggs and spam with eggs with spam and eggs and spam with eggs",
     this_is_a_ridiculously_long_name_and_nobody_in_their_right_mind_would_use_one_like_it=0,
 )
+string_variable_name = (
+    "a string that is waaaaaaaayyyyyyyy too long, even in parens, there's nothing you can do"  # noqa
+)
 
 
 # output
 
 
 # output
@@ -67,3 +70,4 @@ normal_name = normal_function_name(
     "eggs with spam and eggs and spam with eggs with spam and eggs and spam with eggs with spam and eggs and spam with eggs",
     this_is_a_ridiculously_long_name_and_nobody_in_their_right_mind_would_use_one_like_it=0,
 )
     "eggs with spam and eggs and spam with eggs with spam and eggs and spam with eggs with spam and eggs and spam with eggs",
     this_is_a_ridiculously_long_name_and_nobody_in_their_right_mind_would_use_one_like_it=0,
 )
+string_variable_name = "a string that is waaaaaaaayyyyyyyy too long, even in parens, there's nothing you can do"  # noqa