Fix tests part 2...
This commit is contained in:
@@ -426,12 +426,6 @@ fn loop_turn(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if !loop_state.workspace_loaded
|
|
||||||
&& world_state.feature_flags.get("notifications.workspace-loaded")
|
|
||||||
{
|
|
||||||
send_startup_progress(&connection.sender, loop_state, world_state);
|
|
||||||
}
|
|
||||||
|
|
||||||
if !loop_state.workspace_loaded
|
if !loop_state.workspace_loaded
|
||||||
&& world_state.roots_to_scan == 0
|
&& world_state.roots_to_scan == 0
|
||||||
&& loop_state.pending_libraries.is_empty()
|
&& loop_state.pending_libraries.is_empty()
|
||||||
@@ -444,6 +438,9 @@ fn loop_turn(
|
|||||||
let snap = world_state.snapshot();
|
let snap = world_state.snapshot();
|
||||||
move || snap.analysis().prime_caches(subs).unwrap_or_else(|_: Canceled| ())
|
move || snap.analysis().prime_caches(subs).unwrap_or_else(|_: Canceled| ())
|
||||||
});
|
});
|
||||||
|
send_startup_progress(&connection.sender, loop_state, world_state);
|
||||||
|
} else if !loop_state.workspace_loaded {
|
||||||
|
send_startup_progress(&connection.sender, loop_state, world_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
if state_changed {
|
if state_changed {
|
||||||
@@ -713,49 +710,49 @@ fn send_startup_progress(
|
|||||||
loop_state: &mut LoopState,
|
loop_state: &mut LoopState,
|
||||||
world_state: &WorldState,
|
world_state: &WorldState,
|
||||||
) {
|
) {
|
||||||
|
if !world_state.feature_flags.get("notifications.workspace-loaded") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let total: usize = world_state.workspaces.iter().map(|it| it.n_packages()).sum();
|
let total: usize = world_state.workspaces.iter().map(|it| it.n_packages()).sum();
|
||||||
let prev_progress = loop_state.roots_scanned_progress;
|
let prev_progress = loop_state.roots_scanned_progress;
|
||||||
let progress = total - world_state.roots_to_scan;
|
let progress = total - world_state.roots_to_scan;
|
||||||
if prev_progress == Some(progress) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
loop_state.roots_scanned_progress = Some(progress);
|
loop_state.roots_scanned_progress = Some(progress);
|
||||||
|
|
||||||
if prev_progress.is_none() {
|
match (prev_progress, loop_state.workspace_loaded) {
|
||||||
let work_done_progress_create = request_new::<req::WorkDoneProgressCreate>(
|
(None, false) => {
|
||||||
loop_state.next_request_id(),
|
let work_done_progress_create = request_new::<req::WorkDoneProgressCreate>(
|
||||||
WorkDoneProgressCreateParams {
|
loop_state.next_request_id(),
|
||||||
token: req::ProgressToken::String("rustAnalyzer/startup".into()),
|
WorkDoneProgressCreateParams {
|
||||||
},
|
token: req::ProgressToken::String("rustAnalyzer/startup".into()),
|
||||||
);
|
},
|
||||||
sender.send(work_done_progress_create.into()).unwrap();
|
);
|
||||||
send_startup_progress_notif(
|
sender.send(work_done_progress_create.into()).unwrap();
|
||||||
sender,
|
send_startup_progress_notif(
|
||||||
WorkDoneProgress::Begin(WorkDoneProgressBegin {
|
sender,
|
||||||
title: "rust-analyzer".into(),
|
WorkDoneProgress::Begin(WorkDoneProgressBegin {
|
||||||
cancellable: None,
|
title: "rust-analyzer".into(),
|
||||||
message: Some(format!("{}/{} packages", progress, total)),
|
cancellable: None,
|
||||||
percentage: Some(100.0 * progress as f64 / total as f64),
|
message: Some(format!("{}/{} packages", progress, total)),
|
||||||
}),
|
percentage: Some(100.0 * progress as f64 / total as f64),
|
||||||
);
|
}),
|
||||||
} else if progress < total {
|
);
|
||||||
send_startup_progress_notif(
|
}
|
||||||
|
(Some(prev), false) if progress != prev => send_startup_progress_notif(
|
||||||
sender,
|
sender,
|
||||||
WorkDoneProgress::Report(WorkDoneProgressReport {
|
WorkDoneProgress::Report(WorkDoneProgressReport {
|
||||||
cancellable: None,
|
cancellable: None,
|
||||||
message: Some(format!("{}/{} packages", progress, total)),
|
message: Some(format!("{}/{} packages", progress, total)),
|
||||||
percentage: Some(100.0 * progress as f64 / total as f64),
|
percentage: Some(100.0 * progress as f64 / total as f64),
|
||||||
}),
|
}),
|
||||||
)
|
),
|
||||||
}
|
(_, true) => send_startup_progress_notif(
|
||||||
|
|
||||||
if progress == total {
|
|
||||||
send_startup_progress_notif(
|
|
||||||
sender,
|
sender,
|
||||||
WorkDoneProgress::End(WorkDoneProgressEnd {
|
WorkDoneProgress::End(WorkDoneProgressEnd {
|
||||||
message: Some(format!("rust-analyzer loaded, {} packages", progress)),
|
message: Some(format!("rust-analyzer loaded, {} packages", progress)),
|
||||||
}),
|
}),
|
||||||
)
|
),
|
||||||
|
_ => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user