Explorar el Código

feat: Add new icons, diverse selection

- Add blender icon for `.blend` file extension.
- Add Godot icon for `.godot`, `.gd`, `.tres` and `.tscn` file extensions.
  - Add `.gd` to source code
- Add G icon for `.gcode` file extension. These files are used on 3D printers and CNC machines.
- Add BINARY icon to `.elf` file extension, Compiled category.
- Add more file extensions of OpenDocument specs.
  - `.fodt` for word processing (text) documents.
  - `.fods` for spreadsheets.
  - `.fodp` for presentations.
  - `.odg`, `.fodg` for graphics.
  - `.odf` for formula, mathematical equations.
- Add PlatformIO icon for `platformi.ini` settings file.
- Add 0x icon to `.hex` files.
- Add FILE_3D category. Added `.3mf`, `.fbx`, `.obj`, `.ply` and `.stl` file extensions.
  - Remove stl from Image.
- Add square wave to extensions for logic analyzer sessions.
  - `.sal` is for propietary Saleae format.
  - `.sr` is for open source Sigrok/Pulseview format.
- Fix alphabetical order of `.inl` extension.
hasecilu hace 2 años
padre
commit
fd30b5c572
Se han modificado 2 ficheros con 32 adiciones y 3 borrados
  1. 7 1
      src/info/filetype.rs
  2. 25 2
      src/output/icons.rs

+ 7 - 1
src/info/filetype.rs

@@ -95,6 +95,7 @@ const EXTENSION_TYPES: Map<&'static str, FileType> = phf_map! {
     "cr2"        => FileType::Image,
     "dvi"        => FileType::Image,
     "eps"        => FileType::Image,
+    "fodg"       => FileType::Image,
     "gif"        => FileType::Image,
     "heic"       => FileType::Image,
     "heif"       => FileType::Image,
@@ -112,6 +113,7 @@ const EXTENSION_TYPES: Map<&'static str, FileType> = phf_map! {
     "jpx"        => FileType::Image,
     "jxl"        => FileType::Image,
     "nef"        => FileType::Image,
+    "odg"        => FileType::Image,
     "orf"        => FileType::Image,
     "pbm"        => FileType::Image,
     "pgm"        => FileType::Image,
@@ -123,7 +125,6 @@ const EXTENSION_TYPES: Map<&'static str, FileType> = phf_map! {
     "pxm"        => FileType::Image,
     "raw"        => FileType::Image,
     "qoi"        => FileType::Image,
-    "stl"        => FileType::Image,
     "svg"        => FileType::Image,
     "tif"        => FileType::Image,
     "tiff"       => FileType::Image,
@@ -194,6 +195,9 @@ const EXTENSION_TYPES: Map<&'static str, FileType> = phf_map! {
     "doc"        => FileType::Document,
     "docx"       => FileType::Document,
     "eml"        => FileType::Document,
+    "fodp"       => FileType::Document,
+    "fods"       => FileType::Document,
+    "fodt"       => FileType::Document,
     "fotd"       => FileType::Document,
     "gdoc"       => FileType::Document,
     "key"        => FileType::Document,
@@ -273,6 +277,7 @@ const EXTENSION_TYPES: Map<&'static str, FileType> = phf_map! {
     "dll"        => FileType::Compiled, // Windows dynamic link library
     "dylib"      => FileType::Compiled, // Mach-O dynamic library
     "elc"        => FileType::Compiled, // Emacs compiled lisp
+    "elf"        => FileType::Compiled, // Executable and Linkable Format
     "ko"         => FileType::Compiled, // Linux kernel module
     "lib"        => FileType::Compiled, // Windows static library
     "o"          => FileType::Compiled, // Compiled object file
@@ -314,6 +319,7 @@ const EXTENSION_TYPES: Map<&'static str, FileType> = phf_map! {
     "fsh"        => FileType::Source, // Fragment shader
     "fsi"        => FileType::Source, // F#
     "fsx"        => FileType::Source, // F#
+    "gd"         => FileType::Source, // GDScript
     "go"         => FileType::Source, // Go
     "gradle"     => FileType::Source, // Gradle
     "groovy"     => FileType::Source, // Groovy

+ 25 - 2
src/output/icons.rs

