pub struct ProviderRegistry { /* private fields */ }Expand description
Registry for completion providers
The provider registry manages language-specific completion providers. It allows registering, retrieving, and listing available providers.
§Example
ⓘ
use ricecoder_completion::engine::ProviderRegistry;
use ricecoder_completion::providers::RustCompletionProvider;
use std::sync::Arc;
let mut registry = ProviderRegistry::new();
registry.register(Arc::new(RustCompletionProvider));
// Get provider for Rust
let provider = registry.get_provider("rust");
assert!(provider.is_some());
// List all supported languages
let languages = registry.list_languages();
assert!(languages.contains(&"rust".to_string()));Implementations§
Source§impl ProviderRegistry
impl ProviderRegistry
Sourcepub fn with_builtin_providers() -> Self
pub fn with_builtin_providers() -> Self
Create a new provider registry with all built-in providers registered
This is a convenience method that automatically registers all language-specific providers (Rust, TypeScript, Python, Go, Java, Kotlin, Dart).
Sourcepub fn register_builtin_providers(&mut self)
pub fn register_builtin_providers(&mut self)
Register all built-in language providers
This method registers providers for all supported languages:
- Rust
- TypeScript
- Python
- Go
- Java
- Kotlin
- Dart
Sourcepub fn register(&mut self, provider: Arc<dyn CompletionProvider>)
pub fn register(&mut self, provider: Arc<dyn CompletionProvider>)
Sourcepub fn get_provider(
&self,
language: &str,
) -> Option<Arc<dyn CompletionProvider>>
pub fn get_provider( &self, language: &str, ) -> Option<Arc<dyn CompletionProvider>>
Sourcepub fn unregister(
&mut self,
language: &str,
) -> Option<Arc<dyn CompletionProvider>>
pub fn unregister( &mut self, language: &str, ) -> Option<Arc<dyn CompletionProvider>>
Sourcepub fn list_languages(&self) -> Vec<String>
pub fn list_languages(&self) -> Vec<String>
List all supported languages
§Returns
A vector of language identifiers for all registered providers.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ProviderRegistry
impl !RefUnwindSafe for ProviderRegistry
impl Send for ProviderRegistry
impl Sync for ProviderRegistry
impl Unpin for ProviderRegistry
impl !UnwindSafe for ProviderRegistry
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