Просмотр исходного кода

refactor: Add constants for the rest of icons used multiple times

Robert Minsk 2 лет назад
Родитель
Сommit
a425c885c4
1 измененных файлов с 68 добавлено и 54 удалено
  1. 68 54
      src/output/icons.rs

+ 68 - 54
src/output/icons.rs

@@ -8,29 +8,40 @@ struct Icons;
 
 impl Icons {
     const AUDIO: char           = '\u{f001}';  // 
+    const BINARY: char          = '\u{eae8}';  // 
+    const BOOK: char            = '\u{e28b}';  // 
     const CALENDAR: char        = '\u{eab0}';  // 
     const COMPRESSED: char      = '\u{f410}';  // 
     const CONFIG: char          = '\u{e615}';  // 
     const CONFIG_FOLDER: char   = '\u{e5fc}';  // 
+    const CSS3: char            = '\u{e749}';  // 
     const DATABASE: char        = '\u{f1c0}';  // 
+    const DIFF: char            = '\u{f440}';  // 
     const DISK_IMAGE: char      = '\u{e271}';  // 
-    const DOCKER: char          = '\u{f308}';  // 
+    const DOCKER: char          = '\u{e650}';  // 
     const DOCUMENT: char        = '\u{f1c2}';  // 
     const EMACS: char           = '\u{e632}';  // 
     const FONT: char            = '\u{f031}';  // 
+    const GIST_SECRET: char     = '\u{eafa}';  // 
     const GIT: char             = '\u{f1d3}';  // 
     const GRADLE: char          = '\u{e660}';  // 
     const GRUNT: char           = '\u{e611}';  // 
     const GULP: char            = '\u{e610}';  // 
+    const HEADER: char          = '\u{f0fd}';  // 
     const HTML5: char           = '\u{f13b}';  // 
     const IMAGE: char           = '\u{f1c5}';  // 
+    const INTELLIJ: char        = '\u{e7b5}';  // 
+    const KEY: char             = '\u{eb11}';  // 
+    const KEYPASS: char         = '\u{f23e}';  // 
     const JSON: char            = '\u{e60b}';  // 
+    const LANG_ASSEMBLY: char   = '\u{e637}';  // 
     const LANG_C: char          = '\u{e61e}';  // 
     const LANG_CPP: char        = '\u{e61d}';  // 
     const LANG_CSHARP: char     = '\u{f031b}'; // 󰌛
     const LANG_ELIXIR: char     = '\u{e62d}';  // 
     const LANG_FSHARP: char     = '\u{e7a7}';  // 
     const LANG_GO: char         = '\u{e724}';  // 
+    const LANG_HASKELL: char    = '\u{e777}';  // 
     const LANG_JAVA: char       = '\u{e256}';  // 
     const LANG_JAVASCRIPT: char = '\u{e74e}';  // 
     const LANG_OCAML: char      = '\u{e67a}';  // 
@@ -41,29 +52,32 @@ impl Icons {
     const LANG_RUBY: char       = '\u{e21e}';  // 
     const LANG_RUBYRAILS: char  = '\u{e73b}';  // 
     const LANG_RUST: char       = '\u{e7a8}';  // 
+    const LANG_STYLUS: char     = '\u{e600}';  // 
     const LANG_TEX: char        = '\u{e69b}';  // 
     const LANG_TYPESCRIPT: char = '\u{e628}';  // 
     const LOCK: char            = '\u{f023}';  // 
     const LICENSE: char         = '\u{f02d}';  // 
-    const MAKE: char            = '\u{e673}';  // 
     const MARKDOWN: char        = '\u{f48a}';  // 
+    const MUSTACHE: char        = '\u{e60f}';  // 
+    const NODEJS: char          = '\u{e718}';  // 
     const NPM: char             = '\u{e71e}';  // 
-    const NPM_FOLDER: char      = '\u{e5fa}';  // 
     const OS_APPLE: char        = '\u{f179}';  // 
     const OS_ANDROID: char      = '\u{e70e}';  // 
     const OS_LINUX: char        = '\u{f17c}';  // 
     const OS_WINDOWS: char      = '\u{f17a}';  // 
     const OS_WINDOWS_CMD: char  = '\u{ebc4}';  // 
-    const PLAYLIST: char        = '\u{f0cb9}'; // 󰲹
     const POWERSHELL: char      = '\u{ebc7}';  // 
-    const PRIVATE_KEY: char     = '\u{f0306}'; // 󰌆
-    const PUBLIC_KEY: char      = '\u{f0dd6}'; // 󰷖
+    const REACT: char           = '\u{e7ba}';  // 
+    const RAZOR: char           = '\u{f1fa}';  // 
     const SHEET: char           = '\u{f1c3}';  // 
     const SHELL: char           = '\u{f489}';  // 
     const SLIDE: char           = '\u{f1c4}';  // 
-    const TERRAFORM: char       = '\u{f1062}'; // 󱁢
+    const TEXT: char            = '\u{f15c}';  // 
+    const UNITY: char           = '\u{e721}';  // 
     const VIDEO: char           = '\u{f03d}';  // 
     const VIM: char             = '\u{e7c5}';  // 
+    const XML: char             = '\u{f05c0}'; // 󰗀
+    const YAML: char            = '\u{f481}';  //  - Find better icon
 }
 
 /// Mapping from full filenames to file type. This mapping should also contain all the "dot"
@@ -80,17 +94,17 @@ const FILENAME_ICONS: Map<&'static str, char> = phf_map! {
     ".gitignore"          => Icons::GIT,            // 
     ".gitignore_global"   => Icons::GIT,            // 
     ".gitmodules"         => Icons::GIT,            // 
-    ".idea"               => '\u{e7b5}',            // 
+    ".idea"               => Icons::INTELLIJ,       // 
     ".rvm"                => Icons::LANG_RUBY,      // 
     ".Trash"              => '\u{f1f8}',            // 
     ".vimrc"              => Icons::VIM,            // 
-    ".vscode"             => '\u{e70c}',            // 
+    ".vscode"             => '\u{f0a1e}',           // 󰨞
     ".zshrc"              => Icons::SHELL,          // 
     "bin"                 => Icons::CONFIG_FOLDER,  // 
     "Cargo.lock"          => Icons::LANG_RUST,      // 
     "config"              => Icons::CONFIG_FOLDER,  // 
-    "docker-compose.yml"  => Icons::DOCKER,         // 
-    "Dockerfile"          => Icons::DOCKER,         // 
+    "docker-compose.yml"  => Icons::DOCKER,         // 
+    "Dockerfile"          => Icons::DOCKER,         // 
     "ds_store"            => Icons::OS_APPLE,       // 
     "Earthfile"           => '\u{f0ac}',            // 
     "gitignore_global"    => Icons::GIT,            // 
@@ -110,12 +124,12 @@ const FILENAME_ICONS: Map<&'static str, char> = phf_map! {
     "LICENSE"             => Icons::LICENSE,        // 
     "localized"           => Icons::OS_APPLE,       // 
     "Makefile"            => Icons::SHELL,          // 
-    "node_modules"        => '\u{e718}',            // 
+    "node_modules"        => Icons::NODEJS,         // 
     "npmignore"           => Icons::NPM,            // 
     "PKGBUILD"            => '\u{f303}',            // 
     "rubydoc"             => Icons::LANG_RUBYRAILS, // 
     "Vagrantfile"         => '\u{2371}',            // ⍱
-    "yarn.lock"           => '\u{e718}',            // 
+    "yarn.lock"           => '\u{e6a7}',            // 
 };
 
 /// Mapping from lowercase file extension to icons.  If an image, video, or audio extension is add
