From 30a4099ea7d882e5d5f62c373ccf7b8af23e09c5 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sun, 14 Apr 2019 22:40:04 +0300 Subject: switch to modern paths --- crates/ra_lsp_server/src/main.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'crates/ra_lsp_server') diff --git a/crates/ra_lsp_server/src/main.rs b/crates/ra_lsp_server/src/main.rs index 82f52a6e8..4646742ca 100644 --- a/crates/ra_lsp_server/src/main.rs +++ b/crates/ra_lsp_server/src/main.rs @@ -6,17 +6,17 @@ use ra_lsp_server::{Result, InitializationOptions}; use ra_prof; fn main() -> Result<()> { - ::std::env::set_var("RUST_BACKTRACE", "short"); + 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_INTERNAL_MODE") { + match std::env::var("RA_INTERNAL_MODE") { Ok(ref v) if v == "1" => logger.log_to_file().directory("log").start()?, _ => logger.start()?, }; - let prof_depth = match ::std::env::var("RA_PROFILE_DEPTH") { + let prof_depth = match std::env::var("RA_PROFILE_DEPTH") { Ok(ref d) => d.parse()?, _ => 0, }; - let profile_allowed = match ::std::env::var("RA_PROFILE") { + let profile_allowed = match std::env::var("RA_PROFILE") { Ok(ref p) => p.split(";").map(String::from).collect(), _ => Vec::new(), }; @@ -36,7 +36,7 @@ fn main() -> Result<()> { fn main_inner() -> Result<()> { let (receiver, sender, threads) = stdio_transport(); - let cwd = ::std::env::current_dir()?; + let cwd = std::env::current_dir()?; run_server(ra_lsp_server::server_capabilities(), receiver, sender, |params, r, s| { let root = params.root_uri.and_then(|it| it.to_file_path().ok()).unwrap_or(cwd); -- cgit v1.2.3 From b228947b6863f5864b48bb3a7f3dcca921f58d0b Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sun, 14 Apr 2019 23:04:08 +0300 Subject: cleanup syntax --- crates/ra_lsp_server/src/main.rs | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'crates/ra_lsp_server') diff --git a/crates/ra_lsp_server/src/main.rs b/crates/ra_lsp_server/src/main.rs index 4646742ca..28f9985b6 100644 --- a/crates/ra_lsp_server/src/main.rs +++ b/crates/ra_lsp_server/src/main.rs @@ -12,15 +12,27 @@ fn main() -> Result<()> { Ok(ref v) if v == "1" => logger.log_to_file().directory("log").start()?, _ => logger.start()?, }; - let prof_depth = match std::env::var("RA_PROFILE_DEPTH") { - Ok(ref d) => d.parse()?, - _ => 0, - }; - let profile_allowed = match std::env::var("RA_PROFILE") { - Ok(ref p) => p.split(";").map(String::from).collect(), - _ => Vec::new(), + // Filtering syntax + // env RA_PROFILE=* // dump everything + // env RA_PROFILE=foo|bar|baz // enabled only selected entries + // env RA_PROFILE=*@3 // dump everything, up to depth 3 + let filter = match std::env::var("RA_PROFILE") { + Ok(p) => { + let mut p = p.as_str(); + let depth = if let Some(idx) = p.rfind("@") { + let depth: usize = p[idx + 1..].parse().expect("invalid profile depth"); + p = &p[..idx]; + depth + } else { + 999 + }; + let allowed = + if p == "*" { Vec::new() } else { p.split(";").map(String::from).collect() }; + ra_prof::Filter::new(depth, allowed) + } + Err(_) => ra_prof::Filter::disabled(), }; - ra_prof::set_filter(ra_prof::Filter::new(prof_depth, profile_allowed)); + ra_prof::set_filter(filter); log::info!("lifecycle: server started"); match ::std::panic::catch_unwind(main_inner) { Ok(res) => { -- cgit v1.2.3 From 5b7012318cdf5fb0bb8b01319270c1b4bf0311ee Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sun, 14 Apr 2019 23:18:58 +0300 Subject: filter by time --- crates/ra_lsp_server/src/main.rs | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) (limited to 'crates/ra_lsp_server') diff --git a/crates/ra_lsp_server/src/main.rs b/crates/ra_lsp_server/src/main.rs index 28f9985b6..b0b70df5c 100644 --- a/crates/ra_lsp_server/src/main.rs +++ b/crates/ra_lsp_server/src/main.rs @@ -8,31 +8,14 @@ use ra_prof; fn main() -> 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_INTERNAL_MODE") { + match std::env::var("RA_LOG_DIR") { Ok(ref v) if v == "1" => logger.log_to_file().directory("log").start()?, _ => logger.start()?, }; - // Filtering syntax - // env RA_PROFILE=* // dump everything - // env RA_PROFILE=foo|bar|baz // enabled only selected entries - // env RA_PROFILE=*@3 // dump everything, up to depth 3 - let filter = match std::env::var("RA_PROFILE") { - Ok(p) => { - let mut p = p.as_str(); - let depth = if let Some(idx) = p.rfind("@") { - let depth: usize = p[idx + 1..].parse().expect("invalid profile depth"); - p = &p[..idx]; - depth - } else { - 999 - }; - let allowed = - if p == "*" { Vec::new() } else { p.split(";").map(String::from).collect() }; - ra_prof::Filter::new(depth, allowed) - } + ra_prof::set_filter(match std::env::var("RA_PROFILE") { + Ok(spec) => ra_prof::Filter::from_spec(&spec), Err(_) => ra_prof::Filter::disabled(), - }; - ra_prof::set_filter(filter); + }); log::info!("lifecycle: server started"); match ::std::panic::catch_unwind(main_inner) { Ok(res) => { -- cgit v1.2.3 From c4a5aa45dc480792b24535ee6739a4e9a15e8aa8 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sun, 14 Apr 2019 23:28:10 +0300 Subject: add a couple of profiling points --- crates/ra_lsp_server/src/main_loop/handlers.rs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'crates/ra_lsp_server') diff --git a/crates/ra_lsp_server/src/main_loop/handlers.rs b/crates/ra_lsp_server/src/main_loop/handlers.rs index 41d1f759f..eb8a53545 100644 --- a/crates/ra_lsp_server/src/main_loop/handlers.rs +++ b/crates/ra_lsp_server/src/main_loop/handlers.rs @@ -12,6 +12,7 @@ use ra_ide_api::{ AssistId, }; use ra_syntax::{AstNode, SyntaxKind, TextUnit}; +use ra_prof::profile; use rustc_hash::FxHashMap; use serde::{Serialize, Deserialize}; use serde_json::to_value; @@ -328,6 +329,7 @@ pub fn handle_completion( world: ServerWorld, params: req::CompletionParams, ) -> Result> { + let _p = profile("handle_completion"); let position = { let file_id = params.text_document.try_conv_with(&world)?; let line_index = world.analysis().file_line_index(file_id); @@ -564,6 +566,7 @@ pub fn handle_code_action( world: ServerWorld, params: req::CodeActionParams, ) -> Result> { + let _p = profile("handle_code_action"); let file_id = params.text_document.try_conv_with(&world)?; let line_index = world.analysis().file_line_index(file_id); let range = params.range.conv_with(&line_index); -- cgit v1.2.3