From 2c9a1cb3dd941b3f2f608a0633f620478bce0c68 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 29 May 2019 15:42:14 +0300 Subject: add latest requests to status page --- crates/ra_lsp_server/src/main_loop/handlers.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'crates/ra_lsp_server/src/main_loop/handlers.rs') diff --git a/crates/ra_lsp_server/src/main_loop/handlers.rs b/crates/ra_lsp_server/src/main_loop/handlers.rs index e36db12b3..dc817f2d9 100644 --- a/crates/ra_lsp_server/src/main_loop/handlers.rs +++ b/crates/ra_lsp_server/src/main_loop/handlers.rs @@ -1,3 +1,5 @@ +use std::{io::Write as _, fmt::Write as _}; + use gen_lsp_server::ErrorCode; use lsp_types::{ CodeActionResponse, CodeLens, Command, Diagnostic, DiagnosticSeverity, CodeAction, @@ -16,7 +18,6 @@ use ra_prof::profile; use rustc_hash::FxHashMap; use serde::{Serialize, Deserialize}; use serde_json::to_value; -use std::io::Write; use url_serde::Ser; use crate::{ @@ -28,7 +29,14 @@ use crate::{ }; pub fn handle_analyzer_status(world: ServerWorld, _: ()) -> Result { - Ok(world.status()) + let mut buf = world.status(); + writeln!(buf, "\n\nrequests:").unwrap(); + let requests = world.latest_completed_requests.read(); + for (idx, r) in requests.iter().enumerate() { + let current = if idx == world.request_idx { "*" } else { " " }; + writeln!(buf, "{:4}{}{:<36}: {:?}", r.id, current, r.method, r.duration).unwrap(); + } + Ok(buf) } pub fn handle_syntax_tree(world: ServerWorld, params: req::SyntaxTreeParams) -> Result { -- cgit v1.2.3