Fix review comments
This commit is contained in:
@@ -208,8 +208,8 @@ pub fn main_loop(
|
||||
)
|
||||
};
|
||||
|
||||
loop_state.roots_to_scan = world_state.vfs.read().n_roots();
|
||||
loop_state.roots_total = loop_state.roots_to_scan;
|
||||
loop_state.roots_total = world_state.vfs.read().n_roots();
|
||||
loop_state.roots_scanned = 0;
|
||||
|
||||
let pool = ThreadPool::default();
|
||||
let (task_sender, task_receiver) = unbounded::<Task>();
|
||||
@@ -337,8 +337,8 @@ struct LoopState {
|
||||
pending_libraries: Vec<(SourceRootId, Vec<(FileId, RelativePathBuf, Arc<String>)>)>,
|
||||
workspace_loaded: bool,
|
||||
|
||||
roots_scanned_progress: Option<usize>,
|
||||
roots_to_scan: usize,
|
||||
roots_progress_reported: Option<usize>,
|
||||
roots_scanned: usize,
|
||||
roots_total: usize,
|
||||
}
|
||||
|
||||
@@ -383,7 +383,7 @@ fn loop_turn(
|
||||
world_state.add_lib(lib);
|
||||
world_state.maybe_collect_garbage();
|
||||
loop_state.in_flight_libraries -= 1;
|
||||
loop_state.roots_to_scan -= 1;
|
||||
loop_state.roots_scanned += 1;
|
||||
}
|
||||
Event::CheckWatcher(task) => on_check_task(task, world_state, task_sender)?,
|
||||
Event::Msg(msg) => match msg {
|
||||
@@ -415,7 +415,7 @@ fn loop_turn(
|
||||
};
|
||||
|
||||
let mut state_changed = false;
|
||||
if let Some(changes) = world_state.process_changes(&mut loop_state.roots_to_scan) {
|
||||
if let Some(changes) = world_state.process_changes(&mut loop_state.roots_scanned) {
|
||||
state_changed = true;
|
||||
loop_state.pending_libraries.extend(changes);
|
||||
}
|
||||
@@ -438,7 +438,7 @@ fn loop_turn(
|
||||
&& world_state.feature_flags.get("notifications.workspace-loaded");
|
||||
|
||||
if !loop_state.workspace_loaded
|
||||
&& loop_state.roots_to_scan == 0
|
||||
&& loop_state.roots_scanned == loop_state.roots_total
|
||||
&& loop_state.pending_libraries.is_empty()
|
||||
&& loop_state.in_flight_libraries == 0
|
||||
{
|
||||
@@ -719,11 +719,11 @@ fn on_diagnostic_task(task: DiagnosticTask, msg_sender: &Sender<Message>, state:
|
||||
|
||||
fn send_startup_progress(sender: &Sender<Message>, loop_state: &mut LoopState) {
|
||||
let total: usize = loop_state.roots_total;
|
||||
let prev_progress = loop_state.roots_scanned_progress;
|
||||
let progress = total - loop_state.roots_to_scan;
|
||||
loop_state.roots_scanned_progress = Some(progress);
|
||||
let prev = loop_state.roots_progress_reported;
|
||||
let progress = loop_state.roots_scanned;
|
||||
loop_state.roots_progress_reported = Some(progress);
|
||||
|
||||
match (prev_progress, loop_state.workspace_loaded) {
|
||||
match (prev, loop_state.workspace_loaded) {
|
||||
(None, false) => {
|
||||
let work_done_progress_create = request_new::<req::WorkDoneProgressCreate>(
|
||||
loop_state.next_request_id(),
|
||||
|
||||
@@ -203,7 +203,7 @@ impl WorldState {
|
||||
/// FIXME: better API here
|
||||
pub fn process_changes(
|
||||
&mut self,
|
||||
roots_to_scan: &mut usize,
|
||||
roots_scanned: &mut usize,
|
||||
) -> Option<Vec<(SourceRootId, Vec<(FileId, RelativePathBuf, Arc<String>)>)>> {
|
||||
let changes = self.vfs.write().commit_changes();
|
||||
if changes.is_empty() {
|
||||
@@ -217,7 +217,7 @@ impl WorldState {
|
||||
let root_path = self.vfs.read().root2path(root);
|
||||
let is_local = self.roots.iter().any(|r| root_path.starts_with(r));
|
||||
if is_local {
|
||||
*roots_to_scan -= 1;
|
||||
*roots_scanned += 1;
|
||||
for (file, path, text) in files {
|
||||
change.add_file(SourceRootId(root.0), FileId(file.0), path, text);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user