Revert "Revert "Support LSP 3.15""

This reverts commit 1e0bf205ef.
This commit is contained in:
Aleksey Kladov 2019-12-11 18:34:01 +01:00
parent 1e0bf205ef
commit b0a4765059
6 changed files with 36 additions and 8 deletions

View file

@ -5,7 +5,7 @@ use lsp_types::{
DocumentOnTypeFormattingOptions, FoldingRangeProviderCapability, GenericCapability,
ImplementationProviderCapability, RenameOptions, RenameProviderCapability, ServerCapabilities,
SignatureHelpOptions, TextDocumentSyncCapability, TextDocumentSyncKind,
TextDocumentSyncOptions, TypeDefinitionProviderCapability,
TextDocumentSyncOptions, TypeDefinitionProviderCapability, WorkDoneProgressOptions,
};
pub fn server_capabilities() -> ServerCapabilities {
@ -21,10 +21,14 @@ pub fn server_capabilities() -> ServerCapabilities {
completion_provider: Some(CompletionOptions {
resolve_provider: None,
trigger_characters: Some(vec![":".to_string(), ".".to_string()]),
work_done_progress_options: WorkDoneProgressOptions { work_done_progress: None },
}),
signature_help_provider: Some(SignatureHelpOptions {
trigger_characters: Some(vec!["(".to_string(), ",".to_string(), ")".to_string()]),
retrigger_characters: None,
work_done_progress_options: WorkDoneProgressOptions { work_done_progress: None },
}),
declaration_provider: None,
definition_provider: Some(true),
type_definition_provider: Some(TypeDefinitionProviderCapability::Simple(true)),
implementation_provider: Some(ImplementationProviderCapability::Simple(true)),
@ -44,6 +48,7 @@ pub fn server_capabilities() -> ServerCapabilities {
folding_range_provider: Some(FoldingRangeProviderCapability::Simple(true)),
rename_provider: Some(RenameProviderCapability::Options(RenameOptions {
prepare_provider: Some(true),
work_done_progress_options: WorkDoneProgressOptions { work_done_progress: None },
})),
document_link_provider: None,
color_provider: None,

View file

@ -520,7 +520,8 @@ fn on_notification(
if let Some(file_id) = state.vfs.write().remove_file_overlay(path.as_path()) {
subs.remove_sub(FileId(file_id.0));
}
let params = req::PublishDiagnosticsParams { uri, diagnostics: Vec::new() };
let params =
req::PublishDiagnosticsParams { uri, diagnostics: Vec::new(), version: None };
let not = notification_new::<req::PublishDiagnostics>(params);
msg_sender.send(not.into()).unwrap();
return Ok(());

View file

@ -648,6 +648,7 @@ pub fn handle_code_action(
diagnostics: None,
edit: None,
command: Some(command),
is_preferred: None,
};
res.push(action.into());
}
@ -670,6 +671,7 @@ pub fn handle_code_action(
diagnostics: None,
edit: None,
command: Some(command),
is_preferred: None,
};
res.push(action.into());
}
@ -828,9 +830,10 @@ pub fn publish_diagnostics(
source: Some("rust-analyzer".to_string()),
message: d.message,
related_information: None,
tags: None,
})
.collect();
Ok(req::PublishDiagnosticsParams { uri, diagnostics })
Ok(req::PublishDiagnosticsParams { uri, diagnostics, version: None })
}
pub fn publish_decorations(