push glob errors outwards

This commit is contained in:
Aleksey Kladov 2019-08-06 13:27:00 +02:00
parent f70b7e1f07
commit 058c2daba1

View file

@ -5,9 +5,11 @@
//! //!
//! It's also possible to add custom exclusion globs. //! It's also possible to add custom exclusion globs.
use globset::{Glob, GlobSet, GlobSetBuilder}; use globset::{GlobSet, GlobSetBuilder};
use ra_vfs::{Filter, RelativePath}; use ra_vfs::{Filter, RelativePath};
pub use globset::{Glob, GlobBuilder};
const ALWAYS_IGNORED: &[&str] = &["target/**", "**/node_modules/**", "**/.git/**"]; const ALWAYS_IGNORED: &[&str] = &["target/**", "**/node_modules/**", "**/.git/**"];
const IGNORED_FOR_NON_MEMBERS: &[&str] = &["examples/**", "tests/**", "benches/**"]; const IGNORED_FOR_NON_MEMBERS: &[&str] = &["examples/**", "tests/**", "benches/**"];
@ -27,9 +29,9 @@ impl RustPackageFilterBuilder {
self.is_member = is_member; self.is_member = is_member;
self self
} }
pub fn exclude(mut self, glob: &str) -> Result<RustPackageFilterBuilder, globset::Error> { pub fn exclude(mut self, glob: Glob) -> RustPackageFilterBuilder {
self.exclude.add(Glob::new(glob)?); self.exclude.add(glob);
Ok(self) self
} }
pub fn into_vfs_filter(self) -> Box<dyn Filter> { pub fn into_vfs_filter(self) -> Box<dyn Filter> {
let RustPackageFilterBuilder { is_member, mut exclude } = self; let RustPackageFilterBuilder { is_member, mut exclude } = self;
@ -85,8 +87,7 @@ fn test_globs() {
let filter = RustPackageFilterBuilder::default() let filter = RustPackageFilterBuilder::default()
.set_member(true) .set_member(true)
.exclude("src/llvm-project/**") .exclude(Glob::new("src/llvm-project/**").unwrap())
.unwrap()
.into_vfs_filter(); .into_vfs_filter();
assert!(!filter.include_dir(RelativePath::new("src/llvm-project/clang"))); assert!(!filter.include_dir(RelativePath::new("src/llvm-project/clang")));