Compare commits
3 Commits
2c17cea19e
...
0e27fd91a7
Author | SHA1 | Date | |
---|---|---|---|
0e27fd91a7 | |||
a42c97962d | |||
1ccccb370b |
|
@ -31,6 +31,7 @@ a,arguments
|
||||||
s,statement
|
s,statement
|
||||||
d,declaration
|
d,declaration
|
||||||
n,number
|
n,number
|
||||||
|
b,block
|
||||||
\",string" |
|
\",string" |
|
||||||
while IFS=, read -r cmd group ; do
|
while IFS=, read -r cmd group ; do
|
||||||
echo "map -docstring '$group child' global tree-children '$cmd' ':tree-select-children $group<ret>'"
|
echo "map -docstring '$group child' global tree-children '$cmd' ':tree-select-children $group<ret>'"
|
||||||
|
|
|
@ -2,8 +2,19 @@
|
||||||
group.identifier = ["identifier", "scoped_identifier"]
|
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.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.call = ["macro_invocation", "call_expression"]
|
||||||
group.arguments = ["arguments", "token_tree"]
|
group.arguments = ["arguments", "token_tree", "parameters"]
|
||||||
group.statement = ["expression_statement", "let_declaration"]
|
group.statement = ["expression_statement", "let_declaration"]
|
||||||
group.string = ["string_literal", "raw_string_literal"]
|
group.string = ["string_literal", "raw_string_literal"]
|
||||||
group.number = ["integer_literal", "float_literal", "negative_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"]
|
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"]
|
||||||
|
|
||||||
|
|
14
src/main.rs
14
src/main.rs
|
@ -215,15 +215,11 @@ fn handle_request(config: &Config, request: &Request) -> String {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn select_nodes(node: &Node, kinds: &[String], new_ranges: &mut Vec<Range>) {
|
fn select_nodes(node: &Node, kinds: &[String], new_ranges: &mut Vec<Range>) {
|
||||||
if kinds.iter().any(|kind| kind == node.kind()) {
|
for child in tree::named_children(&node) {
|
||||||
new_ranges.push(node.range());
|
if kinds.iter().any(|kind| kind == child.kind()) {
|
||||||
} else {
|
new_ranges.push(child.range());
|
||||||
for child in tree::named_children(&node) {
|
} else {
|
||||||
if kinds.iter().any(|kind| kind == child.kind()) {
|
select_nodes(&child, kinds, new_ranges);
|
||||||
new_ranges.push(child.range());
|
|
||||||
} else {
|
|
||||||
select_nodes(&child, kinds, new_ranges);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user