Compare commits

...

3 Commits

Author SHA1 Message Date
xenia 0e27fd91a7 Add python language to default 2023-11-13 18:52:48 +01:00
xenia a42c97962d block query 2023-11-13 18:52:41 +01:00
xenia 1ccccb370b Don't select the current node in select_nodes 2023-11-13 18:46:34 +01:00
3 changed files with 18 additions and 10 deletions

View File

@ -31,6 +31,7 @@ a,arguments
s,statement
d,declaration
n,number
b,block
\",string" |
while IFS=, read -r cmd group ; do
echo "map -docstring '$group child' global tree-children '$cmd' ':tree-select-children $group<ret>'"

View File

@ -2,8 +2,19 @@
group.identifier = ["identifier", "scoped_identifier"]
group.declaration = ["const_item", "macro_invocation", "macro_definition", "empty_statement", "attribute_item", "inner_attribute_item", "mod_item", "foreign_mod_item", "struct_item", "union_item", "enum_item", "type_item", "function_item", "function_signature_item", "impl_item", "trait_item", "associated_type", "let_declaration", "use_declaration", "extern_crate_declaration", "static_item"]
group.call = ["macro_invocation", "call_expression"]
group.arguments = ["arguments", "token_tree"]
group.arguments = ["arguments", "token_tree", "parameters"]
group.statement = ["expression_statement", "let_declaration"]
group.string = ["string_literal", "raw_string_literal"]
group.number = ["integer_literal", "float_literal", "negative_literal"]
group.type = ["abstract_type", "reference_type", "metavariable", "pointer_type", "generic_type", "scoped_type_identifier", "tuple_type", "unit_type", "array_type", "function_type", "macro_invocation", "empty_type", "dynamic_type", "bounded_type", "primitive_type"]
[filetype.python]
group.identifier = ["identifier"]
group.declaration = ["function_definition", "class_definition"]
group.statement = ["expression_statement", "for_statement", "if_statement", "return_statement", "while_statement", "raise_statement", "try_statement", "assert_statement", "import_statement"]
group.call = ["call"]
group.arguments = ["arguments", "parameters"]
group.string = ["string"]
group.number = ["integer", "float"]
group.type = ["type", "generic_type"]

View File

@ -215,15 +215,11 @@ fn handle_request(config: &Config, request: &Request) -> String {
}
fn select_nodes(node: &Node, kinds: &[String], new_ranges: &mut Vec<Range>) {
if kinds.iter().any(|kind| kind == node.kind()) {
new_ranges.push(node.range());
} else {
for child in tree::named_children(&node) {
if kinds.iter().any(|kind| kind == child.kind()) {
new_ranges.push(child.range());
} else {
select_nodes(&child, kinds, new_ranges);
}
for child in tree::named_children(&node) {
if kinds.iter().any(|kind| kind == child.kind()) {
new_ranges.push(child.range());
} else {
select_nodes(&child, kinds, new_ranges);
}
}
}