X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/f71db23824a25300618dd0625085ade8d2b3a7a8..fdc4b67433906c2b8beeb349366a69befc37aafe:/tests/data/fmtonoff.py?ds=sidebyside

diff --git a/tests/data/fmtonoff.py b/tests/data/fmtonoff.py
index 5666dd8..5a50eb1 100644
--- a/tests/data/fmtonoff.py
+++ b/tests/data/fmtonoff.py
@@ -11,6 +11,10 @@ from third_party import (X,
                          Y, Z)
 # fmt: on
 f'trigger 3.6 mode'
+# Comment 1
+
+# Comment 2
+
 # fmt: off
 def func_no_args():
   a; b; c
@@ -35,11 +39,48 @@ def function_signature_stress_test(number:int,no_annotation=None,text:str='defau
  return text[number:-1]
 # fmt: on
 def spaces(a=1, b=(), c=[], d={}, e=True, f=-1, g=1 if False else 2, h="", i=r''):
- offset = attr.ib(default=attr.Factory( lambda: _r.uniform(10000, 200000)))
+ offset = attr.ib(default=attr.Factory( lambda: _r.uniform(1, 2)))
  assert task._cancel_stack[:len(old_stack)] == old_stack
 def spaces_types(a: int = 1, b: tuple = (), c: list = [], d: dict = {}, e: bool = True, f: int = -1, g: int = 1 if False else 2, h: str = "", i: str = r''): ...
 def spaces2(result= _core.Value(None)):
  ...
+something = {
+    # fmt: off
+    key: 'value',
+}
+
+def subscriptlist():
+    atom[
+        # fmt: off
+        'some big and',
+        'complex subscript',
+        # fmt: on
+        goes + here, andhere,
+       ]
+
+def import_as_names():
+    # fmt: off
+    from hello import a,        b
+    'unformatted'
+    # fmt: on
+
+def testlist_star_expr():
+    # fmt: off
+    a , b = *hello
+    'unformatted'
+    # fmt: on
+
+def yield_expr():
+    # fmt: off
+    yield hello
+    'unformatted'
+    # fmt: on
+    'formatted'
+    # fmt: off
+    ( yield hello )
+    'unformatted'
+    # fmt: on
+
 def example(session):
     # fmt: off
     result = session\
@@ -49,6 +90,31 @@ def example(session):
         .order_by(models.Customer.id.asc())\
         .all()
     # fmt: on
+def off_and_on_without_data():
+    """All comments here are technically on the same prefix.
+
+    The comments between will be formatted. This is a known limitation.
+    """
+    # fmt: off
+
+
+        #hey, that won't work
+
+
+    # fmt: on
+    pass
+def on_and_off_broken():
+    """Another known limitation."""
+    # fmt: on
+    # fmt: off
+    this=should.not_be.formatted()
+    and_=indeed . it  is  not  formatted
+    because . the . handling . inside . generate_ignored_nodes()
+    now . considers . multiple . fmt . directives . within . one . prefix
+    # fmt: on
+    # fmt: off
+        # ...but comments still get reformatted even though they should not be
+    # fmt: on
 def long_lines():
     if True:
         typedargslist.extend(
@@ -78,18 +144,42 @@ def long_lines():
             \n?
         )
         $
-        """, # fmt: off
-        re.MULTILINE | re.VERBOSE
+        """,
+        # fmt: off
+        re.MULTILINE|re.VERBOSE
+        # fmt: on
     )
-    # fmt: on
 def single_literal_yapf_disable():
     """Black does not support this."""
     BAZ = {
         (1, 2, 3, 4),
         (5, 6, 7, 8),
-        (9, 10, 11, 12),
+        (9, 10, 11, 12)
     }  # yapf: disable
+cfg.rule(
+    "Default", "address",
+    xxxx_xxxx=["xxx-xxxxxx-xxxxxxxxxx"],
+    xxxxxx="xx_xxxxx", xxxxxxx="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
+    xxxxxxxxx_xxxx=True, xxxxxxxx_xxxxxxxxxx=False,
+    xxxxxx_xxxxxx=2, xxxxxx_xxxxx_xxxxxxxx=70, xxxxxx_xxxxxx_xxxxx=True,
+    # fmt: off
+    xxxxxxx_xxxxxxxxxxxx={
+        "xxxxxxxx": {
+            "xxxxxx": False,
+            "xxxxxxx": False,
+            "xxxx_xxxxxx": "xxxxx",
+        },
+        "xxxxxxxx-xxxxx": {
+            "xxxxxx": False,
+            "xxxxxxx": True,
+            "xxxx_xxxxxx": "xxxxxx",
+        },
+    },
+    # fmt: on
+    xxxxxxxxxx_xxxxxxxxxxx_xxxxxxx_xxxxxxxxx=5
+)
 # fmt: off
+yield  'hello'
 # No formatting to the end of the file
 l=[1,2,3]
 d={'a':1,
@@ -111,6 +201,10 @@ from third_party import (X,
                          Y, Z)
 # fmt: on
 f"trigger 3.6 mode"
+# Comment 1
+
+# Comment 2
+
 # fmt: off
 def func_no_args():
   a; b; c
@@ -135,7 +229,7 @@ def function_signature_stress_test(number:int,no_annotation=None,text:str='defau
  return text[number:-1]
 # fmt: on
 def spaces(a=1, b=(), c=[], d={}, e=True, f=-1, g=1 if False else 2, h="", i=r""):
-    offset = attr.ib(default=attr.Factory(lambda: _r.uniform(10000, 200000)))
+    offset = attr.ib(default=attr.Factory(lambda: _r.uniform(1, 2)))
     assert task._cancel_stack[: len(old_stack)] == old_stack
 
 
@@ -157,6 +251,49 @@ def spaces2(result=_core.Value(None)):
     ...
 
 
+something = {
+    # fmt: off
+    key: 'value',
+}
+
+
+def subscriptlist():
+    atom[
+        # fmt: off
+        'some big and',
+        'complex subscript',
+        # fmt: on
+        goes + here,
+        andhere,
+    ]
+
+
+def import_as_names():
+    # fmt: off
+    from hello import a,        b
+    'unformatted'
+    # fmt: on
+
+
+def testlist_star_expr():
+    # fmt: off
+    a , b = *hello
+    'unformatted'
+    # fmt: on
+
+
+def yield_expr():
+    # fmt: off
+    yield hello
+    'unformatted'
+    # fmt: on
+    "formatted"
+    # fmt: off
+    ( yield hello )
+    'unformatted'
+    # fmt: on
+
+
 def example(session):
     # fmt: off
     result = session\
@@ -168,6 +305,33 @@ def example(session):
     # fmt: on
 
 
+def off_and_on_without_data():
+    """All comments here are technically on the same prefix.
+
+    The comments between will be formatted. This is a known limitation.
+    """
+    # fmt: off
+
+    # hey, that won't work
+
+    # fmt: on
+    pass
+
+
+def on_and_off_broken():
+    """Another known limitation."""
+    # fmt: on
+    # fmt: off
+    this=should.not_be.formatted()
+    and_=indeed . it  is  not  formatted
+    because . the . handling . inside . generate_ignored_nodes()
+    now . considers . multiple . fmt . directives . within . one . prefix
+    # fmt: on
+    # fmt: off
+    # ...but comments still get reformatted even though they should not be
+    # fmt: on
+
+
 def long_lines():
     if True:
         typedargslist.extend(
@@ -202,10 +366,11 @@ def long_lines():
             \n?
         )
         $
-        """,  # fmt: off
-        re.MULTILINE | re.VERBOSE,
+        """,
+        # fmt: off
+        re.MULTILINE|re.VERBOSE
+        # fmt: on
     )
-    # fmt: on
 
 
 def single_literal_yapf_disable():
@@ -213,7 +378,35 @@ def single_literal_yapf_disable():
     BAZ = {(1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12)}  # yapf: disable
 
 
+cfg.rule(
+    "Default",
+    "address",
+    xxxx_xxxx=["xxx-xxxxxx-xxxxxxxxxx"],
+    xxxxxx="xx_xxxxx",
+    xxxxxxx="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
+    xxxxxxxxx_xxxx=True,
+    xxxxxxxx_xxxxxxxxxx=False,
+    xxxxxx_xxxxxx=2,
+    xxxxxx_xxxxx_xxxxxxxx=70,
+    xxxxxx_xxxxxx_xxxxx=True,
+    # fmt: off
+    xxxxxxx_xxxxxxxxxxxx={
+        "xxxxxxxx": {
+            "xxxxxx": False,
+            "xxxxxxx": False,
+            "xxxx_xxxxxx": "xxxxx",
+        },
+        "xxxxxxxx-xxxxx": {
+            "xxxxxx": False,
+            "xxxxxxx": True,
+            "xxxx_xxxxxx": "xxxxxx",
+        },
+    },
+    # fmt: on
+    xxxxxxxxxx_xxxxxxxxxxx_xxxxxxx_xxxxxxxxx=5,
+)
 # fmt: off
+yield  'hello'
 # No formatting to the end of the file
 l=[1,2,3]
 d={'a':1,