aboutsummaryrefslogtreecommitdiffstats
path: root/queries/python/indents.scm
diff options
context:
space:
mode:
authorGeorge Harker <george@george-graphics.co.uk>2023-03-14 12:25:38 -0700
committerStephan Seitz <stephan.seitz@fau.de>2023-03-15 22:44:59 +0100
commitfa0644667ea7ee7a72efdb69c471de4953a11019 (patch)
treef36f6f5a20ed8e3ffb5aa60578efaa32c7b8452c /queries/python/indents.scm
parentUpdate parsers: elixir, haskell, php, sql (diff)
downloadnvim-treesitter-fa0644667ea7ee7a72efdb69c471de4953a11019.tar
nvim-treesitter-fa0644667ea7ee7a72efdb69c471de4953a11019.tar.gz
nvim-treesitter-fa0644667ea7ee7a72efdb69c471de4953a11019.tar.bz2
nvim-treesitter-fa0644667ea7ee7a72efdb69c471de4953a11019.tar.lz
nvim-treesitter-fa0644667ea7ee7a72efdb69c471de4953a11019.tar.xz
nvim-treesitter-fa0644667ea7ee7a72efdb69c471de4953a11019.tar.zst
nvim-treesitter-fa0644667ea7ee7a72efdb69c471de4953a11019.zip
fix: change folding algorithm to fix Python indents
Diffstat (limited to 'queries/python/indents.scm')
-rw-r--r--queries/python/indents.scm38
1 files changed, 27 insertions, 11 deletions
diff --git a/queries/python/indents.scm b/queries/python/indents.scm
index 3032cedfb..da37c1f30 100644
--- a/queries/python/indents.scm
+++ b/queries/python/indents.scm
@@ -3,11 +3,6 @@
(dictionary)
(set)
- (if_statement)
- (for_statement)
- (while_statement)
- (with_statement)
- (try_statement)
(import_from_statement)
(parenthesized_expression)
@@ -21,24 +16,45 @@
(binary_operator)
(lambda)
- (function_definition)
- (class_definition)
(concatenated_string)
] @indent
-
+
+((for_statement) @indent
+ (#set! "immediate_indent" 1))
+((if_statement) @indent
+ (#set! "immediate_indent" 1))
+((while_statement) @indent
+ (#set! "immediate_indent" 1))
+((try_statement) @indent
+ (#set! "immediate_indent" 1))
+((ERROR "try" ":") @indent
+ (#set! "immediate_indent" 1))
+((function_definition) @indent
+ (#set! "immediate_indent" 1))
+((class_definition) @indent
+ (#set! "immediate_indent" 1))
+((with_statement) @indent
+ (#set! "immediate_indent" 1))
+
(if_statement
condition: (parenthesized_expression) @aligned_indent
(#set! "delimiter" "()")
+ (#set! "final_line_indent" 1) ; parenthesized_expression already indented
+)
+(while_statement
+ condition: (parenthesized_expression) @aligned_indent
+ (#set! "delimiter" "()")
+ (#set! "final_line_indent" 1) ; parenthesized_expression already indented
)
+
((ERROR "(" . (_)) @aligned_indent
(#set! "delimiter" "()"))
((argument_list) @aligned_indent
(#set! "delimiter" "()"))
-((argument_list) @aligned_indent
- (#set! "delimiter" "()"))
((parameters) @aligned_indent
- (#set! "delimiter" "()"))
+ (#set! "delimiter" "()")
+ (#set! "final_line_indent" 1))
((tuple) @aligned_indent
(#set! "delimiter" "()"))