@@ -133,7 +147,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "apple"          => Icons::OS_APPLE,         // 
     "ar"             => Icons::COMPRESSED,       // 
     "arw"            => Icons::IMAGE,            // 
-    "asm"            => '\u{e637}',              // 
+    "asm"            => Icons::LANG_ASSEMBLY,    // 
     "avi"            => Icons::VIDEO,            // 
     "avif"           => Icons::IMAGE,            // 
     "avro"           => Icons::JSON,             // 
@@ -145,7 +159,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "bat"            => Icons::OS_WINDOWS_CMD,   // 
     "bats"           => Icons::SHELL,            // 
     "bib"            => Icons::LANG_TEX,         // 
-    "bin"            => '\u{eae8}',              // 
+    "bin"            => Icons::BINARY,           // 
     "bmp"            => Icons::IMAGE,            // 
     "bst"            => Icons::LANG_TEX,         // 
     "bz"             => Icons::COMPRESSED,       // 
@@ -156,7 +170,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "cbr"            => Icons::IMAGE,            // 
     "cbz"            => Icons::IMAGE,            // 
     "cc"             => Icons::LANG_CPP,         // 
-    "cert"           => '\u{eafa}',              // 
+    "cert"           => Icons::GIST_SECRET,      // 
     "cfg"            => Icons::CONFIG,           // 
     "cjs"            => Icons::LANG_JAVASCRIPT,  // 
     "class"          => Icons::LANG_JAVA,        // 
