pub struct ProviderRegistry { /* private fields */ }Expand description
Registry for refactoring providers
Manages language-specific refactoring providers with support for:
- LSP-based providers (highest priority)
- Configured providers (from YAML/JSON configuration)
- Built-in language-specific providers
- Generic text-based fallback provider
Implementations§
Source§impl ProviderRegistry
impl ProviderRegistry
Sourcepub fn new(generic_provider: Arc<dyn RefactoringProvider>) -> Self
pub fn new(generic_provider: Arc<dyn RefactoringProvider>) -> Self
Create a new provider registry
Sourcepub fn with_lsp(
generic_provider: Arc<dyn RefactoringProvider>,
lsp_providers: Arc<LspProviderRegistry>,
) -> Self
pub fn with_lsp( generic_provider: Arc<dyn RefactoringProvider>, lsp_providers: Arc<LspProviderRegistry>, ) -> Self
Create a new provider registry with LSP providers
Sourcepub fn lsp_providers(&self) -> Arc<LspProviderRegistry>
pub fn lsp_providers(&self) -> Arc<LspProviderRegistry>
Get the LSP provider registry
Sourcepub fn register(
&self,
language: String,
provider: Arc<dyn RefactoringProvider>,
) -> Result<()>
pub fn register( &self, language: String, provider: Arc<dyn RefactoringProvider>, ) -> Result<()>
Register a provider for a language
Sourcepub fn get_provider(&self, language: &str) -> Arc<dyn RefactoringProvider>
pub fn get_provider(&self, language: &str) -> Arc<dyn RefactoringProvider>
Get a provider for a language using the priority chain:
- LSP provider (if available)
- Configured provider
- Generic fallback
Sourcepub fn has_provider(&self, language: &str) -> Result<bool>
pub fn has_provider(&self, language: &str) -> Result<bool>
Check if a language has a specific provider (configured or LSP)
Sourcepub fn get_languages(&self) -> Result<Vec<String>>
pub fn get_languages(&self) -> Result<Vec<String>>
Get all registered languages (configured + LSP)
Sourcepub fn register_lsp_provider(
&self,
language: String,
provider: Arc<dyn LspProvider>,
) -> Result<()>
pub fn register_lsp_provider( &self, language: String, provider: Arc<dyn LspProvider>, ) -> Result<()>
Register an LSP provider for a language
Sourcepub fn is_lsp_available(&self, language: &str) -> bool
pub fn is_lsp_available(&self, language: &str) -> bool
Check if an LSP provider is available for a language
Trait Implementations§
Source§impl Clone for ProviderRegistry
impl Clone for ProviderRegistry
Source§fn clone(&self) -> ProviderRegistry
fn clone(&self) -> ProviderRegistry
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto 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