Return None when prepare rename is not available on language server

This commit is contained in:
Antonio Scandurra 2022-04-22 15:43:23 +02:00
parent b355b5c1fb
commit f91fdd2ba0
2 changed files with 12 additions and 0 deletions

View File

@ -292,6 +292,10 @@ impl LanguageServer {
}),
..Default::default()
}),
rename: Some(RenameClientCapabilities {
prepare_support: Some(true),
..Default::default()
}),
..Default::default()
}),
experimental: Some(json!({

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 {