diff --git a/crates/collab/src/tests/integration_tests.rs b/crates/collab/src/tests/integration_tests.rs index dbda880b1c..3ae7e5fc58 100644 --- a/crates/collab/src/tests/integration_tests.rs +++ b/crates/collab/src/tests/integration_tests.rs @@ -4659,9 +4659,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 38df25378a..c1b1b20ebd 100644 --- a/crates/project/src/lsp_command.rs +++ b/crates/project/src/lsp_command.rs @@ -903,6 +903,14 @@ impl LspCommand for GetReferences { return Some("Finding references...".to_owned()); } + 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,