fix: Fix DidSaveDocument requests blocking the server on startup

This commit is contained in:
Lukas Wirth 2022-10-20 19:28:28 +02:00
parent f3cce5feea
commit de195ff97c
7 changed files with 132 additions and 83 deletions

View file

@ -1,8 +1,9 @@
use hir::Semantics;
use hir::{db::DefDatabase, Semantics};
use ide_db::{
base_db::{CrateId, FileId, FileLoader, FilePosition},
RootDatabase,
};
use itertools::Itertools;
use syntax::{
algo::find_node_at_offset,
ast::{self, AstNode},
@ -55,7 +56,12 @@ pub(crate) fn parent_module(db: &RootDatabase, position: FilePosition) -> Vec<Na
/// Returns `Vec` for the same reason as `parent_module`
pub(crate) fn crates_for(db: &RootDatabase, file_id: FileId) -> Vec<CrateId> {
db.relevant_crates(file_id).iter().copied().collect()
db.relevant_crates(file_id)
.iter()
.copied()
.filter(|&crate_id| db.crate_def_map(crate_id).modules_for_file(file_id).next().is_some())
.sorted()
.collect()
}
#[cfg(test)]