|
|
@@ -1,4 +1,24 @@
|
|
|
-/// What to do when encountering a directory?
|
|
|
+//! What to do when encountering a directory?
|
|
|
+
|
|
|
+/// The action to take when trying to list a file that turns out to be a
|
|
|
+/// directory.
|
|
|
+///
|
|
|
+/// By default, exa will display the information about files passed in as
|
|
|
+/// command-line arguments, with one file per entry. However, if a directory
|
|
|
+/// is passed in, exa assumes that the user wants to see its contents, rather
|
|
|
+/// than the directory itself.
|
|
|
+///
|
|
|
+/// This can get annoying sometimes: if a user does `exa ~/Downloads/img-*`
|
|
|
+/// to see the details of every file starting with `img-`, any directories
|
|
|
+/// that happen to start with the same will be listed after the files at
|
|
|
+/// the end in a separate block. By listing directories as files, their
|
|
|
+/// directory status will be ignored, and both will be listed side-by-side.
|
|
|
+///
|
|
|
+/// These two modes have recursive analogues in the “recurse” and “tree”
|
|
|
+/// modes. Here, instead of just listing the directories, exa will descend
|
|
|
+/// into them and print out their contents. The recurse mode does this by
|
|
|
+/// having extra output blocks at the end, while the tree mode will show
|
|
|
+/// directories inline, with their contents immediately underneath.
|
|
|
#[derive(PartialEq, Debug, Copy, Clone)]
|
|
|
pub enum DirAction {
|
|
|
|
|
|
@@ -21,17 +41,17 @@ impl DirAction {
|
|
|
/// Gets the recurse options, if this dir action has any.
|
|
|
pub fn recurse_options(&self) -> Option<RecurseOptions> {
|
|
|
match *self {
|
|
|
- DirAction::Recurse(opts) => Some(opts),
|
|
|
- _ => None,
|
|
|
+ DirAction::Recurse(o) => Some(o),
|
|
|
+ _ => None,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// Whether to treat directories as regular files or not.
|
|
|
pub fn treat_dirs_as_files(&self) -> bool {
|
|
|
match *self {
|
|
|
- DirAction::AsFile => true,
|
|
|
- DirAction::Recurse(RecurseOptions { tree, .. }) => tree,
|
|
|
- _ => false,
|
|
|
+ DirAction::AsFile => true,
|
|
|
+ DirAction::Recurse(o) => o.tree,
|
|
|
+ _ => false,
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -56,9 +76,7 @@ impl RecurseOptions {
|
|
|
pub fn is_too_deep(&self, depth: usize) -> bool {
|
|
|
match self.max_depth {
|
|
|
None => false,
|
|
|
- Some(d) => {
|
|
|
- d <= depth
|
|
|
- }
|
|
|
+ Some(d) => d <= depth
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
+}
|