diff --git a/helix-lsp/src/transport.rs b/helix-lsp/src/transport.rs index 17566f8e..a14bc1f7 100644 --- a/helix-lsp/src/transport.rs +++ b/helix-lsp/src/transport.rs @@ -1,6 +1,6 @@ use std::collections::HashMap; -use log::{debug, error}; +use log::{error, info}; use crate::Error; @@ -48,7 +48,6 @@ pub(crate) struct Transport { writer: BufWriter, reader: BufReader, - #[allow(dead_code)] // TODO: handle stderr logs stderr: BufReader, } @@ -111,7 +110,7 @@ impl Transport { // read data - debug!("<- {}", msg); + info!("<- {}", msg); // try parsing as output (server response) or call (server request) let output: serde_json::Result = serde_json::from_str(&msg); @@ -119,6 +118,16 @@ impl Transport { Ok(output?) } + async fn err( + err: &mut (impl AsyncBufRead + Unpin), + ) -> core::result::Result<(), std::io::Error> { + let mut line = String::new(); + err.read_line(&mut line).await?; + error!("err <- {}", line); + + Ok(()) + } + pub async fn send_payload(&mut self, payload: Payload) -> anyhow::Result<()> { match payload { Payload::Request { chan, value } => { @@ -139,7 +148,7 @@ impl Transport { } pub async fn send(&mut self, request: String) -> anyhow::Result<()> { - debug!("-> {}", request); + info!("-> {}", request); // send the headers self.writer @@ -168,7 +177,7 @@ impl Transport { async fn recv_response(&mut self, output: jsonrpc::Output) -> anyhow::Result<()> { match output { jsonrpc::Output::Success(jsonrpc::Success { id, result, .. }) => { - debug!("<- {}", result); + info!("<- {}", result); let tx = self .pending_requests @@ -210,6 +219,7 @@ impl Transport { self.recv_msg(msg).await.unwrap(); } + _msg = Self::err(&mut self.stderr).fuse() => {} } } } diff --git a/helix-term/src/application.rs b/helix-term/src/application.rs index dd7778dd..79a916a5 100644 --- a/helix-term/src/application.rs +++ b/helix-term/src/application.rs @@ -5,7 +5,7 @@ use helix_view::{document::Mode, Document, Editor, Theme, View}; use crate::compositor::Compositor; use crate::ui; -use log::{debug, info}; +use log::{error, info}; use std::{ io::{self, stdout, Stdout, Write}, @@ -171,7 +171,7 @@ impl Application { } } Some(Call::MethodCall(call)) => { - debug!("Method not found {}", call.method); + error!("Method not found {}", call.method); // self.language_server.reply( // call.id,