diff options
| author | a-kenji <aks.kenji@protonmail.com> | 2021-02-23 20:25:02 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-23 20:25:02 +0100 |
| commit | 683c152fa29239cdb8dbc39eb247ca4f94706676 (patch) | |
| tree | 18ddab3d48aec6dbe2f759fa6bcdbc617101e07e | |
| parent | style(enable trailing commas in asset_map!) (diff) | |
| download | sl0ppij-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.rs | 7 | ||||
| -rw-r--r-- | default-tiles/strider/src/state.rs | 8 |
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() + } } |
