diff options
author | Blaž Hrastnik | 2021-05-08 09:17:13 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2021-05-08 09:17:13 +0000 |
commit | caf434992563cbdedeccb5574af16091e987f365 (patch) | |
tree | f36feef8de909e4a698444fb10c672f2052972a3 | |
parent | d24844b73db61e50e1d6fed898d3ff2ba8731356 (diff) |
Remove some of the panics, just log instead.
-rw-r--r-- | helix-lsp/src/lib.rs | 13 | ||||
-rw-r--r-- | helix-term/src/application.rs | 6 | ||||
-rw-r--r-- | helix-term/src/commands.rs | 9 |
3 files changed, 20 insertions, 8 deletions
diff --git a/helix-lsp/src/lib.rs b/helix-lsp/src/lib.rs index 6adaa3f8..1bab2a17 100644 --- a/helix-lsp/src/lib.rs +++ b/helix-lsp/src/lib.rs @@ -130,10 +130,10 @@ pub enum Notification { } impl Notification { - pub fn parse(method: &str, params: jsonrpc::Params) -> Notification { + pub fn parse(method: &str, params: jsonrpc::Params) -> Option<Notification> { use lsp::notification::Notification as _; - match method { + let notification = match method { lsp::notification::PublishDiagnostics::METHOD => { let params: lsp::PublishDiagnosticsParams = params .parse() @@ -155,8 +155,13 @@ impl Notification { Notification::LogMessage(params) } - _ => unimplemented!("unhandled notification: {}", method), - } + _ => { + log::error!("unhandled LSP notification: {}", method); + return None; + } + }; + + Some(notification) } } diff --git a/helix-term/src/application.rs b/helix-term/src/application.rs index ae7e22bd..42a46f1e 100644 --- a/helix-term/src/application.rs +++ b/helix-term/src/application.rs @@ -145,7 +145,11 @@ impl Application { use helix_lsp::{Call, Notification}; match call { Call::Notification(helix_lsp::jsonrpc::Notification { method, params, .. }) => { - let notification = Notification::parse(&method, params); + let notification = match Notification::parse(&method, params) { + Some(notification) => notification, + None => return, + }; + // TODO: parse should return Result/Option match notification { Notification::PublishDiagnostics(params) => { diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index 959bd7d5..59425670 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -1883,7 +1883,8 @@ pub fn format_selections(cx: &mut Context) { }; // TODO: handle fails // TODO: concurrent map - unimplemented!(); // neeed to block to get the formatting + + // TODO: need to block to get the formatting // let edits = block_on(language_server.text_document_range_formatting( // doc.identifier(), @@ -2098,10 +2099,12 @@ pub fn hover(cx: &mut Context) { lsp::HoverContents::Scalar(contents) => { // markedstring(string/languagestring to be highlighted) // TODO - unimplemented!("{:?}", contents) + log::error!("hover contents {:?}", contents); + return; } lsp::HoverContents::Array(contents) => { - unimplemented!("{:?}", contents) + log::error!("hover contents {:?}", contents); + return; } // TODO: render markdown lsp::HoverContents::Markup(contents) => contents.value, |