From 28ddecf6c99ef23bc96b9eb7bc8ee049f1732e76 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 6 Dec 2018 21:16:37 +0300 Subject: modernize even more --- crates/gen_lsp_server/Cargo.toml | 1 + crates/gen_lsp_server/src/lib.rs | 21 ++++++--------------- crates/gen_lsp_server/src/msg.rs | 19 ++++++++++--------- crates/gen_lsp_server/src/stdio.rs | 3 ++- 4 files changed, 19 insertions(+), 25 deletions(-) (limited to 'crates/gen_lsp_server') diff --git a/crates/gen_lsp_server/Cargo.toml b/crates/gen_lsp_server/Cargo.toml index cf5c34a88..08b357b1e 100644 --- a/crates/gen_lsp_server/Cargo.toml +++ b/crates/gen_lsp_server/Cargo.toml @@ -1,4 +1,5 @@ [package] +edition = "2018" name = "gen_lsp_server" version = "0.1.0" authors = ["Aleksey Kladov "] diff --git a/crates/gen_lsp_server/src/lib.rs b/crates/gen_lsp_server/src/lib.rs index 5dab8f408..8779fbf0f 100644 --- a/crates/gen_lsp_server/src/lib.rs +++ b/crates/gen_lsp_server/src/lib.rs @@ -59,16 +59,7 @@ //! } //! ``` -#[macro_use] -extern crate failure; -#[macro_use] -extern crate log; -extern crate serde; -extern crate serde_json; -#[macro_use] -extern crate serde_derive; -extern crate crossbeam_channel; -extern crate languageserver_types; +use failure::{bail, format_err}; mod msg; mod stdio; @@ -81,7 +72,7 @@ use languageserver_types::{ }; pub type Result = ::std::result::Result; -pub use { +pub use crate::{ msg::{ErrorCode, RawMessage, RawNotification, RawRequest, RawResponse, RawResponseError}, stdio::{stdio_transport, Threads}, }; @@ -98,18 +89,18 @@ pub fn run_server( sender: Sender, server: impl FnOnce(InitializeParams, &Receiver, &Sender) -> Result<()>, ) -> Result<()> { - info!("lsp server initializes"); + log::info!("lsp server initializes"); let params = initialize(&receiver, &sender, caps)?; - info!("lsp server initialized, serving requests"); + log::info!("lsp server initialized, serving requests"); server(params, &receiver, &sender)?; - info!("lsp server waiting for exit notification"); + log::info!("lsp server waiting for exit notification"); match receiver.recv() { Some(RawMessage::Notification(n)) => n .cast::() .map_err(|n| format_err!("unexpected notification during shutdown: {:?}", n))?, m => bail!("unexpected message during shutdown: {:?}", m), } - info!("lsp server shutdown complete"); + log::info!("lsp server shutdown complete"); Ok(()) } diff --git a/crates/gen_lsp_server/src/msg.rs b/crates/gen_lsp_server/src/msg.rs index e1b27c808..1e5384380 100644 --- a/crates/gen_lsp_server/src/msg.rs +++ b/crates/gen_lsp_server/src/msg.rs @@ -1,10 +1,11 @@ use std::io::{BufRead, Write}; use languageserver_types::{notification::Notification, request::Request}; -use serde::{de::DeserializeOwned, Serialize}; +use serde_derive::{Deserialize, Serialize}; use serde_json::{from_str, from_value, to_string, to_value, Value}; +use failure::{bail, format_err}; -use Result; +use crate::Result; #[derive(Debug, Serialize, Deserialize, Clone)] #[serde(untagged)] @@ -91,7 +92,7 @@ impl RawRequest { pub fn new(id: u64, params: &R::Params) -> RawRequest where R: Request, - R::Params: Serialize, + R::Params: serde::Serialize, { RawRequest { id, @@ -102,7 +103,7 @@ impl RawRequest { pub fn cast(self) -> ::std::result::Result<(u64, R::Params), RawRequest> where R: Request, - R::Params: DeserializeOwned, + R::Params: serde::de::DeserializeOwned, { if self.method != R::METHOD { return Err(self); @@ -117,7 +118,7 @@ impl RawResponse { pub fn ok(id: u64, result: &R::Result) -> RawResponse where R: Request, - R::Result: Serialize, + R::Result: serde::Serialize, { RawResponse { id, @@ -143,7 +144,7 @@ impl RawNotification { pub fn new(params: &N::Params) -> RawNotification where N: Notification, - N::Params: Serialize, + N::Params: serde::Serialize, { RawNotification { method: N::METHOD.to_string(), @@ -153,7 +154,7 @@ impl RawNotification { pub fn cast(self) -> ::std::result::Result where N: Notification, - N::Params: DeserializeOwned, + N::Params: serde::de::DeserializeOwned, { if self.method != N::METHOD { return Err(self); @@ -191,12 +192,12 @@ fn read_msg_text(inp: &mut impl BufRead) -> Result> { buf.resize(size, 0); inp.read_exact(&mut buf)?; let buf = String::from_utf8(buf)?; - debug!("< {}", buf); + log::debug!("< {}", buf); Ok(Some(buf)) } fn write_msg_text(out: &mut impl Write, msg: &str) -> Result<()> { - debug!("> {}", msg); + log::debug!("> {}", msg); write!(out, "Content-Length: {}\r\n\r\n", msg.len())?; out.write_all(msg.as_bytes())?; out.flush()?; diff --git a/crates/gen_lsp_server/src/stdio.rs b/crates/gen_lsp_server/src/stdio.rs index 3d8a1712a..35d8e46d0 100644 --- a/crates/gen_lsp_server/src/stdio.rs +++ b/crates/gen_lsp_server/src/stdio.rs @@ -4,8 +4,9 @@ use std::{ }; use crossbeam_channel::{bounded, Receiver, Sender}; +use failure::bail; -use {RawMessage, Result}; +use crate::{RawMessage, Result}; pub fn stdio_transport() -> (Receiver, Sender, Threads) { let (writer_sender, mut writer_receiver) = bounded::(16); -- cgit v1.2.3