aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_project_model/src
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-08-06 12:00:37 +0100
committerAleksey Kladov <[email protected]>2019-08-06 13:28:31 +0100
commit34203256bf8f8ea12b233e0fb49b42bd8c423281 (patch)
tree79ac51baa1696e06955ced637b6132c6a4eabf48 /crates/ra_project_model/src
parentc9718691043b041f5db878caea687b5a029d4475 (diff)
introduce ra_vfs_glob crate
It manages exclusion rules for the vfs crate
Diffstat (limited to 'crates/ra_project_model/src')
-rw-r--r--crates/ra_project_model/src/lib.rs23
1 files changed, 0 insertions, 23 deletions
diff --git a/crates/ra_project_model/src/lib.rs b/crates/ra_project_model/src/lib.rs
index c7167046b..55b94b911 100644
--- a/crates/ra_project_model/src/lib.rs
+++ b/crates/ra_project_model/src/lib.rs
@@ -10,7 +10,6 @@ use std::{
10}; 10};
11 11
12use ra_db::{CrateGraph, Edition, FileId}; 12use ra_db::{CrateGraph, Edition, FileId};
13use relative_path::RelativePath;
14use rustc_hash::FxHashMap; 13use rustc_hash::FxHashMap;
15use serde_json::from_reader; 14use serde_json::from_reader;
16 15
@@ -54,28 +53,6 @@ impl PackageRoot {
54 pub fn is_member(&self) -> bool { 53 pub fn is_member(&self) -> bool {
55 self.is_member 54 self.is_member
56 } 55 }
57
58 pub fn include_dir(&self, dir_path: &RelativePath) -> bool {
59 const COMMON_IGNORED_DIRS: &[&str] = &["node_modules", "target", ".git"];
60 const EXTERNAL_IGNORED_DIRS: &[&str] = &["examples", "tests", "benches"];
61
62 let is_ignored = if self.is_member {
63 dir_path.components().any(|c| COMMON_IGNORED_DIRS.contains(&c.as_str()))
64 } else {
65 dir_path.components().any(|c| {
66 let path = c.as_str();
67 COMMON_IGNORED_DIRS.contains(&path) || EXTERNAL_IGNORED_DIRS.contains(&path)
68 })
69 };
70
71 let hidden = dir_path.components().any(|c| c.as_str().starts_with('.'));
72
73 !is_ignored && !hidden
74 }
75
76 pub fn include_file(&self, file_path: &RelativePath) -> bool {
77 file_path.extension() == Some("rs")
78 }
79} 56}
80 57
81impl ProjectWorkspace { 58impl ProjectWorkspace {