@@ -171,12 +185,12 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "cpio"           => Icons::COMPRESSED,       // 
     "cpp"            => Icons::LANG_CPP,         // 
     "cr2"            => Icons::IMAGE,            // 
-    "crt"            => '\u{eafa}',              // 
+    "crt"            => Icons::GIST_SECRET,      // 
     "cs"             => Icons::LANG_CSHARP,      // 󰌛
     "csh"            => Icons::SHELL,            // 
-    "cshtml"         => '\u{f1fa}',              // 
+    "cshtml"         => Icons::RAZOR,            // 
     "csproj"         => Icons::LANG_CSHARP,      // 󰌛
-    "css"            => '\u{e749}',              // 
+    "css"            => Icons::CSS3,             // 
     "csv"            => Icons::SHEET,            // 
     "csx"            => Icons::LANG_CSHARP,      // 󰌛
     "cts"            => Icons::LANG_TYPESCRIPT,  // 
@@ -187,7 +201,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "db"             => Icons::DATABASE,         // 
     "deb"            => '\u{e77d}',              // 
     "desktop"        => '\u{ebd1}',              // 
-    "diff"           => '\u{f440}',              // 
+    "diff"           => Icons::DIFF,             // 
     "djv"            => Icons::DOCUMENT,         // 
     "djvu"           => Icons::DOCUMENT,         // 
     "dll"            => Icons::OS_WINDOWS,       // 
@@ -198,7 +212,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "ds_store"       => Icons::OS_APPLE,         // 
     "dump"           => Icons::DATABASE,         // 
     "dvi"            => Icons::IMAGE,            // 
-    "ebook"          => '\u{e28b}',              // 
+    "ebook"          => Icons::BOOK,             // 
     "ebuild"         => '\u{f30d}',              // 
     "editorconfig"   => Icons::CONFIG,           // 
     "ejs"            => '\u{e618}',              // 
@@ -208,7 +222,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "env"            => '\u{f462}',              // 
     "eot"            => Icons::FONT,             // 
     "eps"            => Icons::IMAGE,            // 
-    "epub"           => '\u{e28a}',              // 
+    "epub"           => Icons::BOOK,             // 
     "erb"            => Icons::LANG_RUBYRAILS,   // 
     "erl"            => '\u{e7b1}',              // 
     "ex"             => Icons::LANG_ELIXIR,      // 
@@ -239,15 +253,15 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "gslides"        => Icons::SLIDE,            // 
     "guardfile"      => Icons::LANG_RUBY,        // 
     "gz"             => Icons::COMPRESSED,       // 
-    "h"              => '\u{f0fd}',              // 
-    "hbs"            => '\u{e60f}',              // 
+    "h"              => Icons::HEADER,           // 
+    "hbs"            => Icons::MUSTACHE,         // 
     "heic"           => Icons::VIDEO,            // 
     "heif"           => Icons::IMAGE,            // 
-    "hpp"            => '\u{f0fd}',              // 
-    "hs"             => '\u{e777}',              // 
+    "hpp"            => Icons::HEADER,           // 
+    "hs"             => Icons::LANG_HASKELL,     // 
     "htm"            => Icons::HTML5,            // 
     "html"           => Icons::HTML5,            // 
