diff options
| author | Pham Huy Hoang <hoangtun0810@gmail.com> | 2023-03-16 19:04:17 +0900 |
|---|---|---|
| committer | Stephan Seitz <stephan.seitz@fau.de> | 2023-03-16 13:41:19 +0100 |
| commit | 01e8a5145160620140c3c57d285ccb2cfe067540 (patch) | |
| tree | 5c0e6f5c17c8f57935d325ae8132acbc466ad591 | |
| parent | fix(windows): treat any non-cmd shell as powershell like in selector (diff) | |
| download | nvim-treesitter-01e8a5145160620140c3c57d285ccb2cfe067540.tar nvim-treesitter-01e8a5145160620140c3c57d285ccb2cfe067540.tar.gz nvim-treesitter-01e8a5145160620140c3c57d285ccb2cfe067540.tar.bz2 nvim-treesitter-01e8a5145160620140c3c57d285ccb2cfe067540.tar.lz nvim-treesitter-01e8a5145160620140c3c57d285ccb2cfe067540.tar.xz nvim-treesitter-01e8a5145160620140c3c57d285ccb2cfe067540.tar.zst nvim-treesitter-01e8a5145160620140c3c57d285ccb2cfe067540.zip | |
feat(python): add "return" patterns to @indent_end
`return ...` is usually the last line of a
function/statement, so mark some possible patterns of `return` with
`@indent_end` to dedent the line after it
| -rw-r--r-- | queries/python/indents.scm | 9 | ||||
| -rw-r--r-- | tests/indent/python/return_dedent.py | 16 | ||||
| -rw-r--r-- | tests/indent/python_spec.lua | 4 |
3 files changed, 29 insertions, 0 deletions
diff --git a/queries/python/indents.scm b/queries/python/indents.scm index c02879712..cc13587ec 100644 --- a/queries/python/indents.scm +++ b/queries/python/indents.scm @@ -72,6 +72,15 @@ (list_pattern "]" @indent_end) +(return_statement + [ + (_) @indent_end + (_ (_) @indent_end .) + (attribute + attribute: (_) @indent_end) + "return" @indent_end + ] .) + [ ")" "]" diff --git a/tests/indent/python/return_dedent.py b/tests/indent/python/return_dedent.py new file mode 100644 index 000000000..44d6219de --- /dev/null +++ b/tests/indent/python/return_dedent.py @@ -0,0 +1,16 @@ +def a(): + return + +def a(): + return True + +def a(): + return (1, 2, 3) + +def a(): + return x.y.z + +def a(): + return ( + 1, 2, 3 + ) diff --git a/tests/indent/python_spec.lua b/tests/indent/python_spec.lua index 6b417a37f..c400de542 100644 --- a/tests/indent/python_spec.lua +++ b/tests/indent/python_spec.lua @@ -74,5 +74,9 @@ describe("indent Python:", function() 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 }) + + for _, line in ipairs { 2, 5, 8, 11, 16 } do + run:new_line("return_dedent.py", { on_line = line, text = "x", indent = 0 }) + end end) end) |
