Change summary
crates/lsp/src/lsp.rs | 4 ++++
crates/project/src/lsp_command.rs | 8 ++++++++
2 files changed, 12 insertions(+)
Detailed changes
@@ -292,6 +292,10 @@ impl LanguageServer {
}),
..Default::default()
}),
+ rename: Some(RenameClientCapabilities {
+ prepare_support: Some(true),
+ ..Default::default()
+ }),
..Default::default()
}),
experimental: Some(json!({
@@ -86,6 +86,14 @@ impl LspCommand for PrepareRename {
type LspRequest = lsp::request::PrepareRenameRequest;
type ProtoRequest = proto::PrepareRename;
+ fn check_capabilities(&self, capabilities: &ServerCapabilities) -> bool {
+ if let Some(lsp::OneOf::Right(rename)) = &capabilities.rename_provider {
+ rename.prepare_provider == Some(true)
+ } else {
+ false
+ }
+ }
+
fn to_lsp(&self, path: &Path, _: &AppContext) -> lsp::TextDocumentPositionParams {
lsp::TextDocumentPositionParams {
text_document: lsp::TextDocumentIdentifier {