-    "hxx"            => '\u{f0fd}',              // 
+    "hxx"            => Icons::HEADER,           // 
     "ical"           => Icons::CALENDAR,         // 
     "icalendar"      => Icons::CALENDAR,         // 
     "ico"            => Icons::IMAGE,            // 
@@ -255,7 +269,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "ifb"            => Icons::CALENDAR,         // 
     "image"          => Icons::IMAGE,            // 
     "img"            => Icons::DISK_IMAGE,       // 
-    "iml"            => '\u{e7b5}',              // 
+    "iml"            => Icons::INTELLIJ,         // 
     "ini"            => Icons::OS_WINDOWS,       // 
     "ipynb"          => '\u{e678}',              // 
     "iso"            => Icons::DISK_IMAGE,       // 
@@ -277,16 +291,16 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "jpx"            => Icons::IMAGE,            // 
     "js"             => Icons::LANG_JAVASCRIPT,  // 
     "json"           => Icons::JSON,             // 
-    "jsx"            => '\u{e7ba}',              // 
+    "jsx"            => Icons::REACT,            // 
     "jxl"            => Icons::IMAGE,            // 
-    "kdb"            => '\u{f23e}',              // 
-    "kdbx"           => '\u{f23e}',              // 
-    "key"            => '\u{eb11}',              // 
+    "kdb"            => Icons::KEYPASS,          // 
+    "kdbx"           => Icons::KEYPASS,          // 
+    "key"            => Icons::KEY,              // 
     "ko"             => Icons::OS_LINUX,         // 
     "ksh"            => Icons::SHELL,            // 
     "latex"          => Icons::LANG_TEX,         // 
     "less"           => '\u{e758}',              // 
-    "lhs"            => '\u{e777}',              // 
+    "lhs"            => Icons::LANG_HASKELL,     // 
     "license"        => Icons::LICENSE,          // 
     "localized"      => Icons::OS_APPLE,         // 
     "lock"           => Icons::LOCK,             // 
@@ -315,22 +329,22 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "mll"            => Icons::LANG_OCAML,       // 
     "mly"            => Icons::LANG_OCAML,       // 
     "mm"             => Icons::LANG_CPP,         // 
-    "mobi"           => '\u{e28b}',              // 
+    "mobi"           => Icons::BOOK,             // 
     "mov"            => Icons::VIDEO,            // 
     "mp2"            => Icons::AUDIO,            // 
     "mp3"            => Icons::AUDIO,            // 
     "mp4"            => Icons::VIDEO,            // 
     "mpeg"           => Icons::VIDEO,            // 
     "mpg"            => Icons::VIDEO,            // 
-    "msi"            => Icons::OS_WINDOWS,              // 
+    "msi"            => Icons::OS_WINDOWS,       // 
     "mts"            => Icons::LANG_TYPESCRIPT,  // 
-    "mustache"       => '\u{e60f}',              // 
+    "mustache"       => Icons::MUSTACHE,         // 
     "nef"            => Icons::IMAGE,            // 
     "ninja"          => '\u{f0774}',             // 󰝴
     "nix"            => '\u{f313}',              // 
     "node"           => '\u{f0399}',             // 󰎙
     "npmignore"      => Icons::NPM,              // 
-    "o"              => '\u{eae8}',              // 
+    "o"              => Icons::BINARY,           // 
     "odp"            => Icons::SLIDE,            // 
     "ods"            => Icons::SHEET,            // 
     "odt"            => Icons::DOCUMENT,         // 
@@ -344,10 +358,10 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "out"            => '\u{eb2c}',              // 
     "par"            => Icons::COMPRESSED,       // 
     "part"           => '\u{f43a}',              // 
-    "patch"          => '\u{f440}',              // 
+    "patch"          => Icons::DIFF,             // 
     "pbm"            => Icons::IMAGE,            // 
     "pdf"            => '\u{f1c1}',              // 
-    "pem"            => '\u{eb11}',              // 
+    "pem"            => Icons::KEY,              // 
     "pgm"            => Icons::IMAGE,            // 
     "php"            => Icons::LANG_PHP,         // 
     "pl"             => Icons::LANG_PERL,        // 
