if (FALSE) { # rlang::is_installed("treesitter.r")
source <- '(binary_operator
lhs: (identifier) @lhs
operator: _ @operator
rhs: (function_definition) @rhs
(#eq? @lhs "fn")
)'
language <- treesitter.r::language()
query <- query(language, source)
query_pattern_count(query)
query_capture_count(query)
query_string_count(query)
query_start_byte_for_pattern(query, 1)
query_end_byte_for_pattern(query, 1)
text <- "
fn <- function() {}
fn2 <- function() {}
fn <- 5
fn <- function(a, b, c) { a + b + c }
"
parser <- parser(language)
tree <- parser_parse(parser, text)
node <- tree_root_node(tree)
query_matches(query, node)
}
Run the code above in your browser using DataLab