Return None when prepare rename is not available on language server

This commit is contained in:
Antonio Scandurra committed 2022-04-22 15:43:23 +02:00
1 parent 9f6109c722
commit fdfcbaa63b
2 files changed
+12

No files matched your search

+4
View File
@@ -292,6 +292,10 @@ impl LanguageServer {
}),
..Default::default()
}),
rename: Some(RenameClientCapabilities {
prepare_support: Some(true),
..Default::default()
}),
..Default::default()
}),
experimental: Some(json!({
+8
View File
@@ -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 {