@@ -374,7 +388,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "rakefile"       => Icons::LANG_RUBY,        // 
     "rar"            => Icons::COMPRESSED,       // 
     "raw"            => Icons::IMAGE,            // 
-    "razor"          => '\u{f1fa}',              // 
+    "razor"          => Icons::RAZOR,            // 
     "rb"             => Icons::LANG_RUBY,        // 
     "rdata"          => Icons::LANG_R,           // 
     "rdb"            => '\u{e76d}',              // 
@@ -390,14 +404,14 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "rspec_parallel" => Icons::LANG_RUBY,        // 
     "rspec_status"   => Icons::LANG_RUBY,        // 
     "rss"            => '\u{f09e}',              // 
-    "rst"            => '\u{f15c}',              // 
-    "rtf"            => '\u{f0219}',             // 󰈙
+    "rst"            => Icons::TEXT,             // 
+    "rtf"            => Icons::TEXT,             // 
     "ru"             => Icons::LANG_RUBY,        // 
     "rubydoc"        => Icons::LANG_RUBYRAILS,   // 
-    "s"              => '\u{e637}',              // 
+    "s"              => Icons::LANG_ASSEMBLY,    // 
     "sass"           => '\u{e603}',              // 
     "scala"          => '\u{e737}',              // 
-    "scss"           => '\u{e749}',              // 
+    "scss"           => Icons::CSS3,             // 
     "service"        => '\u{eba2}',              // 
     "sh"             => Icons::SHELL,            // 
     "shell"          => Icons::SHELL,            // 
@@ -408,8 +422,8 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "sqlite3"        => '\u{e7c4}',              // 
     "stl"            => Icons::IMAGE,            // 
     "sty"            => Icons::LANG_TEX,         // 
-    "styl"           => '\u{e600}',              // 
-    "stylus"         => '\u{e600}',              // 
+    "styl"           => Icons::LANG_STYLUS,      // 
+    "stylus"         => Icons::LANG_STYLUS,      // 
     "svelte"         => '\u{e697}',              // 
     "svg"            => Icons::IMAGE,            // 
     "swift"          => '\u{e755}',              // 
@@ -428,15 +442,15 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "torrent"        => '\u{e275}',              // 
     "ts"             => Icons::LANG_TYPESCRIPT,  // 
     "tsv"            => Icons::SHEET,            // 
-    "tsx"            => '\u{e7ba}',              // 
+    "tsx"            => Icons::REACT,            // 
     "ttf"            => Icons::FONT,             // 
     "twig"           => '\u{e61c}',              // 
-    "txt"            => '\u{f15c}',              // 
+    "txt"            => Icons::TEXT,             // 
     "txz"            => Icons::COMPRESSED,       // 
     "tz"             => Icons::COMPRESSED,       // 
     "tzo"            => Icons::COMPRESSED,       // 
-    "unity"          => '\u{e721}',              // 
-    "unity3d"        => '\u{e721}',              // 
+    "unity"          => Icons::UNITY,            // 
+    "unity3d"        => Icons::UNITY,            // 
     "vdi"            => Icons::DISK_IMAGE,       // 
     "vhd"            => Icons::DISK_IMAGE,       // 
     "video"          => Icons::VIDEO,            // 
@@ -457,12 +471,12 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "xls"            => Icons::SHEET,            // 
     "xlsm"           => Icons::SHEET,            // 
     "xlsx"           => Icons::SHEET,            // 
-    "xml"            => '\u{f05c0}',             // 󰗀
+    "xml"            => Icons::XML,              // 󰗀
     "xpm"            => Icons::IMAGE,            // 
-    "xul"            => '\u{f05c0}',             // 󰗀
+    "xul"            => Icons::XML,              // 󰗀
     "xz"             => Icons::COMPRESSED,       // 
-    "yaml"           => '\u{f481}',              // 
-    "yml"            => '\u{f481}',              // 
+    "yaml"           => Icons::YAML,             // 
+    "yml"            => Icons::YAML,             // 
     "z"              => Icons::COMPRESSED,       // 
     "zig"            => '\u{21af}',              // ↯
     "zip"            => Icons::COMPRESSED,       // 