7474: Make logger-based debugging more pleasant r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
This commit is contained in:
bors[bot] 2021-01-28 14:08:54 +00:00 committed by GitHub
commit 4a88d93499
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 4 deletions

View file

@ -76,7 +76,6 @@ impl FlycheckHandle {
} }
} }
#[derive(Debug)]
pub enum Message { pub enum Message {
/// Request adding a diagnostic with fixes included to a file /// Request adding a diagnostic with fixes included to a file
AddDiagnostic { workspace_root: PathBuf, diagnostic: Diagnostic }, AddDiagnostic { workspace_root: PathBuf, diagnostic: Diagnostic },
@ -89,6 +88,21 @@ pub enum Message {
}, },
} }
impl fmt::Debug for Message {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Message::AddDiagnostic { workspace_root, diagnostic } => f
.debug_struct("AddDiagnostic")
.field("workspace_root", workspace_root)
.field("diagnostic_code", &diagnostic.code.as_ref().map(|it| &it.code))
.finish(),
Message::Progress { id, progress } => {
f.debug_struct("Progress").field("id", id).field("progress", progress).finish()
}
}
}
}
#[derive(Debug)] #[derive(Debug)]
pub enum Progress { pub enum Progress {
DidStart, DidStart,

View file

@ -51,6 +51,7 @@ pub enum ProjectWorkspace {
impl fmt::Debug for ProjectWorkspace { impl fmt::Debug for ProjectWorkspace {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
// Make sure this isn't too verbose.
match self { match self {
ProjectWorkspace::Cargo { cargo, sysroot, rustc, rustc_cfg } => f ProjectWorkspace::Cargo { cargo, sysroot, rustc, rustc_cfg } => f
.debug_struct("Cargo") .debug_struct("Cargo")
@ -60,7 +61,7 @@ impl fmt::Debug for ProjectWorkspace {
"n_rustc_compiler_crates", "n_rustc_compiler_crates",
&rustc.as_ref().map_or(0, |rc| rc.packages().len()), &rustc.as_ref().map_or(0, |rc| rc.packages().len()),
) )
.field("rustc_cfg", rustc_cfg) .field("n_rustc_cfg", &rustc_cfg.len())
.finish(), .finish(),
ProjectWorkspace::Json { project, sysroot, rustc_cfg } => { ProjectWorkspace::Json { project, sysroot, rustc_cfg } => {
let mut debug_struct = f.debug_struct("Json"); let mut debug_struct = f.debug_struct("Json");
@ -68,7 +69,7 @@ impl fmt::Debug for ProjectWorkspace {
if let Some(sysroot) = sysroot { if let Some(sysroot) = sysroot {
debug_struct.field("n_sysroot_crates", &sysroot.crates().len()); debug_struct.field("n_sysroot_crates", &sysroot.crates().len());
} }
debug_struct.field("rustc_cfg", rustc_cfg); debug_struct.field("n_rustc_cfg", &rustc_cfg.len());
debug_struct.finish() debug_struct.finish()
} }
} }

View file

@ -103,10 +103,10 @@ impl GlobalState {
self.fetch_workspaces_queue.request_op() self.fetch_workspaces_queue.request_op()
} }
pub(crate) fn fetch_workspaces_if_needed(&mut self) { pub(crate) fn fetch_workspaces_if_needed(&mut self) {
log::info!("will fetch workspaces");
if !self.fetch_workspaces_queue.should_start_op() { if !self.fetch_workspaces_queue.should_start_op() {
return; return;
} }
log::info!("will fetch workspaces");
self.task_pool.handle.spawn_with_sender({ self.task_pool.handle.spawn_with_sender({
let linked_projects = self.config.linked_projects(); let linked_projects = self.config.linked_projects();