pub struct TreeSitterContextAnalyzer;Expand description
Tree-sitter based context analyzer for scope detection
This analyzer uses tree-sitter to parse code and detect scopes, available symbols, and expected types. It supports Rust, TypeScript, and Python.
§Supported Languages
- Rust: Full support with scope detection and symbol extraction
- TypeScript/JavaScript: Full support with scope detection and symbol extraction
- Python: Full support with scope detection and symbol extraction
§Example
ⓘ
use ricecoder_completion::context::TreeSitterContextAnalyzer;
use ricecoder_completion::types::Position;
let analyzer = TreeSitterContextAnalyzer;
let context = analyzer.analyze_context(
"fn main() { let x = ",
Position::new(0, 20),
"rust",
).await?;Implementations§
Source§impl TreeSitterContextAnalyzer
impl TreeSitterContextAnalyzer
Trait Implementations§
Source§impl ContextAnalyzer for TreeSitterContextAnalyzer
impl ContextAnalyzer for TreeSitterContextAnalyzer
Source§fn analyze_context<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
code: &'life1 str,
position: Position,
language: &'life2 str,
) -> Pin<Box<dyn Future<Output = CompletionResult<CompletionContext>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn analyze_context<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
code: &'life1 str,
position: Position,
language: &'life2 str,
) -> Pin<Box<dyn Future<Output = CompletionResult<CompletionContext>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Analyze the code context at the given position Read more
Source§fn get_available_symbols(
&self,
context: &CompletionContext,
code: &str,
) -> Vec<Symbol>
fn get_available_symbols( &self, context: &CompletionContext, code: &str, ) -> Vec<Symbol>
Get available symbols in the given context Read more
Source§fn infer_expected_type(&self, context: &CompletionContext) -> Option<Type>
fn infer_expected_type(&self, context: &CompletionContext) -> Option<Type>
Infer the expected type at the given context Read more
Auto Trait Implementations§
impl Freeze for TreeSitterContextAnalyzer
impl RefUnwindSafe for TreeSitterContextAnalyzer
impl Send for TreeSitterContextAnalyzer
impl Sync for TreeSitterContextAnalyzer
impl Unpin for TreeSitterContextAnalyzer
impl UnwindSafe for TreeSitterContextAnalyzer
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