Increase the log level in LSP and log server errors.

pull/8/head
Blaž Hrastnik 4 years ago
parent d8bc19f715
commit 48ef6598db

@ -1,6 +1,6 @@
use std::collections::HashMap; use std::collections::HashMap;
use log::{debug, error}; use log::{error, info};
use crate::Error; use crate::Error;
@ -48,7 +48,6 @@ pub(crate) struct Transport {
writer: BufWriter<ChildStdin>, writer: BufWriter<ChildStdin>,
reader: BufReader<ChildStdout>, reader: BufReader<ChildStdout>,
#[allow(dead_code)] // TODO: handle stderr logs
stderr: BufReader<ChildStderr>, stderr: BufReader<ChildStderr>,
} }
@ -111,7 +110,7 @@ impl Transport {
// read data // read data
debug!("<- {}", msg); info!("<- {}", msg);
// try parsing as output (server response) or call (server request) // try parsing as output (server response) or call (server request)
let output: serde_json::Result<Message> = serde_json::from_str(&msg); let output: serde_json::Result<Message> = serde_json::from_str(&msg);
@ -119,6 +118,16 @@ impl Transport {
Ok(output?) 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<()> { pub async fn send_payload(&mut self, payload: Payload) -> anyhow::Result<()> {
match payload { match payload {
Payload::Request { chan, value } => { Payload::Request { chan, value } => {
@ -139,7 +148,7 @@ impl Transport {
} }
pub async fn send(&mut self, request: String) -> anyhow::Result<()> { pub async fn send(&mut self, request: String) -> anyhow::Result<()> {
debug!("-> {}", request); info!("-> {}", request);
// send the headers // send the headers
self.writer self.writer
@ -168,7 +177,7 @@ impl Transport {
async fn recv_response(&mut self, output: jsonrpc::Output) -> anyhow::Result<()> { async fn recv_response(&mut self, output: jsonrpc::Output) -> anyhow::Result<()> {
match output { match output {
jsonrpc::Output::Success(jsonrpc::Success { id, result, .. }) => { jsonrpc::Output::Success(jsonrpc::Success { id, result, .. }) => {
debug!("<- {}", result); info!("<- {}", result);
let tx = self let tx = self
.pending_requests .pending_requests
@ -210,6 +219,7 @@ impl Transport {
self.recv_msg(msg).await.unwrap(); self.recv_msg(msg).await.unwrap();
} }
_msg = Self::err(&mut self.stderr).fuse() => {}
} }
} }
} }

@ -5,7 +5,7 @@ use helix_view::{document::Mode, Document, Editor, Theme, View};
use crate::compositor::Compositor; use crate::compositor::Compositor;
use crate::ui; use crate::ui;
use log::{debug, info}; use log::{error, info};
use std::{ use std::{
io::{self, stdout, Stdout, Write}, io::{self, stdout, Stdout, Write},
@ -171,7 +171,7 @@ impl Application {
} }
} }
Some(Call::MethodCall(call)) => { Some(Call::MethodCall(call)) => {
debug!("Method not found {}", call.method); error!("Method not found {}", call.method);
// self.language_server.reply( // self.language_server.reply(
// call.id, // call.id,

Loading…
Cancel
Save