feat(plugins): strider improvements (#2551)

* fix(plugins): adjust debounce and smart file ignore in strider

* style(comment): remove commented code

* style(fmt): rustfmt
This commit is contained in:
Aram Drevekenin 2023-06-17 18:16:41 +02:00 committed by GitHub
parent 29a391f60e
commit 805fd1dc81
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 59 additions and 12 deletions

53
Cargo.lock generated
View file

@ -28,6 +28,15 @@ dependencies = [
"version_check", "version_check",
] ]
[[package]]
name = "aho-corasick"
version = "0.7.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
dependencies = [
"memchr",
]
[[package]] [[package]]
name = "aho-corasick" name = "aho-corasick"
version = "1.0.1" version = "1.0.1"
@ -324,6 +333,16 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5988cb1d626264ac94100be357308f29ff7cbdd3b36bda27f450a4ee3f713426" checksum = "5988cb1d626264ac94100be357308f29ff7cbdd3b36bda27f450a4ee3f713426"
[[package]]
name = "bstr"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a246e68bb43f6cd9db24bea052a53e40405417c5fb372e3d1a8a7f770a564ef5"
dependencies = [
"memchr",
"serde",
]
[[package]] [[package]]
name = "bumpalo" name = "bumpalo"
version = "3.10.0" version = "3.10.0"
@ -1209,6 +1228,19 @@ dependencies = [
"stable_deref_trait", "stable_deref_trait",
] ]
[[package]]
name = "globset"
version = "0.4.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc"
dependencies = [
"aho-corasick 0.7.20",
"bstr",
"fnv",
"log",
"regex",
]
[[package]] [[package]]
name = "gloo-timers" name = "gloo-timers"
version = "0.2.4" version = "0.2.4"
@ -1304,6 +1336,23 @@ dependencies = [
"unicode-normalization", "unicode-normalization",
] ]
[[package]]
name = "ignore"
version = "0.4.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492"
dependencies = [
"globset",
"lazy_static",
"log",
"memchr",
"regex",
"same-file",
"thread_local",
"walkdir",
"winapi-util",
]
[[package]] [[package]]
name = "indexmap" name = "indexmap"
version = "1.8.2" version = "1.8.2"
@ -2439,7 +2488,7 @@ version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370"
dependencies = [ dependencies = [
"aho-corasick", "aho-corasick 1.0.1",
"memchr", "memchr",
"regex-syntax", "regex-syntax",
] ]
@ -2956,12 +3005,12 @@ dependencies = [
"ansi_term", "ansi_term",
"colored", "colored",
"fuzzy-matcher", "fuzzy-matcher",
"ignore",
"pretty-bytes", "pretty-bytes",
"serde", "serde",
"serde_json", "serde_json",
"strip-ansi-escapes", "strip-ansi-escapes",
"unicode-width", "unicode-width",
"walkdir",
"zellij-tile", "zellij-tile",
] ]

View file

@ -10,7 +10,7 @@ license = "MIT"
colored = "2.0.0" colored = "2.0.0"
zellij-tile = { path = "../../zellij-tile" } zellij-tile = { path = "../../zellij-tile" }
pretty-bytes = "0.2.2" pretty-bytes = "0.2.2"
walkdir = "2.3.3" ignore = "0.4.20"
fuzzy-matcher = "0.3.7" fuzzy-matcher = "0.3.7"
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0" serde_json = "1.0"

View file

@ -15,9 +15,9 @@ use zellij_tile::prelude::*;
use fuzzy_matcher::skim::SkimMatcherV2; use fuzzy_matcher::skim::SkimMatcherV2;
use fuzzy_matcher::FuzzyMatcher; use fuzzy_matcher::FuzzyMatcher;
use ignore::Walk;
use search_results::SearchResult; use search_results::SearchResult;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use walkdir::WalkDir;
use std::io::{self, BufRead}; use std::io::{self, BufRead};
@ -64,8 +64,10 @@ impl Search {
} }
} }
pub fn scan_hd(&mut self) { pub fn scan_hd(&mut self) {
for entry in WalkDir::new(ROOT).into_iter().filter_map(|e| e.ok()) { for result in Walk::new(ROOT) {
self.add_file_entry(entry.path(), entry.metadata().ok()); if let Ok(entry) = result {
self.add_file_entry(entry.path(), entry.metadata().ok());
}
} }
} }
pub fn search(&mut self, search_term: String) { pub fn search(&mut self, search_term: String) {
@ -160,11 +162,7 @@ impl Search {
match line { match line {
Ok(line) => { Ok(line) => {
self.file_contents.insert( self.file_contents.insert(
( (file_path_stripped_prefix.clone(), index + 1),
// String::from_utf8_lossy(&strip_ansi_escapes::strip(file_path_stripped_prefix.clone()).unwrap()).to_string(),
file_path_stripped_prefix.clone(),
index + 1,
),
String::from_utf8_lossy( String::from_utf8_lossy(
&strip_ansi_escapes::strip(line).unwrap(), &strip_ansi_escapes::strip(line).unwrap(),
) )

View file

@ -12,7 +12,7 @@ use zellij_utils::notify_debouncer_full::{
}; };
use zellij_utils::{data::Event, errors::prelude::Result}; use zellij_utils::{data::Event, errors::prelude::Result};
const DEBOUNCE_DURATION_MS: u64 = 500; const DEBOUNCE_DURATION_MS: u64 = 400;
pub fn watch_filesystem( pub fn watch_filesystem(
senders: ThreadSenders, senders: ThreadSenders,