mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-03 16:40:05 +08:00
91 lines
1.9 KiB
Scheme
91 lines
1.9 KiB
Scheme
[
|
|
(compound_statement)
|
|
(field_declaration_list)
|
|
(case_statement)
|
|
(enumerator_list)
|
|
(compound_literal_expression)
|
|
(initializer_list)
|
|
(init_declarator)
|
|
] @indent.begin
|
|
|
|
; With current indent logic, if we capture expression_statement with @indent.begin
|
|
; It will be affected by _parent_ node with error subnodes deep down the tree
|
|
; So narrow indent capture to check for error inside expression statement only,
|
|
(expression_statement
|
|
(_) @indent.begin
|
|
";" @indent.end)
|
|
|
|
(ERROR
|
|
"for" "(" @indent.begin ";" ";" ")" @indent.end)
|
|
|
|
((for_statement
|
|
body: (_) @_body) @indent.begin
|
|
(#not-has-type? @_body compound_statement))
|
|
|
|
(while_statement
|
|
condition: (_) @indent.begin)
|
|
|
|
((while_statement
|
|
body: (_) @_body) @indent.begin
|
|
(#not-has-type? @_body compound_statement))
|
|
|
|
(
|
|
(if_statement)
|
|
.
|
|
(ERROR "else" @indent.begin))
|
|
|
|
(if_statement
|
|
condition: (_) @indent.begin)
|
|
|
|
;; Supports if without braces (but not both if-else without braces)
|
|
((if_statement
|
|
consequence:
|
|
(_ ";" @indent.end) @_consequence
|
|
(#not-has-type? @_consequence compound_statement)
|
|
alternative:
|
|
(else_clause
|
|
"else" @indent.branch
|
|
[
|
|
(if_statement (compound_statement) @indent.dedent)? @indent.dedent
|
|
(compound_statement)? @indent.dedent
|
|
(_)? @indent.dedent
|
|
]
|
|
)?
|
|
) @indent.begin)
|
|
|
|
(else_clause (_ . "{" @indent.branch))
|
|
|
|
|
|
(compound_statement "}" @indent.end)
|
|
|
|
[
|
|
")"
|
|
"}"
|
|
(statement_identifier)
|
|
] @indent.branch
|
|
|
|
[
|
|
"#define"
|
|
"#ifdef"
|
|
"#ifndef"
|
|
"#elif"
|
|
"#if"
|
|
"#else"
|
|
"#endif"
|
|
] @indent.zero
|
|
|
|
[
|
|
(preproc_arg)
|
|
(string_literal)
|
|
] @indent.ignore
|
|
|
|
((ERROR (parameter_declaration)) @indent.align
|
|
(#set! indent.open_delimiter "(")
|
|
(#set! indent.close_delimiter ")"))
|
|
([(argument_list) (parameter_list)] @indent.align
|
|
(#set! indent.open_delimiter "(")
|
|
(#set! indent.close_delimiter ")"))
|
|
|
|
(comment) @indent.auto
|
|
|