mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-25 10:56:19 +04:00
58758fee61
* WIP: Rework indentation system * Add ComplexNode for context-aware indentation (including a proof of concept for assignment statements in rust) * Add switch statements to Go indents.toml (fixes the second half of issue #1523) Remove commented-out code * Migrate all existing indentation queries. Add more options to ComplexNode and use them to improve C/C++ indentation. * Add comments & replace Option<Vec<_>> with Vec<_> * Add more detailed documentation for tree-sitter indentation * Improve code style in indent.rs * Use tree-sitter queries for indentation instead of TOML config. Migrate existing indent queries. * Add documentation for the new indent queries. Change xtask docgen to look for indents.scm instead of indents.toml * Improve code style in indent.rs. Fix an issue with the rust indent query. * Move indentation test sources to separate files. Add `#not-kind-eq?`, `#same-line?` and `#not-same-line` custom predicates. Improve the rust and c indent queries. * Fix indent test. Improve rust indent queries. * Move indentation tests to integration test folder. * Improve code style in indent.rs. Reuse tree-sitter cursors for indentation queries. * Migrate HCL indent query * Replace custom loading in indent tests with a designated languages.toml * Update indent query file name for --health command. * Fix single-space formatting in indent queries. * Add explanation for unwrapping. Co-authored-by: Triton171 <triton0171@gmail.com>
34 lines
636 B
Scheme
34 lines
636 B
Scheme
[
|
|
(compound_statement)
|
|
(field_declaration_list)
|
|
(enumerator_list)
|
|
(parameter_list)
|
|
(init_declarator)
|
|
(case_statement)
|
|
(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"))
|