mirror of
https://github.com/helix-editor/helix.git
synced 2024-12-18 22:11:55 +04:00
52 lines
1.4 KiB
Scheme
52 lines
1.4 KiB
Scheme
[
|
|
(compound_statement)
|
|
(declaration_list)
|
|
(field_declaration_list)
|
|
(enumerator_list)
|
|
(parameter_list)
|
|
(init_declarator)
|
|
(expression_statement)
|
|
] @indent
|
|
|
|
[
|
|
"case"
|
|
"}"
|
|
"]"
|
|
")"
|
|
] @outdent
|
|
|
|
(if_statement
|
|
consequence: (_) @indent
|
|
(#not-kind-eq? @indent "compound_statement")
|
|
(#set! "scope" "all"))
|
|
(while_statement
|
|
body: (_) @indent
|
|
(#not-kind-eq? @indent "compound_statement")
|
|
(#set! "scope" "all"))
|
|
(do_statement
|
|
body: (_) @indent
|
|
(#not-kind-eq? @indent "compound_statement")
|
|
(#set! "scope" "all"))
|
|
(for_statement
|
|
")"
|
|
(_) @indent
|
|
(#not-kind-eq? @indent "compound_statement")
|
|
(#set! "scope" "all"))
|
|
|
|
(parameter_list
|
|
. (parameter_declaration) @anchor
|
|
(#set! "scope" "tail")) @align
|
|
(argument_list
|
|
. (_) @anchor
|
|
(#set! "scope" "tail")) @align
|
|
; These are a bit opinionated since some people just indent binary/ternary expressions spanning multiple lines.
|
|
; Since they are only triggered when a newline is inserted into an already complete binary/ternary expression,
|
|
; this should happen rarely, so it is not a big deal either way.
|
|
; Additionally, adding these queries has the advantage of preventing such continuation lines from being used
|
|
; as the baseline when the `hybrid` indent heuristic is used (which is desirable since their indentation is so inconsistent).
|
|
(binary_expression
|
|
(#set! "scope" "tail")) @anchor @align
|
|
(conditional_expression
|
|
"?" @anchor
|
|
(#set! "scope" "tail")) @align
|