fix CI error
This commit is contained in:
parent
e04b897c54
commit
9dffc8c5cc
1
build.rs
1
build.rs
|
|
@ -11,6 +11,7 @@ use cmd::Cmd;
|
||||||
fn main() -> io::Result<()> {
|
fn main() -> io::Result<()> {
|
||||||
// Since we are generating completions in the package directory, we need to
|
// Since we are generating completions in the package directory, we need to
|
||||||
// set this so that Cargo doesn't rebuild every time.
|
// set this so that Cargo doesn't rebuild every time.
|
||||||
|
println!("cargo:rustc-check-cfg=cfg(test)");
|
||||||
println!("cargo:rerun-if-changed=build.rs");
|
println!("cargo:rerun-if-changed=build.rs");
|
||||||
println!("cargo:rerun-if-changed=src/");
|
println!("cargo:rerun-if-changed=src/");
|
||||||
println!("cargo:rerun-if-changed=templates/");
|
println!("cargo:rerun-if-changed=templates/");
|
||||||
|
|
|
||||||
|
|
@ -52,26 +52,24 @@ impl<'a> Stream<'a> {
|
||||||
Some(name) => name,
|
Some(name) => name,
|
||||||
None => return false,
|
None => return false,
|
||||||
};
|
};
|
||||||
|
|
||||||
let words: Vec<&str> = basename
|
let words: Vec<&str> = basename
|
||||||
.split(|c: char| c == '-' || c == '_' || c == ' ' || c == '.')
|
.split(|c| ['-', '_', ' ', '.'].contains(&c))
|
||||||
.filter(|s| !s.is_empty())
|
.filter(|s| !s.is_empty())
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
if words.len() < 2 {
|
if words.len() < 2 {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
let acronym: String = words.iter().filter_map(|word| word.chars().next()).collect();
|
let acronym: String = words.iter().filter_map(|word| word.chars().next()).collect();
|
||||||
|
|
||||||
let acronym_lower = util::to_lowercase(&acronym);
|
let acronym_lower = util::to_lowercase(&acronym);
|
||||||
|
|
||||||
let mut user_input = String::new();
|
let user_input: String = keywords.iter()
|
||||||
for kw in keywords {
|
.map(String::as_str)
|
||||||
user_input.push_str(kw);
|
.chain(std::iter::once(keywords_last))
|
||||||
}
|
.collect();
|
||||||
user_input.push_str(keywords_last);
|
|
||||||
|
|
||||||
acronym_lower == util::to_lowercase(&user_input)
|
acronym_lower == util::to_lowercase(&user_input)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -80,38 +78,31 @@ impl<'a> Stream<'a> {
|
||||||
Some(split) => split,
|
Some(split) => split,
|
||||||
None => return true,
|
None => return true,
|
||||||
};
|
};
|
||||||
|
|
||||||
let path_lower = util::to_lowercase(path);
|
let path_lower = util::to_lowercase(path);
|
||||||
let mut path_str = path_lower.as_str();
|
let mut path_str = path_lower.as_str();
|
||||||
|
|
||||||
let regular_match = {
|
let mut matched = false;
|
||||||
let mut matched = false;
|
if let Some(idx) = path_str.rfind(keywords_last) {
|
||||||
match path_str.rfind(keywords_last) {
|
if path_str[idx + keywords_last.len()..].contains(path::is_separator) {
|
||||||
Some(idx) => {
|
return false;
|
||||||
if path_str[idx + keywords_last.len()..].contains(path::is_separator) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
path_str = &path_str[..idx];
|
|
||||||
matched = true;
|
|
||||||
}
|
|
||||||
None => {}
|
|
||||||
}
|
}
|
||||||
|
path_str = &path_str[..idx];
|
||||||
if !matched {
|
matched = true;
|
||||||
return self.match_acronym(path, keywords_last, keywords);
|
}
|
||||||
|
|
||||||
|
if !matched {
|
||||||
|
return self.match_acronym(path, keywords_last, keywords);
|
||||||
|
}
|
||||||
|
|
||||||
|
for keyword in keywords.iter().rev() {
|
||||||
|
match path_str.rfind(keyword) {
|
||||||
|
Some(idx) => path_str = &path_str[..idx],
|
||||||
|
None => return self.match_acronym(path, keywords_last, keywords),
|
||||||
}
|
}
|
||||||
|
}
|
||||||
for keyword in keywords.iter().rev() {
|
|
||||||
match path_str.rfind(keyword) {
|
true
|
||||||
Some(idx) => path_str = &path_str[..idx],
|
|
||||||
None => return self.match_acronym(path, keywords_last, keywords),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
true
|
|
||||||
};
|
|
||||||
|
|
||||||
regular_match
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn filter_by_exclude(&self, path: &str) -> bool {
|
fn filter_by_exclude(&self, path: &str) -> bool {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue