on master help sign in
Increase the log level in LSP and log server errors.
48ef659Blaž Hrastnik
helix-lsp/src/transport.rs+15−5
@@ -1,6 +1,6 @@
1use std::collections::HashMap;
1use std::collections::HashMap;
2
2
3−use log::{debug, error};
3+use log::{error, info};
4
4
5use crate::Error;
5use crate::Error;
6
6
@@ -48,7 +48,6 @@ pub(crate) struct Transport {
48
48
49 writer: BufWriter<ChildStdin>,
49 writer: BufWriter<ChildStdin>,
50 reader: BufReader<ChildStdout>,
50 reader: BufReader<ChildStdout>,
51− #[allow(dead_code)] // TODO: handle stderr logs
52 stderr: BufReader<ChildStderr>,
51 stderr: BufReader<ChildStderr>,
53}
52}
54
53
@@ -111,7 +110,7 @@ impl Transport {
111
110
112 // read data
111 // read data
113
112
114− debug!("<- {}", msg);
113+ info!("<- {}", msg);
115
114
116 // try parsing as output (server response) or call (server request)
115 // try parsing as output (server response) or call (server request)
117 let output: serde_json::Result<Message> = serde_json::from_str(&msg);
116 let output: serde_json::Result<Message> = serde_json::from_str(&msg);
@@ -119,6 +118,16 @@ impl Transport {
119 Ok(output?)
118 Ok(output?)
120 }
119 }
121
120
121+ async fn err(
122+ err: &mut (impl AsyncBufRead + Unpin),
123+ ) -> core::result::Result<(), std::io::Error> {
124+ let mut line = String::new();
125+ err.read_line(&mut line).await?;
126+ error!("err <- {}", line);
127+
128+ Ok(())
129+ }
130+
122 pub async fn send_payload(&mut self, payload: Payload) -> anyhow::Result<()> {
131 pub async fn send_payload(&mut self, payload: Payload) -> anyhow::Result<()> {
123 match payload {
132 match payload {
124 Payload::Request { chan, value } => {
133 Payload::Request { chan, value } => {
@@ -139,7 +148,7 @@ impl Transport {
139 }
148 }
140
149
141 pub async fn send(&mut self, request: String) -> anyhow::Result<()> {
150 pub async fn send(&mut self, request: String) -> anyhow::Result<()> {
142− debug!("-> {}", request);
151+ info!("-> {}", request);
143
152
144 // send the headers
153 // send the headers
145 self.writer
154 self.writer
@@ -168,7 +177,7 @@ impl Transport {
168 async fn recv_response(&mut self, output: jsonrpc::Output) -> anyhow::Result<()> {
177 async fn recv_response(&mut self, output: jsonrpc::Output) -> anyhow::Result<()> {
169 match output {
178 match output {
170 jsonrpc::Output::Success(jsonrpc::Success { id, result, .. }) => {
179 jsonrpc::Output::Success(jsonrpc::Success { id, result, .. }) => {
171− debug!("<- {}", result);
180+ info!("<- {}", result);
172
181
173 let tx = self
182 let tx = self
174 .pending_requests
183 .pending_requests
@@ -210,6 +219,7 @@ impl Transport {
210
219
211 self.recv_msg(msg).await.unwrap();
220 self.recv_msg(msg).await.unwrap();
212 }
221 }
222+ _msg = Self::err(&mut self.stderr).fuse() => {}
213 }
223 }
214 }
224 }
215 }
225 }
helix-term/src/application.rs+2−2
@@ -5,7 +5,7 @@ use helix_view::{document::Mode, Document, Editor, Theme, View};
5use crate::compositor::Compositor;
5use crate::compositor::Compositor;
6use crate::ui;
6use crate::ui;
7
7
8−use log::{debug, info};
8+use log::{error, info};
9
9
10use std::{
10use std::{
11 io::{self, stdout, Stdout, Write},
11 io::{self, stdout, Stdout, Write},
@@ -171,7 +171,7 @@ impl Application {
171 }
171 }
172 }
172 }
173 Some(Call::MethodCall(call)) => {
173 Some(Call::MethodCall(call)) => {
174− debug!("Method not found {}", call.method);
174+ error!("Method not found {}", call.method);
175
175
176 // self.language_server.reply(
176 // self.language_server.reply(
177 // call.id,
177 // call.id,