]> 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 unstable formatting with some `# type: ignore`s (#1113)
authorMichael J. Sullivan <sully@msully.net>
Mon, 25 Nov 2019 22:16:00 +0000 (14:16 -0800)
committerJelle Zijlstra <jelle.zijlstra@gmail.com>
Mon, 25 Nov 2019 22:16:00 +0000 (14:16 -0800)
`type: ignore` shouldn't block collapsing a line, since it will still
apply fine to the merged line. This prevents an issue where a reformat
causes it to shift lines and then be merged on a subsequent pass.

There is a downside to this, which is that it can cause a `type:
ignore` to apply to more code than was originally intended. There
might be a way to apply this in a more limited situation, but I'm not
sure what it is.

Fixes #1061.

black.py
tests/data/comments2.py
tests/data/comments7.py

index 68c0052fdfe80bcdd2ec3be6d81165b65460b324..1c35643725c62acf5a6e83ad13f91afbf70ad8f1 100644 (file)
--- a/black.py
+++ b/black.py
@@ -1407,7 +1407,10 @@ class Line:
         for leaf_id, comments in self.comments.items():
             for comment in comments:
                 if is_type_comment(comment):
         for leaf_id, comments in self.comments.items():
             for comment in comments:
                 if is_type_comment(comment):
-                    if leaf_id not in ignored_ids or comment_seen:
+                    if comment_seen or (
+                        not is_type_comment(comment, " ignore")
+                        and leaf_id not in ignored_ids
+                    ):
                         return True
 
                 comment_seen = True
                         return True
 
                 comment_seen = True
index f4a30b8afac2720766e72abd50fc88f8cb324906..89c29104bd88b26d1952bcfdd651c1761220d203 100644 (file)
@@ -148,6 +148,12 @@ short
 
 CONFIG_FILES = [CONFIG_FILE, ] + SHARED_CONFIG_FILES + USER_CONFIG_FILES  # type: Final
 
 
 CONFIG_FILES = [CONFIG_FILE, ] + SHARED_CONFIG_FILES + USER_CONFIG_FILES  # type: Final
 
+class Test:
+    def _init_host(self, parsed) -> None:
+        if (parsed.hostname is None or  # type: ignore
+                not parsed.hostname.strip()):
+            pass
+
 #######################
 ### SECTION COMMENT ###
 #######################
 #######################
 ### SECTION COMMENT ###
 #######################
@@ -312,6 +318,13 @@ short
 
 CONFIG_FILES = [CONFIG_FILE,] + SHARED_CONFIG_FILES + USER_CONFIG_FILES  # type: Final
 
 
 CONFIG_FILES = [CONFIG_FILE,] + SHARED_CONFIG_FILES + USER_CONFIG_FILES  # type: Final
 
+
+class Test:
+    def _init_host(self, parsed) -> None:
+        if parsed.hostname is None or not parsed.hostname.strip():  # type: ignore
+            pass
+
+
 #######################
 ### SECTION COMMENT ###
 #######################
 #######################
 ### SECTION COMMENT ###
 #######################
index 948b3b03a2bfc139f09bdba5839a8194d4a72e05..40951253f2eeeee8455f1d7e15099337339e705e 100644 (file)
@@ -93,9 +93,7 @@ result = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 
 
 def func():
 
 
 def func():
-    c = call(
-        0.0123, 0.0456, 0.0789, 0.0123, 0.0789, a[-1],  # type: ignore
-    )
+    c = call(0.0123, 0.0456, 0.0789, 0.0123, 0.0789, a[-1],)  # type: ignore
 
     # The type: ignore exception only applies to line length, not
     # other types of formatting.
 
     # The type: ignore exception only applies to line length, not
     # other types of formatting.