Przeglądaj źródła

refactor: Rename FileType::Immediate to more obvious FileType::Build

Robert Minsk 2 lat temu
rodzic
commit
1c29142831

+ 1 - 3
man/eza_colors-explanation.5.md

@@ -25,9 +25,7 @@ files; setting `EXA_COLORS="reset"` will highlight nothing.
 
 - eza now supports bright colours! As supported by most modern 256\-colour terminals, you can now choose from `bright` colour codes when selecting your custom colours in your `#EXA_COLORS` environment variable.
 
-"Immediate" files are the files you should look at when downloading and building a project for the first time: READMEs, Makefiles, Cargo.toml, and others.
-They are highlighted in _yellow_ and _underlined_.
-
+- Build (Makefile, Cargo.toml, package.json) are yellow and underlined.
 - Images (png, jpeg, gif) are purple.
 - Videos (mp4, ogv, m2ts) are a slightly purpler purple.
 - Music (mp3, m4a, ogg) is a deeper purple.

+ 11 - 11
man/eza_colors.5.md

@@ -224,34 +224,34 @@ LIST OF CODES
 : a mount point
 
 `im`
-: image files
+: a regular file that is an image
 
 `vi`
-: video files
+: a regular file that is a video
 
 `mu`
-: music files
+: a regular file that is lossy music
 
 `lo`
-: lossless music files
+: a regular file that is lossless music
 
 `cr`
-: cryptographic files
+: a regular file that is related to cryptography (ex: key or certificate)
 
 `do`
-: document files
+: a regular file that is a document (ex: office suite document or PDF)
 
 `co`
-: compressed files
+: a regular file this is compressed
 
 `tm`
