aboutsummaryrefslogtreecommitdiff
path: root/helix-lsp
diff options
context:
space:
mode:
authorwojciechkepka2021-06-19 02:57:05 +0000
committerBlaž Hrastnik2021-06-19 04:02:56 +0000
commitdd0af78079342b46ae1f4d1b265c7e0cd7519631 (patch)
treefa730449124967828319f61b4a230cb6ed7cb1b2 /helix-lsp
parentc2aad859b12e01c7724f16ddf957e6db2b3c8a60 (diff)
Fix unwraps in lsp::transport
Diffstat (limited to 'helix-lsp')
-rw-r--r--helix-lsp/src/transport.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/helix-lsp/src/transport.rs b/helix-lsp/src/transport.rs
index 29ce2e84..df55bbf6 100644
--- a/helix-lsp/src/transport.rs
+++ b/helix-lsp/src/transport.rs
@@ -1,4 +1,5 @@
use crate::Result;
+use anyhow::Context;
use jsonrpc_core as jsonrpc;
use log::{error, info};
use serde::{Deserialize, Serialize};
@@ -90,7 +91,7 @@ impl Transport {
match (parts.next(), parts.next(), parts.next()) {
(Some("Content-Length"), Some(value), None) => {
- content_length = Some(value.parse().unwrap());
+ content_length = Some(value.parse().context("invalid content length")?);
}
(Some(_), Some(_), None) => {}
_ => {
@@ -103,12 +104,12 @@ impl Transport {
}
}
- let content_length = content_length.unwrap();
+ let content_length = content_length.context("missing content length")?;
//TODO: reuse vector
let mut content = vec![0; content_length];
reader.read_exact(&mut content).await?;
- let msg = String::from_utf8(content).unwrap();
+ let msg = String::from_utf8(content).context("invalid utf8 from server")?;
info!("<- {}", msg);
@@ -162,7 +163,9 @@ impl Transport {
match msg {
ServerMessage::Output(output) => self.process_request_response(output).await?,
ServerMessage::Call(call) => {
- self.client_tx.send((self.id, call)).unwrap();
+ self.client_tx
+ .send((self.id, call))
+ .context("failed to send a message to server")?;
// let notification = Notification::parse(&method, params);
}
};