helix-mods/runtime/queries/python/indents.scm
Triton171 873434b927
Improve indent queries for python in specific cases (#5332)
where the tree-sitter completely fails to parse incomplete code.
2023-01-07 14:39:31 +09:00

75 lines
1.1 KiB
Scheme

[
(list)
(tuple)
(dictionary)
(set)
(if_statement)
(for_statement)
(while_statement)
(with_statement)
(try_statement)
(match_statement)
(case_clause)
(import_from_statement)
(parenthesized_expression)
(generator_expression)
(list_comprehension)
(set_comprehension)
(dictionary_comprehension)
(tuple_pattern)
(list_pattern)
(argument_list)
(parameters)
(binary_operator)
(function_definition)
(class_definition)
] @indent
; Workaround for the tree-sitter grammar creating large errors when a
; try_statement is missing the except/finally clause
(ERROR
"try"
.
":" @indent @extend)
(ERROR
.
"def") @indent @extend
(ERROR
(block) @indent @extend
(#set! "scope" "all"))
[
(if_statement)
(for_statement)
(while_statement)
(with_statement)
(try_statement)
(match_statement)
(case_clause)
(function_definition)
(class_definition)
] @extend
[
(return_statement)
(break_statement)
(continue_statement)
(raise_statement)
(pass_statement)
] @extend.prevent-once
[
")"
"]"
"}"
] @outdent
(elif_clause
"elif" @outdent)
(else_clause
"else" @outdent)