aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/queries/python/indents.scm
diff options
context:
space:
mode:
authorChristian Clason <c.clason@uni-graz.at>2023-06-12 09:54:30 -0600
committerChristian Clason <c.clason@uni-graz.at>2025-05-12 18:43:40 +0200
commit692b051b09935653befdb8f7ba8afdb640adf17b (patch)
tree167162b6b129ae04f68c5735078521a72917c742 /runtime/queries/python/indents.scm
parentfeat(c-family): inherit injections (diff)
downloadnvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.gz
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.bz2
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.lz
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.xz
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.zst
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.zip
feat!: drop modules, general refactor and cleanup
Diffstat (limited to 'runtime/queries/python/indents.scm')
-rw-r--r--runtime/queries/python/indents.scm213
1 files changed, 213 insertions, 0 deletions
diff --git a/runtime/queries/python/indents.scm b/runtime/queries/python/indents.scm
new file mode 100644
index 000000000..2414812a7
--- /dev/null
+++ b/runtime/queries/python/indents.scm
@@ -0,0 +1,213 @@
+[
+ (import_from_statement)
+ (generator_expression)
+ (list_comprehension)
+ (set_comprehension)
+ (dictionary_comprehension)
+ (tuple_pattern)
+ (list_pattern)
+ (binary_operator)
+ (lambda)
+ (concatenated_string)
+] @indent.begin
+
+((list) @indent.align
+ (#set! indent.open_delimiter "[")
+ (#set! indent.close_delimiter "]"))
+
+((dictionary) @indent.align
+ (#set! indent.open_delimiter "{")
+ (#set! indent.close_delimiter "}"))
+
+((set) @indent.align
+ (#set! indent.open_delimiter "{")
+ (#set! indent.close_delimiter "}"))
+
+((parenthesized_expression) @indent.align
+ (#set! indent.open_delimiter "(")
+ (#set! indent.close_delimiter ")"))
+
+((for_statement) @indent.begin
+ (#set! indent.immediate 1))
+
+((if_statement) @indent.begin
+ (#set! indent.immediate 1))
+
+((while_statement) @indent.begin
+ (#set! indent.immediate 1))
+
+((try_statement) @indent.begin
+ (#set! indent.immediate 1))
+
+(ERROR
+ "try"
+ .
+ ":"
+ (#set! indent.immediate 1)) @indent.begin
+
+(ERROR
+ "try"
+ .
+ ":"
+ (ERROR
+ (block
+ (expression_statement
+ (identifier) @_except) @indent.branch))
+ (#eq? @_except "except"))
+
+((function_definition) @indent.begin
+ (#set! indent.immediate 1))
+
+((class_definition) @indent.begin
+ (#set! indent.immediate 1))
+
+((with_statement) @indent.begin
+ (#set! indent.immediate 1))
+
+((match_statement) @indent.begin
+ (#set! indent.immediate 1))
+
+((case_clause) @indent.begin
+ (#set! indent.immediate 1))
+
+; if (cond1
+; or cond2
+; or cond3):
+; pass
+;
+(if_statement
+ condition: (parenthesized_expression) @indent.align
+ (#lua-match? @indent.align "^%([^\n]")
+ (#set! indent.open_delimiter "(")
+ (#set! indent.close_delimiter ")")
+ (#set! indent.avoid_last_matching_next 1))
+
+; while (
+; cond1
+; or cond2
+; or cond3):
+; pass
+;
+(while_statement
+ condition: (parenthesized_expression) @indent.align
+ (#lua-match? @indent.align "[^\n ]%)$")
+ (#set! indent.open_delimiter "(")
+ (#set! indent.close_delimiter ")")
+ (#set! indent.avoid_last_matching_next 1))
+
+; if (
+; cond1
+; or cond2
+; or cond3):
+; pass
+;
+(if_statement
+ condition: (parenthesized_expression) @indent.align
+ (#lua-match? @indent.align "[^\n ]%)$")
+ (#set! indent.open_delimiter "(")
+ (#set! indent.close_delimiter ")")
+ (#set! indent.avoid_last_matching_next 1))
+
+(ERROR
+ "(" @indent.align
+ (#set! indent.open_delimiter "(")
+ (#set! indent.close_delimiter ")")
+ .
+ (_))
+
+((argument_list) @indent.align
+ (#set! indent.open_delimiter "(")
+ (#set! indent.close_delimiter ")"))
+
+((parameters) @indent.align
+ (#set! indent.open_delimiter "(")
+ (#set! indent.close_delimiter ")"))
+
+((parameters) @indent.align
+ (#lua-match? @indent.align "[^\n ]%)$")
+ (#set! indent.open_delimiter "(")
+ (#set! indent.close_delimiter ")")
+ (#set! indent.avoid_last_matching_next 1))
+
+((tuple) @indent.align
+ (#set! indent.open_delimiter "(")
+ (#set! indent.close_delimiter ")"))
+
+(ERROR
+ "[" @indent.align
+ (#set! indent.open_delimiter "[")
+ (#set! indent.close_delimiter "]")
+ .
+ (_))
+
+(ERROR
+ "{" @indent.align
+ (#set! indent.open_delimiter "{")
+ (#set! indent.close_delimiter "}")
+ .
+ (_))
+
+[
+ (break_statement)
+ (continue_statement)
+] @indent.dedent
+
+(ERROR
+ (_) @indent.branch
+ ":"
+ .
+ (#lua-match? @indent.branch "^else"))
+
+(ERROR
+ (_) @indent.branch @indent.dedent
+ ":"
+ .
+ (#lua-match? @indent.branch "^elif"))
+
+(generator_expression
+ ")" @indent.end)
+
+(list_comprehension
+ "]" @indent.end)
+
+(set_comprehension
+ "}" @indent.end)
+
+(dictionary_comprehension
+ "}" @indent.end)
+
+(tuple_pattern
+ ")" @indent.end)
+
+(list_pattern
+ "]" @indent.end)
+
+(return_statement
+ [
+ (_) @indent.end
+ (_
+ [
+ (_)
+ ")"
+ "}"
+ "]"
+ ] @indent.end .)
+ (attribute
+ attribute: (_) @indent.end)
+ (call
+ arguments: (_
+ ")" @indent.end))
+ "return" @indent.end
+ ] .)
+
+[
+ ")"
+ "]"
+ "}"
+ (elif_clause)
+ (else_clause)
+ (except_clause)
+ (finally_clause)
+] @indent.branch
+
+(string) @indent.auto