diff --git a/crates/collab/src/tests/integration_tests.rs b/crates/collab/src/tests/integration_tests.rs index b15e2b5123d627f1c773f523f0a973b0216ee19e..947b89385748667fbd4805cc2afb74866dface21 100644 --- a/crates/collab/src/tests/integration_tests.rs +++ b/crates/collab/src/tests/integration_tests.rs @@ -4641,9 +4641,16 @@ async fn test_references( let active_call_a = cx_a.read(ActiveCall::global); client_a.language_registry().add(rust_lang()); - let mut fake_language_servers = client_a - .language_registry() - .register_fake_lsp_adapter("Rust", Default::default()); + let mut fake_language_servers = client_a.language_registry().register_fake_lsp_adapter( + "Rust", + FakeLspAdapter { + capabilities: lsp::ServerCapabilities { + references_provider: Some(lsp::OneOf::Left(true)), + ..Default::default() + }, + ..Default::default() + }, + ); client_a .fs() diff --git a/crates/project/src/lsp_command.rs b/crates/project/src/lsp_command.rs index 2b88d1cfa35d315b374473de072fd91cbe70babc..3d5274678d1f36f15c7fde2214d2ae22de761ec7 100644 --- a/crates/project/src/lsp_command.rs +++ b/crates/project/src/lsp_command.rs @@ -896,6 +896,14 @@ impl LspCommand for GetReferences { type LspRequest = lsp::request::References; type ProtoRequest = proto::GetReferences; + fn check_capabilities(&self, capabilities: &ServerCapabilities) -> bool { + match &capabilities.references_provider { + Some(OneOf::Left(has_support)) => *has_support, + Some(OneOf::Right(_)) => true, + None => false, + } + } + fn to_lsp( &self, path: &Path,