Unnamed repository; edit this file 'description' to name the repository.
| -rw-r--r-- | crates/rust-analyzer/src/config.rs | 6 | ||||
| -rw-r--r-- | crates/rust-analyzer/src/lsp/capabilities.rs | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs index a4f9246a58..dd7351bcf2 100644 --- a/crates/rust-analyzer/src/config.rs +++ b/crates/rust-analyzer/src/config.rs @@ -1455,7 +1455,7 @@ impl Config { limit: self.completion_limit(source_root).to_owned(), enable_term_search: self.completion_termSearch_enable(source_root).to_owned(), term_search_fuel: self.completion_termSearch_fuel(source_root).to_owned() as u64, - fields_to_resolve: if self.client_is_helix() { + fields_to_resolve: if self.client_is_helix() || self.client_is_neovim() { CompletionFieldsToResolve::empty() } else { CompletionFieldsToResolve::from_client_capabilities(&client_capability_fields) @@ -2183,6 +2183,10 @@ impl Config { pub fn client_is_helix(&self) -> bool { self.client_info.as_ref().map(|it| it.name == "helix").unwrap_or_default() } + + pub fn client_is_neovim(&self) -> bool { + self.client_info.as_ref().map(|it| it.name == "Neovim").unwrap_or_default() + } } // Deserialization definitions diff --git a/crates/rust-analyzer/src/lsp/capabilities.rs b/crates/rust-analyzer/src/lsp/capabilities.rs index 0362821209..6d73319e67 100644 --- a/crates/rust-analyzer/src/lsp/capabilities.rs +++ b/crates/rust-analyzer/src/lsp/capabilities.rs @@ -41,8 +41,8 @@ pub fn server_capabilities(config: &Config) -> ServerCapabilities { })), hover_provider: Some(HoverProviderCapability::Simple(true)), completion_provider: Some(CompletionOptions { - resolve_provider: if config.client_is_helix() { - None + resolve_provider: if config.client_is_helix() || config.client_is_neovim() { + config.completion_item_edit_resolve().then_some(true) } else { Some(config.caps().completions_resolve_provider()) }, |