diff --git a/crates/ra_vfs/src/io/mod.rs b/crates/ra_vfs/src/io.rs similarity index 99% rename from crates/ra_vfs/src/io/mod.rs rename to crates/ra_vfs/src/io.rs index daac6c6f28..3ab52ac3d4 100644 --- a/crates/ra_vfs/src/io/mod.rs +++ b/crates/ra_vfs/src/io.rs @@ -132,7 +132,7 @@ fn handle_task(task: Task, watcher: &Arc>>) -> TaskResult root_filter, nested_roots, } => { - watch(watcher, &path, &*root_filter, false); + watch(watcher, &path, root_filter.as_ref(), false); log::debug!("loading {} ...", path.as_path().display()); let files = load_root( path.as_path(), diff --git a/crates/ra_vfs/src/lib.rs b/crates/ra_vfs/src/lib.rs index f4447be43d..4f3896a82a 100644 --- a/crates/ra_vfs/src/lib.rs +++ b/crates/ra_vfs/src/lib.rs @@ -59,7 +59,15 @@ impl RootFilter { pub(crate) fn default_filter(path: &Path, rel_path: &RelativePath) -> bool { if path.is_dir() { - rel_path.components().next() != Some(Component::Normal("target")) + for (i, c) in rel_path.components().enumerate() { + if let Component::Normal(c) = c { + // hardcoded for now + if (i == 0 && c == "target") || c == ".git" || c == "node_modules" { + return false; + } + } + } + true } else { rel_path.extension() == Some("rs") }