pub enum Lang {
Rust,
Python,
TypeScript,
Tsx,
JavaScript,
Jsx,
Kotlin,
Zig,
Bash,
Markdown,
}Variants§
Implementations§
Source§impl Lang
impl Lang
pub fn from_extension(ext: &str) -> Option<Self>
Sourcepub fn tree_sitter_language(&self) -> Language
pub fn tree_sitter_language(&self) -> Language
Examples found in repository?
examples/dump_ast.rs (line 6)
4fn dump(lang_name: &str, lang: Lang, source: &str, _depth: usize) {
5 let mut parser = Parser::new();
6 parser.set_language(&lang.tree_sitter_language()).unwrap();
7 let tree = parser.parse(source.as_bytes(), None).unwrap();
8 println!("=== {} ===", lang_name);
9 println!("Source:\n{}\n", source);
10 fn walk(node: tree_sitter::Node, source: &str, indent: usize) {
11 let text = &source[node.byte_range()];
12 let short = if text.len() > 60 { &text[..60] } else { text };
13 let short = short.replace('\n', "\\n");
14 println!(
15 "{}{} [{}-{}] {:?}",
16 " ".repeat(indent),
17 node.kind(),
18 node.start_position().row,
19 node.end_position().row,
20 short
21 );
22 let mut cursor = node.walk();
23 if cursor.goto_first_child() {
24 loop {
25 walk(cursor.node(), source, indent + 1);
26 if !cursor.goto_next_sibling() {
27 break;
28 }
29 }
30 }
31 }
32 walk(tree.root_node(), source, 0);
33 println!();
34}pub fn name(&self) -> &'static str
pub fn symbol_query(&self) -> &'static str
pub fn call_query(&self) -> Option<&'static str>
pub fn extract_symbols(&self, source: &[u8]) -> Result<Vec<Symbol>>
pub fn all() -> Vec<Self>
Trait Implementations§
impl Copy for Lang
impl Eq for Lang
impl StructuralPartialEq for Lang
Auto Trait Implementations§
impl Freeze for Lang
impl RefUnwindSafe for Lang
impl Send for Lang
impl Sync for Lang
impl Unpin for Lang
impl UnsafeUnpin for Lang
impl UnwindSafe for Lang
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more