From 9358eecc042d8b551f58d2d5ddb9c88d258880c1 Mon Sep 17 00:00:00 2001 From: Edwin Cheng Date: Thu, 28 Jan 2021 23:33:02 +0800 Subject: Async Loading outdir and proc-macro --- crates/rust-analyzer/src/global_state.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'crates/rust-analyzer/src/global_state.rs') diff --git a/crates/rust-analyzer/src/global_state.rs b/crates/rust-analyzer/src/global_state.rs index 442fbd14c..6374a9f3c 100644 --- a/crates/rust-analyzer/src/global_state.rs +++ b/crates/rust-analyzer/src/global_state.rs @@ -11,7 +11,9 @@ use ide::{Analysis, AnalysisHost, Change, FileId}; use ide_db::base_db::{CrateId, VfsPath}; use lsp_types::{SemanticTokens, Url}; use parking_lot::{Mutex, RwLock}; -use project_model::{CargoWorkspace, ProcMacroClient, ProjectWorkspace, Target}; +use project_model::{ + BuildDataCollector, BuildDataResult, CargoWorkspace, ProcMacroClient, ProjectWorkspace, Target, +}; use rustc_hash::FxHashMap; use vfs::AnchoredPathBuf; @@ -33,7 +35,7 @@ use crate::{ #[derive(Eq, PartialEq, Copy, Clone)] pub(crate) enum Status { Loading, - Ready, + Ready { partial: bool }, Invalid, NeedsReload, } @@ -79,7 +81,9 @@ pub(crate) struct GlobalState { pub(crate) source_root_config: SourceRootConfig, pub(crate) proc_macro_client: Option, pub(crate) workspaces: Arc>, - pub(crate) fetch_workspaces_queue: OpQueue, + pub(crate) fetch_workspaces_queue: OpQueue<()>, + pub(crate) workspace_build_data: Option, + pub(crate) fetch_build_data_queue: OpQueue, latest_requests: Arc>, } @@ -133,6 +137,8 @@ impl GlobalState { proc_macro_client: None, workspaces: Arc::new(Vec::new()), fetch_workspaces_queue: OpQueue::default(), + workspace_build_data: None, + fetch_build_data_queue: OpQueue::default(), latest_requests: Default::default(), } } -- cgit v1.2.3