pub enum Lang {
Rust,
Python,
TypeScript,
Tsx,
JavaScript,
Jsx,
Kotlin,
Zig,
Bash,
Go,
GdScript,
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>
Sourcepub fn is_document(&self) -> bool
pub fn is_document(&self) -> bool
Whether this language is prose rather than code. A document language is
parsed into structural nodes — headings, list items, fenced blocks — that
are useful for navigation but are not symbols: they have no callers, no
callees, and no identity a caller can look up by name. Consumers that
report “symbols” must budget and label document nodes separately
(#docsym).
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