aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authora-kenji <aks.kenji@protonmail.com>2021-02-23 20:25:02 +0100
committerGitHub <noreply@github.com>2021-02-23 20:25:02 +0100
commit683c152fa29239cdb8dbc39eb247ca4f94706676 (patch)
tree18ddab3d48aec6dbe2f759fa6bcdbc617101e07e
parentstyle(enable trailing commas in asset_map!) (diff)
downloadsl0ppij-683c152fa29239cdb8dbc39eb247ca4f94706676.tar.gz
sl0ppij-683c152fa29239cdb8dbc39eb247ca4f94706676.tar.xz
sl0ppij-683c152fa29239cdb8dbc39eb247ca4f94706676.zip
feature(strider): Allow to Hide Hidden Files (#203)
closes #197 default keybinding = '.' default view = shows hidden files Alternative: Hide hidden files by default.
-rw-r--r--default-tiles/strider/src/main.rs7
-rw-r--r--default-tiles/strider/src/state.rs8
2 files changed, 15 insertions, 0 deletions
diff --git a/default-tiles/strider/src/main.rs b/default-tiles/strider/src/main.rs
index 3aa51237..3213b2af 100644
--- a/default-tiles/strider/src/main.rs
+++ b/default-tiles/strider/src/main.rs
@@ -61,6 +61,12 @@ impl ZellijTile for State {
self.path.pop();
refresh_directory(self);
}
+
+ Key::Char('.') => {
+ self.toggle_hidden_files();
+ refresh_directory(self);
+ }
+
_ => (),
};
}
@@ -80,6 +86,7 @@ fn refresh_directory(state: &mut State) {
}
})
.ok()
+ .filter(|d| !d.is_hidden_file() || !state.hide_hidden_files)
})
.collect();
diff --git a/default-tiles/strider/src/state.rs b/default-tiles/strider/src/state.rs
index cbb44dcd..2a9230e8 100644
--- a/default-tiles/strider/src/state.rs
+++ b/default-tiles/strider/src/state.rs
@@ -6,6 +6,7 @@ pub struct State {
pub path: PathBuf,
pub files: Vec<FsEntry>,
pub cursor_hist: HashMap<PathBuf, (usize, usize)>,
+ pub hide_hidden_files: bool,
}
impl State {
@@ -21,6 +22,9 @@ impl State {
pub fn scroll(&self) -> usize {
self.cursor_hist.get(&self.path).unwrap_or(&(0, 0)).1
}
+ pub fn toggle_hidden_files(&mut self) {
+ self.hide_hidden_files = !self.hide_hidden_files;
+ }
}
#[derive(PartialEq, Eq, PartialOrd, Ord, Clone)]
@@ -52,4 +56,8 @@ impl FsEntry {
[name, padding, info].concat()
}
}
+
+ pub fn is_hidden_file(&self) -> bool {
+ self.name().chars().nth(0).unwrap() == '.'.into()
+ }
}