-: temporary files
+: a regular file that is temporary (ex: a text editor's backup file)
 
 `cm`
-: compiled files
+: a regular file that is a compilation artifact (ex: Java class file)
 
-`ie`
-: immediate files
+`bu`
+: a regular file that is used to build a project (ex: Makefile)
 
 Values in `EXA_COLORS` override those given in `LS_COLORS`, so you don’t need to re-write an existing `LS_COLORS` variable with proprietary extensions.
 

+ 44 - 44
src/info/filetype.rs

@@ -22,7 +22,7 @@ pub enum FileType {
     Compressed,
     Temp,
     Compiled,
-    Immediate // An “immediate” file is something that can be run or activated somehow in order to
+    Build     // A “build file is something that can be run or activated somehow in order to
               // kick off the build of a project. It’s usually only present in directories full of
               // source code.
 }
@@ -30,47 +30,47 @@ pub enum FileType {
 /// Mapping from full filenames to file type.
 const FILENAME_TYPES: Map<&'static str, FileType> = phf_map! {
     /* Immediate file - kick off the build of a project */
-    "Brewfile"           => FileType::Immediate,
-    "bsconfig.json"      => FileType::Immediate,
-    "BUILD"              => FileType::Immediate,
-    "BUILD.bazel"        => FileType::Immediate,
-    "build.gradle"       => FileType::Immediate,
-    "build.sbt"          => FileType::Immediate,
-    "build.xml"          => FileType::Immediate,
-    "Cargo.toml"         => FileType::Immediate,
-    "CMakeLists.txt"     => FileType::Immediate,
-    "composer.json"      => FileType::Immediate,
-    "configure"          => FileType::Immediate,
-    "Containerfile"      => FileType::Immediate,
-    "Dockerfile"         => FileType::Immediate,
-    "Earthfile"          => FileType::Immediate,
-    "flake.nix"          => FileType::Immediate,
-    "Gemfile"            => FileType::Immediate,
-    "GNUmakefile"        => FileType::Immediate,
-    "Gruntfile.coffee"   => FileType::Immediate,
-    "Gruntfile.js"       => FileType::Immediate,
-    "jsconfig.json"      => FileType::Immediate,
-    "Justfile"           => FileType::Immediate,
-    "justfile"           => FileType::Immediate,
-    "Makefile"           => FileType::Immediate,
-    "makefile"           => FileType::Immediate,
-    "meson.build"        => FileType::Immediate,
-    "mix.exs"            => FileType::Immediate,
-    "package.json"       => FileType::Immediate,
-    "Pipfile"            => FileType::Immediate,
-    "PKGBUILD"           => FileType::Immediate,
-    "Podfile"            => FileType::Immediate,
-    "pom.xml"            => FileType::Immediate,
-    "Procfile"           => FileType::Immediate,
-    "pyproject.toml"     => FileType::Immediate,
-    "Rakefile"           => FileType::Immediate,
-    "RoboFile.php"       => FileType::Immediate,
-    "SConstruct"         => FileType::Immediate,
-    "tsconfig.json"      => FileType::Immediate,
-    "Vagrantfile"        => FileType::Immediate,
-    "webpack.config.cjs" => FileType::Immediate,
-    "webpack.config.js"  => FileType::Immediate,
-    "WORKSPACE"          => FileType::Immediate,
+    "Brewfile"           => FileType::Build,
+    "bsconfig.json"      => FileType::Build,
+    "BUILD"              => FileType::Build,
+    "BUILD.bazel"        => FileType::Build,
+    "build.gradle"       => FileType::Build,
+    "build.sbt"          => FileType::Build,
+    "build.xml"          => FileType::Build,
+    "Cargo.toml"         => FileType::Build,
+    "CMakeLists.txt"     => FileType::Build,
+    "composer.json"      => FileType::Build,
+    "configure"          => FileType::Build,
+    "Containerfile"      => FileType::Build,
+    "Dockerfile"         => FileType::Build,
+    "Earthfile"          => FileType::Build,
+    "flake.nix"          => FileType::Build,
+    "Gemfile"            => FileType::Build,
+    "GNUmakefile"        => FileType::Build,
+    "Gruntfile.coffee"   => FileType::Build,
+    "Gruntfile.js"       => FileType::Build,
+    "jsconfig.json"      => FileType::Build,
+    "Justfile"           => FileType::Build,
+    "justfile"           => FileType::Build,
+    "Makefile"           => FileType::Build,
+    "makefile"           => FileType::Build,
+    "meson.build"        => FileType::Build,
+    "mix.exs"            => FileType::Build,
+    "package.json"       => FileType::Build,
+    "Pipfile"            => FileType::Build,
+    "PKGBUILD"           => FileType::Build,
+    "Podfile"            => FileType::Build,
+    "pom.xml"            => FileType::Build,
+    "Procfile"           => FileType::Build,
+    "pyproject.toml"     => FileType::Build,
+    "Rakefile"           => FileType::Build,
+    "RoboFile.php"       => FileType::Build,
+    "SConstruct"         => FileType::Build,
+    "tsconfig.json"      => FileType::Build,
+    "Vagrantfile"        => FileType::Build,
+    "webpack.config.cjs" => FileType::Build,
+    "webpack.config.js"  => FileType::Build,
+    "WORKSPACE"          => FileType::Build,
     /* Cryptology files */
     "id_dsa"             => FileType::Crypto,
     "id_ecdsa"           => FileType::Crypto,
@@ -84,7 +84,7 @@ const FILENAME_TYPES: Map<&'static str, FileType> = phf_map! {
 /// extension is added also update the extension icon map.
 const EXTENSION_TYPES: Map<&'static str, FileType> = phf_map! {
     /* Immediate file - kick off the build of a project */
-    "ninja"      => FileType::Immediate,
+    "ninja"      => FileType::Build,
     /* Image files */
     "arw"        => FileType::Image,
     "avif"       => FileType::Image,
@@ -270,7 +270,7 @@ impl FileType {
     pub(crate) fn get_file_type(file: &File<'_>) -> Option<FileType> {
         // Case-insensitive readme is checked first for backwards compatibility.
         if file.name.to_lowercase().starts_with("readme") {
-            return Some(Self::Immediate)
+            return Some(Self::Build)
         }
         if let Some(file_type) = FILENAME_TYPES.get(&file.name) {
             return Some(file_type.clone())

+ 1 - 1
src/theme/default_theme.rs

@@ -88,7 +88,7 @@ impl UiStyles {
                 compressed: Red.normal(),
                 temp: White.normal(),
                 compiled: Yellow.normal(),
-                immediate: Yellow.bold().underline()
+                build: Yellow.bold().underline()
             },
 
             punctuation:  DarkGray.bold(),

+ 5 - 5
src/theme/mod.rs

@@ -143,7 +143,7 @@ impl Definitions {
 }
 
 
-pub trait FileColours: std::marker::Sync {
+pub trait FileColours: Sync {
     fn colour_file(&self, file: &File<'_>, theme: &Theme) -> Option<Style>;
 }
 
@@ -211,7 +211,7 @@ impl FileColours for FileTypes {
             Some(FileType::Compressed) => Some(theme.ui.file_type.compressed),
             Some(FileType::Temp)       => Some(theme.ui.file_type.temp),
             Some(FileType::Compiled)   => Some(theme.ui.file_type.compiled),
-            Some(FileType::Immediate)  => Some(theme.ui.file_type.immediate),
+            Some(FileType::Build)      => Some(theme.ui.file_type.build),
             None                       => None
         }
     }
@@ -337,12 +337,12 @@ impl render::UserColours for Theme {
 }
 
 impl FileNameColours for Theme {
+    fn symlink_path(&self)        -> Style { self.ui.symlink_path }
     fn normal_arrow(&self)        -> Style { self.ui.punctuation }
     fn broken_symlink(&self)      -> Style { self.ui.broken_symlink }
     fn broken_filename(&self)     -> Style { apply_overlay(self.ui.broken_symlink, self.ui.broken_path_overlay) }
-    fn broken_control_char(&self) -> Style { apply_overlay(self.ui.control_char,   self.ui.broken_path_overlay) }
     fn control_char(&self)        -> Style { self.ui.control_char }
-    fn symlink_path(&self)        -> Style { self.ui.symlink_path }
+    fn broken_control_char(&self) -> Style { apply_overlay(self.ui.control_char,   self.ui.broken_path_overlay) }
     fn executable_file(&self)     -> Style { self.ui.filekinds.executable }
     fn mount_point(&self)         -> Style { self.ui.filekinds.mount_point }
 
@@ -563,7 +563,7 @@ mod customs_test {
     test!(exa_co:  ls "", exa "co=38;5;134"  =>  colours c -> { c.file_type.compressed      = Fixed(134).normal(); });
     test!(exa_tm:  ls "", exa "tm=38;5;135"  =>  colours c -> { c.file_type.temp            = Fixed(135).normal(); });
     test!(exa_cm:  ls "", exa "cm=38;5;136"  =>  colours c -> { c.file_type.compiled        = Fixed(136).normal(); });
-    test!(exa_ie:  ls "", exa "ie=38;5;137"  =>  colours c -> { c.file_type.immediate       = Fixed(137).normal(); });
+    test!(exa_ie:  ls "", exa "bu=38;5;137"  =>  colours c -> { c.file_type.build           = Fixed(137).normal(); });
 
     // All the while, LS_COLORS treats them as filenames:
     test!(ls_uu:   ls "uu=38;5;117", exa ""  =>  exts [ ("uu", Fixed(117).normal()) ]);

+ 2 - 2
src/theme/ui_styles.rs

@@ -133,7 +133,7 @@ pub struct FileType {
     pub compressed: Style,
     pub temp: Style,
     pub compiled: Style,
-    pub immediate: Style,
+    pub build: Style,
 }
 
 impl UiStyles {
@@ -237,7 +237,7 @@ impl UiStyles {
             "co" => self.file_type.compressed     = pair.to_style(),
             "tm" => self.file_type.temp           = pair.to_style(),
             "cm" => self.file_type.compiled       = pair.to_style(),
-            "ie" => self.file_type.immediate      = pair.to_style(),
+            "bu" => self.file_type.build          = pair.to_style(),
 
              _   => return false,
         }