diff options
| author | Pham Huy Hoang <hoangtun0810@gmail.com> | 2023-03-16 08:39:58 +0900 |
|---|---|---|
| committer | Amaan Qureshi <amaanq12@gmail.com> | 2023-03-16 03:46:01 -0400 |
| commit | f5ddd8f92e0222f96b88c6012453eee33e02728a (patch) | |
| tree | bb7804a1622405590d5b89d62122190576dbc9c4 | |
| parent | fix: change folding algorithm to fix Python indents (diff) | |
| download | nvim-treesitter-f5ddd8f92e0222f96b88c6012453eee33e02728a.tar nvim-treesitter-f5ddd8f92e0222f96b88c6012453eee33e02728a.tar.gz nvim-treesitter-f5ddd8f92e0222f96b88c6012453eee33e02728a.tar.bz2 nvim-treesitter-f5ddd8f92e0222f96b88c6012453eee33e02728a.tar.lz nvim-treesitter-f5ddd8f92e0222f96b88c6012453eee33e02728a.tar.xz nvim-treesitter-f5ddd8f92e0222f96b88c6012453eee33e02728a.tar.zst nvim-treesitter-f5ddd8f92e0222f96b88c6012453eee33e02728a.zip | |
fix(python): add missing @indent_end
| -rw-r--r-- | queries/python/indents.scm | 18 | ||||
| -rw-r--r-- | tests/indent/python/line_after_indent.py | 65 | ||||
| -rw-r--r-- | tests/indent/python_spec.lua | 14 |
3 files changed, 95 insertions, 2 deletions
diff --git a/queries/python/indents.scm b/queries/python/indents.scm index da37c1f30..c02879712 100644 --- a/queries/python/indents.scm +++ b/queries/python/indents.scm @@ -50,14 +50,28 @@ ((ERROR "(" . (_)) @aligned_indent (#set! "delimiter" "()")) -((argument_list) @aligned_indent +((argument_list ")" @indent_end) @aligned_indent (#set! "delimiter" "()")) ((parameters) @aligned_indent (#set! "delimiter" "()") (#set! "final_line_indent" 1)) -((tuple) @aligned_indent +((tuple ")" @indent_end) @aligned_indent (#set! "delimiter" "()")) +(list "]" @indent_end) +(dictionary "}" @indent_end) +(set "}" @indent_end) + +(parenthesized_expression ")" @indent_end) +(generator_expression ")" @indent_end) +(list_comprehension "]" @indent_end) +(set_comprehension "}" @indent_end) +(dictionary_comprehension "}" @indent_end) + +(tuple_pattern ")" @indent_end) +(list_pattern "]" @indent_end) + + [ ")" "]" diff --git a/tests/indent/python/line_after_indent.py b/tests/indent/python/line_after_indent.py new file mode 100644 index 000000000..ba24dc03f --- /dev/null +++ b/tests/indent/python/line_after_indent.py @@ -0,0 +1,65 @@ +( + a, + b +) + +foo.bar( + a, b +) + +foo = [ + 1, + 2, + 3 +] + +foo = { + "a": 1, + "b": 2, + "c": 3 +} + +foo = { + 1, + 2, + 3, +} + +foo = ( + 1 + 2 +) + +( + a for a in range(0, 10) +) + +foo = [ + a for a in range(0, 10) +] + +foo = { + a for a in range(0, 10) +} + +foo = { + a: b for a, b in items +} + +foo.bar( + "baz") + +[ + a + b for ( + a, + b + ) + in items +] + +[ + a + b for [ + a, + b + ] + in items +] diff --git a/tests/indent/python_spec.lua b/tests/indent/python_spec.lua index b1e94cbf8..6b417a37f 100644 --- a/tests/indent/python_spec.lua +++ b/tests/indent/python_spec.lua @@ -60,5 +60,19 @@ describe("indent Python:", function() run:new_line("strings.py", { on_line = 14, text = "x", indent = 4 }) run:new_line("strings.py", { on_line = 15, text = "x", indent = 0 }) run:new_line("strings.py", { on_line = 16, text = "x", indent = 8 }) + run:new_line("line_after_indent.py", { on_line = 4, text = "x", indent = 0 }) + run:new_line("line_after_indent.py", { on_line = 8, text = "x", indent = 0 }) + run:new_line("line_after_indent.py", { on_line = 4, text = "x", indent = 0 }) + run:new_line("line_after_indent.py", { on_line = 14, text = "x", indent = 0 }) + run:new_line("line_after_indent.py", { on_line = 20, text = "x", indent = 0 }) + run:new_line("line_after_indent.py", { on_line = 26, text = "x", indent = 0 }) + run:new_line("line_after_indent.py", { on_line = 30, text = "x", indent = 0 }) + run:new_line("line_after_indent.py", { on_line = 34, text = "x", indent = 0 }) + run:new_line("line_after_indent.py", { on_line = 38, text = "x", indent = 0 }) + run:new_line("line_after_indent.py", { on_line = 42, text = "x", indent = 0 }) + run:new_line("line_after_indent.py", { on_line = 46, text = "x", indent = 0 }) + run:new_line("line_after_indent.py", { on_line = 49, text = "x", indent = 0 }) + 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 }) end) end) |
