From 4e3f5cc7293d97aef4630ea30b8e9ad6931589a8 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 31 Aug 2019 14:47:37 +0300 Subject: cleanup main loop --- crates/ra_lsp_server/src/main.rs | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'crates/ra_lsp_server/src/main.rs') diff --git a/crates/ra_lsp_server/src/main.rs b/crates/ra_lsp_server/src/main.rs index 88504bb89..d40fed947 100644 --- a/crates/ra_lsp_server/src/main.rs +++ b/crates/ra_lsp_server/src/main.rs @@ -5,37 +5,37 @@ use ra_lsp_server::{show_message, Result, ServerConfig}; use ra_prof; fn main() -> Result<()> { + setup_logging()?; + run_server()?; + Ok(()) +} + +fn setup_logging() -> Result<()> { std::env::set_var("RUST_BACKTRACE", "short"); + let logger = Logger::with_env_or_str("error").duplicate_to_stderr(Duplicate::All); match std::env::var("RA_LOG_DIR") { Ok(ref v) if v == "1" => logger.log_to_file().directory("log").start()?, _ => logger.start()?, }; + ra_prof::set_filter(match std::env::var("RA_PROFILE") { Ok(spec) => ra_prof::Filter::from_spec(&spec), Err(_) => ra_prof::Filter::disabled(), }); - log::info!("lifecycle: server started"); - match std::panic::catch_unwind(main_inner) { - Ok(res) => { - log::info!("lifecycle: terminating process with {:?}", res); - res - } - Err(_) => { - log::error!("server panicked"); - Err("server panicked")? - } - } + Ok(()) } -fn main_inner() -> Result<()> { - let cwd = std::env::current_dir()?; +fn run_server() -> Result<()> { + log::info!("lifecycle: server started"); + let (connection, io_threads) = Connection::stdio(); let server_capabilities = serde_json::to_value(ra_lsp_server::server_capabilities()).unwrap(); let initialize_params = connection.initialize(server_capabilities)?; let initialize_params: lsp_types::InitializeParams = serde_json::from_value(initialize_params)?; + let cwd = std::env::current_dir()?; let root = initialize_params.root_uri.and_then(|it| it.to_file_path().ok()).unwrap_or(cwd); let workspace_roots = initialize_params -- cgit v1.2.3