aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_project_model
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
parentc9718691043b041f5db878caea687b5a029d4475 (diff)
introduce ra_vfs_glob crate
It manages exclusion rules for the vfs crate
Diffstat (limited to 'crates/ra_project_model')
-rw-r--r--crates/ra_project_model/Cargo.toml1
-rw-r--r--crates/ra_project_model/src/lib.rs23
2 files changed, 0 insertions, 24 deletions
diff --git a/crates/ra_project_model/Cargo.toml b/crates/ra_project_model/Cargo.toml
index 3545d23c9..4fd6c75ef 100644
--- a/crates/ra_project_model/Cargo.toml
+++ b/crates/ra_project_model/Cargo.toml
@@ -7,7 +7,6 @@ authors = ["rust-analyzer developers"]
7[dependencies] 7[dependencies]
8log = "0.4.5" 8log = "0.4.5"
9rustc-hash = "1.0" 9rustc-hash = "1.0"
10relative-path = "0.4.0"
11 10
12cargo_metadata = "0.8.0" 11cargo_metadata = "0.8.0"
13 12
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 {