@@ -25,6 +25,7 @@ impl Icons {
     const EMACS: char           = '\u{e632}';  // 
     const ESLINT: char          = '\u{e655}';  // 
     const FILE: char            = '\u{f15b}';  // 
+    const FILE_3D: char         = '\u{f01a7}'; // 󰆧
     const FILE_OUTLINE: char    = '\u{f016}';  // 
     const FOLDER: char          = '\u{e5ff}';  // 
     const FOLDER_CONFIG: char   = '\u{e5fc}';  // 
@@ -37,6 +38,7 @@ impl Icons {
     const FONT: char            = '\u{f031}';  // 
     const GIST_SECRET: char     = '\u{eafa}';  // 
     const GIT: char             = '\u{f1d3}';  // 
+    const GODOT: char           = '\u{e65f}';  // 
     const GRADLE: char          = '\u{e660}';  // 
     const GRAPHQL: char         = '\u{e662}';  // 
     const GRUNT: char           = '\u{e611}';  // 
@@ -293,6 +295,7 @@ const FILENAME_ICONS: Map<&'static str, char> = phf_map! {
     "passwd"              => Icons::LOCK,           // 
     "php.ini"             => Icons::LANG_PHP,       // 
     "PKGBUILD"            => '\u{f303}',            // 
+    "platformio.ini"      => '\u{e682}',            // 
     "pom.xml"             => '\u{e674}',            // 
     "Procfile"            => '\u{e77b}',            // 
     "profile"             => Icons::SHELL,          // 󱆃
@@ -323,6 +326,7 @@ const FILENAME_ICONS: Map<&'static str, char> = phf_map! {
 /// Mapping from lowercase file extension to icons.  If an image, video, or audio extension is add
 /// also update the extension filetype map.
 const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
+    "3mf"            => Icons::FILE_3D,          // 󰆧
     "7z"             => Icons::COMPRESSED,       // 
     "a"              => Icons::OS_LINUX,         // 
     "acc"            => Icons::AUDIO,            // 
@@ -353,6 +357,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "bdf"            => Icons::FONT,             // 
     "bib"            => Icons::LANG_TEX,         // 
     "bin"            => Icons::BINARY,           // 
+    "blend"          => '\u{f00ab}',             // 󰂫
     "bmp"            => Icons::IMAGE,            // 
     "br"             => Icons::COMPRESSED,       // 
     "bst"            => Icons::LANG_TEX,         // 
@@ -422,6 +427,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "ejs"            => '\u{e618}',              // 
     "el"             => Icons::EMACS,            // 
     "elc"            => Icons::EMACS,            // 
+    "elf"            => Icons::BINARY,           // 
     "elm"            => '\u{e62c}',              // 
     "eml"            => '\u{f003}',              // 
     "env"            => '\u{f462}',              // 
@@ -435,11 +441,16 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "exs"            => Icons::LANG_ELIXIR,      // 
     "f"              => Icons::LANG_FORTRAN,     // 󱈚
     "f90"            => Icons::LANG_FORTRAN,     // 󱈚
+    "fbx"            => Icons::FILE_3D,          // 󰆧
     "fdmdownload"    => Icons::DOWNLOAD,         // 󰇚
     "fish"           => Icons::SHELL_CMD,        // 
     "flac"           => Icons::AUDIO,            // 
     "flv"            => Icons::VIDEO,            // 
     "fnt"            => Icons::FONT,             // 
+    "fodg"           => Icons::VECTOR,           // 󰕙
+    "fodp"           => Icons::SLIDE,            // 
+    "fods"           => Icons::SHEET,            // 
+    "fodt"           => Icons::DOCUMENT,         // 
     "fon"            => Icons::FONT,             // 
     "font"           => Icons::FONT,             // 
     "for"            => Icons::LANG_FORTRAN,     // 󱈚
@@ -447,6 +458,8 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "fsi"            => Icons::LANG_FSHARP,      // 
     "fsproj"         => Icons::LANG_FSHARP,      // 
     "fsx"            => Icons::LANG_FSHARP,      // 
+    "gcode"          => '\u{f0af4}',             // 󰫴
+    "gd"             => Icons::GODOT,            // 
     "gdoc"           => Icons::DOCUMENT,         // 
     "gem"            => Icons::LANG_RUBY,        // 
     "gemfile"        => Icons::LANG_RUBY,        // 
@@ -455,6 +468,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "gif"            => Icons::IMAGE,            // 
     "git"            => Icons::GIT,              // 
     "go"             => Icons::LANG_GO,          // 
+    "godot"          => Icons::GODOT,            // 
     "gpg"            => Icons::SHIELD_LOCK,      // 󰦝
     "gql"            => Icons::GRAPHQL,          // 
     "gradle"         => Icons::GRADLE,           // 
@@ -474,6 +488,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "heic"           => Icons::IMAGE,            // 
     "heics"          => Icons::VIDEO,            // 
     "heif"           => Icons::IMAGE,            // 
+    "hex"            => '\u{f12a7}',             // 󱊧
     "hpp"            => Icons::LANG_CPP,         // 
     "hs"             => Icons::LANG_HASKELL,     // 
     "htm"            => Icons::HTML5,            // 
@@ -487,8 +502,8 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "image"          => Icons::DISK_IMAGE,       // 
     "img"            => Icons::DISK_IMAGE,       // 
     "iml"            => Icons::INTELLIJ,         // 
-    "inl"            => Icons::LANG_C,           // 
     "ini"            => Icons::CONFIG,           // 
+    "inl"            => Icons::LANG_C,           // 
     "ipynb"          => '\u{e678}',              // 
     "iso"            => Icons::DISK_IMAGE,       // 
     "j2c"            => Icons::IMAGE,            // 
@@ -577,6 +592,9 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "nix"            => '\u{f313}',              // 
     "node"           => Icons::NODEJS,           // 
     "o"              => Icons::BINARY,           // 
+    "obj"            => Icons::FILE_3D,          // 󰆧
+    "odf"            => '\u{f0784}',             // 󰞄
+    "odg"            => Icons::VECTOR,           // 󰕙
     "odp"            => Icons::SLIDE,            // 
     "ods"            => Icons::SHEET,            // 
     "odt"            => Icons::DOCUMENT,         // 
@@ -604,6 +622,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "pl"             => Icons::LANG_PERL,        // 
     "plist"          => Icons::OS_APPLE,         // 
     "plx"            => Icons::LANG_PERL,        // 
+    "ply"            => Icons::FILE_3D,          // 󰆧
     "pm"             => Icons::LANG_PERL,        // 
     "png"            => Icons::IMAGE,            // 
     "pnm"            => Icons::IMAGE,            // 
@@ -656,6 +675,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "ru"             => Icons::LANG_RUBY,        // 
     "rubydoc"        => Icons::LANG_RUBYRAILS,   // 
     "s"              => Icons::LANG_ASSEMBLY,    // 
+    "sal"            => '\u{f147b}',             // 󱑻
     "sass"           => Icons::LANG_SASS,        // 
     "sbt"            => Icons::SUBTITLE,         // 󰨖
     "scala"          => '\u{e737}',              // 
@@ -676,9 +696,10 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "so"             => Icons::OS_LINUX,         // 
     "sql"            => Icons::DATABASE,         // 
     "sqlite3"        => '\u{e7c4}',              // 
+    "sr"             => '\u{f147b}',             // 󱑻
     "srt"            => Icons::SUBTITLE,         // 󰨖
     "ssa"            => Icons::SUBTITLE,         // 󰨖
-    "stl"            => Icons::IMAGE,            // 
+    "stl"            => Icons::FILE_3D,          // 󰆧
     "sty"            => Icons::LANG_TEX,         // 
     "styl"           => Icons::LANG_STYLUS,      // 
     "stylus"         => Icons::LANG_STYLUS,      // 
@@ -713,7 +734,9 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! {
     "tml"            => Icons::CONFIG,           // 
     "toml"           => Icons::CONFIG,           // 
     "torrent"        => '\u{e275}',              // 
+    "tres"           => Icons::GODOT,            // 
     "ts"             => Icons::LANG_TYPESCRIPT,  // 
+    "tscn"           => Icons::GODOT,            // 
     "tsv"            => Icons::SHEET,            // 
     "tsx"            => Icons::REACT,            // 
     "ttc"            => Icons::FONT,             // 