aboutsummaryrefslogtreecommitdiffstats
path: root/queries
diff options
context:
space:
mode:
authorGeorge Harker <george@george-graphics.co.uk>2023-03-19 18:09:18 -0700
committerAmaan Qureshi <amaanq12@gmail.com>2023-03-24 13:07:53 -0400
commitd1333dd7e51729a581fed3e429fa035bff77a3db (patch)
tree961499041e8e3da94963e7331e09754d423b40a1 /queries
parentfix: shim 0.9 deprecations (diff)
downloadnvim-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 'queries')
-rw-r--r--queries/python/indents.scm49
1 files changed, 30 insertions, 19 deletions
diff --git a/queries/python/indents.scm b/queries/python/indents.scm
index cc13587ec..82933c159 100644
--- a/queries/python/indents.scm
+++ b/queries/python/indents.scm
@@ -1,8 +1,4 @@
[
- (list)
- (dictionary)
- (set)
-
(import_from_statement)
(parenthesized_expression)
@@ -20,6 +16,16 @@
(concatenated_string)
] @indent
+((list) @aligned_indent
+ (#set! "delimiter" "[]")
+)
+((dictionary) @aligned_indent
+ (#set! "delimiter" "{}")
+)
+((set) @aligned_indent
+ (#set! "delimiter" "{}")
+)
+
((for_statement) @indent
(#set! "immediate_indent" 1))
((if_statement) @indent
@@ -28,8 +34,7 @@
(#set! "immediate_indent" 1))
((try_statement) @indent
(#set! "immediate_indent" 1))
-((ERROR "try" ":") @indent
- (#set! "immediate_indent" 1))
+(ERROR "try" ":" @indent (#set! "immediate_indent" 1))
((function_definition) @indent
(#set! "immediate_indent" 1))
((class_definition) @indent
@@ -40,27 +45,24 @@
(if_statement
condition: (parenthesized_expression) @aligned_indent
(#set! "delimiter" "()")
- (#set! "final_line_indent" 1) ; parenthesized_expression already indented
-)
+ (#set! "avoid_last_matching_next" 1))
(while_statement
condition: (parenthesized_expression) @aligned_indent
(#set! "delimiter" "()")
- (#set! "final_line_indent" 1) ; parenthesized_expression already indented
-)
+ (#set! "avoid_last_matching_next" 1))
-((ERROR "(" . (_)) @aligned_indent
- (#set! "delimiter" "()"))
-((argument_list ")" @indent_end) @aligned_indent
+(ERROR "(" @aligned_indent (#set! "delimiter" "()") . (_))
+((argument_list) @aligned_indent
(#set! "delimiter" "()"))
((parameters) @aligned_indent
(#set! "delimiter" "()")
- (#set! "final_line_indent" 1))
-((tuple ")" @indent_end) @aligned_indent
+ (#set! "avoid_last_matching_next" 1))
+((tuple) @aligned_indent
(#set! "delimiter" "()"))
-(list "]" @indent_end)
-(dictionary "}" @indent_end)
-(set "}" @indent_end)
+(ERROR "[" @aligned_indent (#set! "delimiter" "[]") . (_))
+
+(ERROR "{" @aligned_indent (#set! "delimiter" "{}") . (_))
(parenthesized_expression ")" @indent_end)
(generator_expression ")" @indent_end)
@@ -75,9 +77,17 @@
(return_statement
[
(_) @indent_end
- (_ (_) @indent_end .)
+ (_
+ [
+ (_)
+ ")"
+ "}"
+ "]"
+ ] @indent_end .)
(attribute
attribute: (_) @indent_end)
+ (call
+ arguments: (_ ")" @indent_end))
"return" @indent_end
] .)
@@ -92,3 +102,4 @@
] @branch
(string) @auto
+