pub struct BundlerEcosystem { /* private fields */ }Expand description
Bundler ecosystem implementation.
Provides LSP functionality for Gemfile files, including:
- Dependency parsing with position tracking
- Version information from rubygems.org
- Inlay hints for latest versions
- Hover tooltips with gem metadata
- Code actions for version updates
- Diagnostics for unknown/yanked gems
Implementations§
Source§impl BundlerEcosystem
impl BundlerEcosystem
Sourcepub fn new(cache: Arc<HttpCache>) -> BundlerEcosystem
pub fn new(cache: Arc<HttpCache>) -> BundlerEcosystem
Creates a new Bundler ecosystem with the given HTTP cache.
Trait Implementations§
Source§impl Ecosystem for BundlerEcosystem
impl Ecosystem for BundlerEcosystem
Source§fn display_name(&self) -> &'static str
fn display_name(&self) -> &'static str
Human-readable name (e.g., “Cargo (Rust)”, “npm (JavaScript)”) Read more
Source§fn manifest_filenames(&self) -> &[&'static str]
fn manifest_filenames(&self) -> &[&'static str]
Manifest filenames this ecosystem handles (e.g., [“Cargo.toml”]) Read more
Source§fn lockfile_filenames(&self) -> &[&'static str]
fn lockfile_filenames(&self) -> &[&'static str]
Lock file filenames this ecosystem uses (e.g., [“Cargo.lock”]) Read more
Source§fn parse_manifest<'a>(
&'a self,
content: &'a str,
uri: &'a Uri,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn ParseResult>, DepsError>> + Send + 'a>>
fn parse_manifest<'a>( &'a self, content: &'a str, uri: &'a Uri, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn ParseResult>, DepsError>> + Send + 'a>>
Parse a manifest file and return parsed result Read more
Source§fn lockfile_provider(&self) -> Option<Arc<dyn LockFileProvider>>
fn lockfile_provider(&self) -> Option<Arc<dyn LockFileProvider>>
Get the lock file provider for this ecosystem. Read more
Source§fn formatter(&self) -> &dyn EcosystemFormatter
fn formatter(&self) -> &dyn EcosystemFormatter
Get the ecosystem-specific formatter for LSP response generation. Read more
Source§fn generate_completions<'a>(
&'a self,
parse_result: &'a dyn ParseResult,
position: Position,
content: &'a str,
) -> Pin<Box<dyn Future<Output = Vec<CompletionItem>> + Send + 'a>>
fn generate_completions<'a>( &'a self, parse_result: &'a dyn ParseResult, position: Position, content: &'a str, ) -> Pin<Box<dyn Future<Output = Vec<CompletionItem>> + Send + 'a>>
Generate completions for a position. Read more
Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Support for downcasting to concrete ecosystem type Read more
Source§fn generate_inlay_hints<'a>(
&'a self,
parse_result: &'a dyn ParseResult,
cached_versions: &'a HashMap<String, String>,
resolved_versions: &'a HashMap<String, String>,
loading_state: LoadingState,
config: &'a EcosystemConfig,
) -> Pin<Box<dyn Future<Output = Vec<InlayHint>> + Send + 'a>>
fn generate_inlay_hints<'a>( &'a self, parse_result: &'a dyn ParseResult, cached_versions: &'a HashMap<String, String>, resolved_versions: &'a HashMap<String, String>, loading_state: LoadingState, config: &'a EcosystemConfig, ) -> Pin<Box<dyn Future<Output = Vec<InlayHint>> + Send + 'a>>
Generate inlay hints for the document. Read more
Source§fn generate_hover<'a>(
&'a self,
parse_result: &'a dyn ParseResult,
position: Position,
cached_versions: &'a HashMap<String, String>,
resolved_versions: &'a HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Option<Hover>> + Send + 'a>>
fn generate_hover<'a>( &'a self, parse_result: &'a dyn ParseResult, position: Position, cached_versions: &'a HashMap<String, String>, resolved_versions: &'a HashMap<String, String>, ) -> Pin<Box<dyn Future<Output = Option<Hover>> + Send + 'a>>
Generate hover information for a position. Read more
Source§fn generate_code_actions<'a>(
&'a self,
parse_result: &'a dyn ParseResult,
position: Position,
_cached_versions: &'a HashMap<String, String>,
uri: &'a Uri,
) -> Pin<Box<dyn Future<Output = Vec<CodeAction>> + Send + 'a>>
fn generate_code_actions<'a>( &'a self, parse_result: &'a dyn ParseResult, position: Position, _cached_versions: &'a HashMap<String, String>, uri: &'a Uri, ) -> Pin<Box<dyn Future<Output = Vec<CodeAction>> + Send + 'a>>
Generate code actions for a position. Read more
Source§fn generate_diagnostics<'a>(
&'a self,
parse_result: &'a dyn ParseResult,
cached_versions: &'a HashMap<String, String>,
resolved_versions: &'a HashMap<String, String>,
_uri: &'a Uri,
) -> Pin<Box<dyn Future<Output = Vec<Diagnostic>> + Send + 'a>>
fn generate_diagnostics<'a>( &'a self, parse_result: &'a dyn ParseResult, cached_versions: &'a HashMap<String, String>, resolved_versions: &'a HashMap<String, String>, _uri: &'a Uri, ) -> Pin<Box<dyn Future<Output = Vec<Diagnostic>> + Send + 'a>>
Generate diagnostics for the document. Read more
impl Sealed for BundlerEcosystem
Auto Trait Implementations§
impl Freeze for BundlerEcosystem
impl !RefUnwindSafe for BundlerEcosystem
impl Send for BundlerEcosystem
impl Sync for BundlerEcosystem
impl Unpin for BundlerEcosystem
impl UnsafeUnpin for BundlerEcosystem
impl !UnwindSafe for BundlerEcosystem
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more