mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-22 01:16:18 +04:00
First stab at ignoring compressed files from picker (#767)
This commit is contained in:
parent
2edc85e953
commit
3b032e8e1f
@ -91,9 +91,25 @@ pub fn regex_prompt(
|
||||
}
|
||||
|
||||
pub fn file_picker(root: PathBuf) -> FilePicker<PathBuf> {
|
||||
use ignore::Walk;
|
||||
use ignore::{types::TypesBuilder, WalkBuilder};
|
||||
use std::time;
|
||||
let files = Walk::new(&root).filter_map(|entry| {
|
||||
|
||||
// We want to exclude files that the editor can't handle yet
|
||||
let mut type_builder = TypesBuilder::new();
|
||||
let mut walk_builder = WalkBuilder::new(&root);
|
||||
let walk_builder = match type_builder.add(
|
||||
"compressed",
|
||||
"*.{zip,gz,bz2,zst,lzo,sz,tgz,tbz2,lz,lz4,lzma,lzo,z,Z,xz,7z,rar,cab}",
|
||||
) {
|
||||
Err(_) => &walk_builder,
|
||||
_ => {
|
||||
type_builder.negate("all");
|
||||
let excluded_types = type_builder.build().unwrap();
|
||||
walk_builder.types(excluded_types)
|
||||
}
|
||||
};
|
||||
|
||||
let files = walk_builder.build().filter_map(|entry| {
|
||||
let entry = entry.ok()?;
|
||||
// Path::is_dir() traverses symlinks, so we use it over DirEntry::is_dir
|
||||
if entry.path().is_dir() {
|
||||
|
Loading…
Reference in New Issue
Block a user