diff options
| author | George Harker <george@george-graphics.co.uk> | 2023-03-19 18:09:18 -0700 |
|---|---|---|
| committer | Amaan Qureshi <amaanq12@gmail.com> | 2023-03-24 13:07:53 -0400 |
| commit | d1333dd7e51729a581fed3e429fa035bff77a3db (patch) | |
| tree | 961499041e8e3da94963e7331e09754d423b40a1 /tests/indent/python_spec.lua | |
| parent | fix: shim 0.9 deprecations (diff) | |
| download | nvim-treesitter-d1333dd7e51729a581fed3e429fa035bff77a3db.tar nvim-treesitter-d1333dd7e51729a581fed3e429fa035bff77a3db.tar.gz nvim-treesitter-d1333dd7e51729a581fed3e429fa035bff77a3db.tar.bz2 nvim-treesitter-d1333dd7e51729a581fed3e429fa035bff77a3db.tar.lz nvim-treesitter-d1333dd7e51729a581fed3e429fa035bff77a3db.tar.xz nvim-treesitter-d1333dd7e51729a581fed3e429fa035bff77a3db.tar.zst nvim-treesitter-d1333dd7e51729a581fed3e429fa035bff77a3db.zip | |
refactor(indent)!: Rework indent, aligned indent
indents now use @indent.X style captures, and indent.PROP for properties to set on those captures, as documented in the help.
Captures are:
indent.auto
indent.begin
indent.end
indent.dedent
indent.branch
indent.ignore
indent.align
indent.zero
Properties are:
indent.immediate
indent.start_at_same_line
indent.open_delimiter
indent.close_delimiter
indent.increment
indent.avoid_last_matching_next
Multiple opening delims on one line and multiple closing on a line are collapsed so as not to over indent,
The final line of @indent.align blocks which must in some cases be treated specially to avoid clashing with the next line is treated the same regardless of whether the @indent.align capture actually uses aligned indentation or just normal indentation. The indent.avoid_last_matching_next property controls this.
Adjust python to use these.
List, set, dict and tuple all use @indent.align which permits both hanging and aligned styles.
Finally, try: on it’s own will indent when typing live but make no guaranteeds about whole-file formatting.
Includes lucario387:fix-align-indent
Diffstat (limited to 'tests/indent/python_spec.lua')
| -rw-r--r-- | tests/indent/python_spec.lua | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/tests/indent/python_spec.lua b/tests/indent/python_spec.lua index c400de542..6f4e0fec7 100644 --- a/tests/indent/python_spec.lua +++ b/tests/indent/python_spec.lua @@ -17,6 +17,9 @@ describe("indent Python:", function() describe("new line:", function() run:new_line("aligned_indent.py", { on_line = 1, text = "arg3,", indent = 19 }) + run:new_line("aligned_indent_2.py", { on_line = 2, text = "x", indent = 4 }) + run:new_line("aligned_indent_2.py", { on_line = 9, text = "x", indent = 4 }) + run:new_line("aligned_indent_2.py", { on_line = 12, text = "x", indent = 4 }) run:new_line("basic_blocks.py", { on_line = 1, text = "wait,", indent = 4 }) run:new_line("basic_blocks.py", { on_line = 6, text = "x += 1", indent = 4 }) run:new_line("basic_blocks.py", { on_line = 7, text = "x += 1", indent = 4 }) @@ -35,11 +38,18 @@ describe("indent Python:", function() run:new_line("control_flow.py", { on_line = 22, text = "x = 4", indent = 4 }) run:new_line("control_flow.py", { on_line = 24, text = "c < 6 and", indent = 7 }) run:new_line("control_flow.py", { on_line = 26, text = "x = 4", indent = 4 }) - run:new_line("control_flow.py", { on_line = 29, text = "x = 4", indent = 4 }) + run:new_line("control_flow.py", { on_line = 28, text = "x = 4", indent = 4 }) run:new_line("branches.py", { on_line = 25, text = "x > 9 and", indent = 4 }) run:new_line("branches.py", { on_line = 29, text = "and x > 9", indent = 4 }) - run:new_line("hanging_indent.py", { on_line = 1, text = "arg0,", indent = 8 }) + run:new_line("hanging_indent.py", { on_line = 1, text = "arg0,", indent = 4 }) run:new_line("hanging_indent.py", { on_line = 5, text = "0,", indent = 4 }) + run:new_line("error_state_def.py", { on_line = 6, text = "b,", indent = 11 }) + run:new_line("error_state_tuple.py", { on_line = 7, text = "b,", indent = 1 }) + run:new_line("error_state_tuple_align.py", { on_line = 7, text = "b,", indent = 1 }) + run:new_line("error_state_list.py", { on_line = 5, text = "3,", indent = 6 }) + run:new_line("error_state_dict.py", { on_line = 6, text = "9:10,", indent = 6 }) + run:new_line("error_state_set.py", { on_line = 5, text = "9,", indent = 6 }) + run:new_line("error_state_funcall.py", { on_line = 5, text = "6,", indent = 2 }) run:new_line( "join_lines.py", { on_line = 1, text = "+ 1 \\", indent = 4 }, @@ -75,7 +85,7 @@ describe("indent Python:", function() run:new_line("line_after_indent.py", { on_line = 55, text = "x", indent = 4 }) run:new_line("line_after_indent.py", { on_line = 63, text = "x", indent = 4 }) - for _, line in ipairs { 2, 5, 8, 11, 16 } do + for _, line in ipairs { 2, 5, 8, 11, 16, 21, 24, 27, 34, 39 } do run:new_line("return_dedent.py", { on_line = line, text = "x", indent = 0 }) end end) |
