From 58758fee610a3808dfaeafddd1b4b4242a7e42cd Mon Sep 17 00:00:00 2001 From: Triton171 Date: Wed, 30 Mar 2022 17:08:07 +0200 Subject: Indentation rework (#1562) * 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> 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 --- runtime/queries/python/indents.scm | 38 ++++++++++++++++++++++++++++++++++++ runtime/queries/python/indents.toml | 39 ------------------------------------- 2 files changed, 38 insertions(+), 39 deletions(-) create mode 100644 runtime/queries/python/indents.scm delete mode 100644 runtime/queries/python/indents.toml (limited to 'runtime/queries/python') diff --git a/runtime/queries/python/indents.scm b/runtime/queries/python/indents.scm new file mode 100644 index 00000000..810ff52f --- /dev/null +++ b/runtime/queries/python/indents.scm @@ -0,0 +1,38 @@ +[ + (list) + (tuple) + (dictionary) + (set) + + (if_statement) + (for_statement) + (while_statement) + (with_statement) + (try_statement) + (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 + +[ + ")" + "]" + "}" + (return_statement) + (pass_statement) + (raise_statement) +] @outdent + diff --git a/runtime/queries/python/indents.toml b/runtime/queries/python/indents.toml deleted file mode 100644 index 6bc68486..00000000 --- a/runtime/queries/python/indents.toml +++ /dev/null @@ -1,39 +0,0 @@ -indent = [ - "list", - "tuple", - "dictionary", - "set", - - "if_statement", - "for_statement", - "while_statement", - "with_statement", - "try_statement", - "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", -] - -outdent = [ - ")", - "]", - "}", - "return_statement", - "pass_statement", - "raise_statement", -] - -ignore = ["string"] -- cgit v1.2.3-70-g09d2