Remove primary/secondary distinction for CachedLspAdapter
(#15634)
This PR removes the primary/secondary distinction for `CachedLspAdapter`s. After #15624 we weren't relying on the `is_primary` field anywhere, so we can remove it. Release Notes: - N/A
This commit is contained in:
parent
80594cc7f8
commit
7652045903
5 changed files with 34 additions and 76 deletions
|
@ -156,15 +156,11 @@ pub struct CachedLspAdapter {
|
|||
language_ids: HashMap<String, String>,
|
||||
pub adapter: Arc<dyn LspAdapter>,
|
||||
pub reinstall_attempt_count: AtomicU64,
|
||||
/// Indicates whether this language server is the primary language server
|
||||
/// for a given language. Currently, most LSP-backed features only work
|
||||
/// with one language server, so one server needs to be primary.
|
||||
pub is_primary: bool,
|
||||
cached_binary: futures::lock::Mutex<Option<LanguageServerBinary>>,
|
||||
}
|
||||
|
||||
impl CachedLspAdapter {
|
||||
pub fn new(adapter: Arc<dyn LspAdapter>, is_primary: bool) -> Arc<Self> {
|
||||
pub fn new(adapter: Arc<dyn LspAdapter>) -> Arc<Self> {
|
||||
let name = adapter.name();
|
||||
let disk_based_diagnostic_sources = adapter.disk_based_diagnostic_sources();
|
||||
let disk_based_diagnostics_progress_token = adapter.disk_based_diagnostics_progress_token();
|
||||
|
@ -176,7 +172,6 @@ impl CachedLspAdapter {
|
|||
disk_based_diagnostics_progress_token,
|
||||
language_ids,
|
||||
adapter,
|
||||
is_primary,
|
||||
cached_binary: Default::default(),
|
||||
reinstall_attempt_count: AtomicU64::new(0),
|
||||
})
|
||||
|
|
|
@ -251,7 +251,7 @@ impl LanguageRegistry {
|
|||
name,
|
||||
Arc::new(move || {
|
||||
let lsp_adapter = load();
|
||||
CachedLspAdapter::new(lsp_adapter, true)
|
||||
CachedLspAdapter::new(lsp_adapter)
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
@ -273,20 +273,7 @@ impl LanguageRegistry {
|
|||
.lsp_adapters
|
||||
.entry(language_name)
|
||||
.or_default()
|
||||
.push(CachedLspAdapter::new(adapter, true));
|
||||
}
|
||||
|
||||
pub fn register_secondary_lsp_adapter(
|
||||
&self,
|
||||
language_name: Arc<str>,
|
||||
adapter: Arc<dyn LspAdapter>,
|
||||
) {
|
||||
self.state
|
||||
.write()
|
||||
.lsp_adapters
|
||||
.entry(language_name)
|
||||
.or_default()
|
||||
.push(CachedLspAdapter::new(adapter, false));
|
||||
.push(CachedLspAdapter::new(adapter));
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "test-support", test))]
|
||||
|
@ -294,23 +281,13 @@ impl LanguageRegistry {
|
|||
&self,
|
||||
language_name: &str,
|
||||
adapter: crate::FakeLspAdapter,
|
||||
) -> futures::channel::mpsc::UnboundedReceiver<lsp::FakeLanguageServer> {
|
||||
self.register_specific_fake_lsp_adapter(language_name, true, adapter)
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "test-support", test))]
|
||||
pub fn register_specific_fake_lsp_adapter(
|
||||
&self,
|
||||
language_name: &str,
|
||||
primary: bool,
|
||||
adapter: crate::FakeLspAdapter,
|
||||
) -> futures::channel::mpsc::UnboundedReceiver<lsp::FakeLanguageServer> {
|
||||
self.state
|
||||
.write()
|
||||
.lsp_adapters
|
||||
.entry(language_name.into())
|
||||
.or_default()
|
||||
.push(CachedLspAdapter::new(Arc::new(adapter), primary));
|
||||
.push(CachedLspAdapter::new(Arc::new(adapter)));
|
||||
self.fake_language_servers(language_name)
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue