Add window/showMessage / logMessage stubs so gopls fully starts.
This commit is contained in:
parent
305a059f58
commit
3b90317060
3 changed files with 23 additions and 1 deletions
|
@ -123,6 +123,8 @@ pub mod util {
|
||||||
#[derive(Debug, PartialEq, Clone)]
|
#[derive(Debug, PartialEq, Clone)]
|
||||||
pub enum Notification {
|
pub enum Notification {
|
||||||
PublishDiagnostics(lsp::PublishDiagnosticsParams),
|
PublishDiagnostics(lsp::PublishDiagnosticsParams),
|
||||||
|
ShowMessage(lsp::ShowMessageParams),
|
||||||
|
LogMessage(lsp::LogMessageParams),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Notification {
|
impl Notification {
|
||||||
|
@ -138,6 +140,19 @@ impl Notification {
|
||||||
// TODO: need to loop over diagnostics and distinguish them by URI
|
// TODO: need to loop over diagnostics and distinguish them by URI
|
||||||
Notification::PublishDiagnostics(params)
|
Notification::PublishDiagnostics(params)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lsp::notification::ShowMessage::METHOD => {
|
||||||
|
let params: lsp::ShowMessageParams =
|
||||||
|
params.parse().expect("Failed to parse ShowMessage params");
|
||||||
|
|
||||||
|
Notification::ShowMessage(params)
|
||||||
|
}
|
||||||
|
lsp::notification::LogMessage::METHOD => {
|
||||||
|
let params: lsp::LogMessageParams =
|
||||||
|
params.parse().expect("Failed to parse ShowMessage params");
|
||||||
|
|
||||||
|
Notification::LogMessage(params)
|
||||||
|
}
|
||||||
_ => unimplemented!("unhandled notification: {}", method),
|
_ => unimplemented!("unhandled notification: {}", method),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -152,6 +152,7 @@ impl Application {
|
||||||
match call {
|
match call {
|
||||||
Call::Notification(helix_lsp::jsonrpc::Notification { method, params, .. }) => {
|
Call::Notification(helix_lsp::jsonrpc::Notification { method, params, .. }) => {
|
||||||
let notification = Notification::parse(&method, params);
|
let notification = Notification::parse(&method, params);
|
||||||
|
// TODO: parse should return Result/Option
|
||||||
match notification {
|
match notification {
|
||||||
Notification::PublishDiagnostics(params) => {
|
Notification::PublishDiagnostics(params) => {
|
||||||
let path = Some(params.uri.to_file_path().unwrap());
|
let path = Some(params.uri.to_file_path().unwrap());
|
||||||
|
@ -213,6 +214,12 @@ impl Application {
|
||||||
self.render();
|
self.render();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Notification::ShowMessage(params) => {
|
||||||
|
log::warn!("unhandled window/showMessage: {:?}", params);
|
||||||
|
}
|
||||||
|
Notification::LogMessage(params) => {
|
||||||
|
log::warn!("unhandled window/logMessage: {:?}", params);
|
||||||
|
}
|
||||||
_ => unreachable!(),
|
_ => unreachable!(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,7 +52,7 @@ file-types = ["go"]
|
||||||
roots = ["Gopkg.toml", "go.mod"]
|
roots = ["Gopkg.toml", "go.mod"]
|
||||||
|
|
||||||
language-server = { command = "gopls" }
|
language-server = { command = "gopls" }
|
||||||
# TODO: gopls needs utf-8 offsets
|
# TODO: gopls needs utf-8 offsets?
|
||||||
indent = { tab-width = 2, unit = " " }
|
indent = { tab-width = 2, unit = " " }
|
||||||
|
|
||||||
[[language]]
|
[[language]]
|
||||||
|
|
Loading…
Reference in a new issue