diff --git a/src/info/filetype.rs b/src/info/filetype.rs index e71c2eb68..e908c8e8b 100644 --- a/src/info/filetype.rs +++ b/src/info/filetype.rs @@ -118,6 +118,8 @@ const EXTENSION_TYPES: Map<&'static str, FileType> = phf_map! { "jpg" => FileType::Image, "jpx" => FileType::Image, "jxl" => FileType::Image, + "kra" => FileType::Image, + "krz" => FileType::Image, "nef" => FileType::Image, "odg" => FileType::Image, "orf" => FileType::Image, @@ -266,6 +268,8 @@ const EXTENSION_TYPES: Map<&'static str, FileType> = phf_map! { "bkp" => FileType::Temp, "crdownload" => FileType::Temp, "download" => FileType::Temp, + "fcbak" => FileType::Temp, + "fcstd1" => FileType::Temp, "fdmdownload"=> FileType::Temp, "part" => FileType::Temp, "swn" => FileType::Temp, @@ -293,7 +297,7 @@ const EXTENSION_TYPES: Map<&'static str, FileType> = phf_map! { "pyo" => FileType::Compiled, // Python optimized code "so" => FileType::Compiled, // Unix shared library "zwc" => FileType::Compiled, // zsh compiled file - /* Source code */ + /* Source code files */ "applescript"=> FileType::Source, // Apple script "as" => FileType::Source, // Action script "asa" => FileType::Source, // asp @@ -327,6 +331,8 @@ const EXTENSION_TYPES: Map<&'static str, FileType> = phf_map! { "exs" => FileType::Source, // Elixir "f" => FileType::Source, // Fortran "f90" => FileType::Source, // Fortran + "fcmacro" => FileType::Source, // FreeCAD macro + "fcscript" => FileType::Source, // FreeCAD script "fnl" => FileType::Source, // Fennel "for" => FileType::Source, // Fortran "fs" => FileType::Source, // F# @@ -342,11 +348,13 @@ const EXTENSION_TYPES: Map<&'static str, FileType> = phf_map! { "h++" => FileType::Source, // C/C++ header "hh" => FileType::Source, // C/C++ header "hpp" => FileType::Source, // C/C++ header + "hc" => FileType::Source, // HolyC "hs" => FileType::Source, // Haskell "htc" => FileType::Source, // JavaScript "hxx" => FileType::Source, // C/C++ header "inc" => FileType::Source, "inl" => FileType::Source, // C/C++ Microsoft + "ino" => FileType::Source, // Arduino "ipynb" => FileType::Source, // Jupyter Notebook "ixx" => FileType::Source, // C/C++ module "java" => FileType::Source, // Java @@ -388,6 +396,7 @@ const EXTENSION_TYPES: Map<&'static str, FileType> = phf_map! { "sass" => FileType::Source, // Sass "scala" => FileType::Source, // Scala "scm" => FileType::Source, // Scheme + "scad" => FileType::Source, // OpenSCAD "scss" => FileType::Source, // Sass "sld" => FileType::Source, // Scheme Library Definition "sql" => FileType::Source, // SQL diff --git a/src/output/icons.rs b/src/output/icons.rs index ef24db542..4bb8dc2c4 100644 --- a/src/output/icons.rs +++ b/src/output/icons.rs @@ -18,6 +18,8 @@ impl Icons { const BINARY: char = '\u{eae8}'; //  const BOOK: char = '\u{e28b}'; //  const CALENDAR: char = '\u{eab0}'; //  + const CACHE: char = '\u{f49b}'; //  + const CAD: char = '\u{f0eeb}'; // 󰻫 const CLOCK: char = '\u{f43a}'; //  const COMPRESSED: char = '\u{f410}'; //  const CONFIG: char = '\u{e615}'; //  @@ -28,6 +30,8 @@ impl Icons { const DOCKER: char = '\u{e650}'; //  const DOCUMENT: char = '\u{f1c2}'; //  const DOWNLOAD: char = '\u{f01da}'; // 󰇚 + const EDA_SCH: char = '\u{f0b45}'; // 󰭅 + const EDA_PCB: char = '\u{eabe}'; //  const EMACS: char = '\u{e632}'; //  const ESLINT: char = '\u{e655}'; //  const FILE: char = '\u{f15b}'; //  @@ -42,19 +46,28 @@ impl Icons { const FOLDER_NPM: char = '\u{e5fa}'; //  const FOLDER_OPEN: char = '\u{f115}'; //  const FONT: char = '\u{f031}'; //  + const FREECAD: char = '\u{f336}'; //  + const GIMP: char = '\u{f338}'; //  const GIST_SECRET: char = '\u{eafa}'; //  const GIT: char = '\u{f1d3}'; //  const GODOT: char = '\u{e65f}'; //  const GRADLE: char = '\u{e660}'; //  + const GRAPH: char = '\u{f1049}'; // 󱁉 const GRAPHQL: char = '\u{e662}'; //  const GRUNT: char = '\u{e611}'; //  + const GTK: char = '\u{f362}'; //  const GULP: char = '\u{e610}'; //  const HTML5: char = '\u{f13b}'; //  const IMAGE: char = '\u{f1c5}'; //  + const INFO: char = '\u{f129}'; //  const INTELLIJ: char = '\u{e7b5}'; //  const JSON: char = '\u{e60b}'; //  const KEY: char = '\u{eb11}'; //  + const KDENLIVE: char = '\u{f33c}'; //  const KEYPASS: char = '\u{f23e}'; //  + const KICAD: char = '\u{f34c}'; //  + const KRITA: char = '\u{f33d}'; //  + const LANG_ARDUINO: char = '\u{f34b}'; //  const LANG_ASSEMBLY: char = '\u{e637}'; //  const LANG_C: char = '\u{e61e}'; //  const LANG_CPP: char = '\u{e61d}'; //  @@ -68,9 +81,12 @@ impl Icons { const LANG_GO: char = '\u{e65e}'; //  const LANG_GROOVY: char = '\u{e775}'; //  const LANG_HASKELL: char = '\u{e777}'; //  + const LANG_HDL: char = '\u{f035b}'; // 󰍛 + const LANG_HOLYC: char = '\u{f00a2}'; // 󰂢 const LANG_JAVA: char = '\u{e256}'; //  const LANG_JAVASCRIPT: char = '\u{e74e}'; //  const LANG_KOTLIN: char = '\u{e634}'; //  + const LANG_LUA: char = '\u{e620}'; //  const LANG_NIM: char = '\u{e677}'; //  const LANG_OCAML: char = '\u{e67a}'; //  const LANG_PERL: char = '\u{e67e}'; //  @@ -89,6 +105,7 @@ impl Icons { const LIBRARY: char = '\u{eb9c}'; //  const LICENSE: char = '\u{f02d}'; //  const LOCK: char = '\u{f023}'; //  + const LOG: char = '\u{f18d}'; //  const MAKE: char = '\u{e673}'; //  const MARKDOWN: char = '\u{f48a}'; //  const MUSTACHE: char = '\u{e60f}'; //  @@ -103,6 +120,7 @@ impl Icons { const POWERSHELL: char = '\u{ebc7}'; //  const PRIVATE_KEY: char = '\u{f0306}'; // 󰌆 const PUBLIC_KEY: char = '\u{f0dd6}'; // 󰷖 + const QT: char = '\u{f375}'; //  const RAZOR: char = '\u{f1fa}'; //  const REACT: char = '\u{e7ba}'; //  const README: char = '\u{f00ba}'; // 󰂺 @@ -114,10 +132,14 @@ impl Icons { const SHIELD_LOCK: char = '\u{f099d}'; // 󰦝 const SIGNED_FILE: char = '\u{f19c3}'; // 󱧃 const SLIDE: char = '\u{f1c4}'; //  + const SQLITE: char = '\u{e7c4}'; //  const SUBLIME: char = '\u{e7aa}'; //  const SUBTITLE: char = '\u{f0a16}'; // 󰨖 const TERRAFORM: char = '\u{f1062}'; // 󱁢 const TEXT: char = '\u{f15c}'; //  + const TMUX: char = '\u{ebc8}'; //  + const TOML: char = '\u{e6b2}'; //  + const TRANSLATION: char = '\u{f05ca}'; // 󰗊 const TYPST: char = '\u{1D42D}'; // 𝐭 const UNITY: char = '\u{e721}'; //  const VECTOR: char = '\u{f0559}'; // 󰕙 @@ -172,16 +194,20 @@ const DIRECTORY_ICONS: Map<&'static str, char> = phf_map! { /// Mapping from full filenames to file icon. This mapping should also contain /// all the "dot" files that have a custom icon. const FILENAME_ICONS: Map<&'static str, char> = phf_map! { + ".aliases" => Icons::SHELL, // 󱆃 ".atom" => '\u{e764}', //  ".bashrc" => Icons::SHELL, // 󱆃 + ".bash_aliases" => Icons::SHELL, // 󱆃 ".bash_history" => Icons::SHELL, // 󱆃 ".bash_logout" => Icons::SHELL, // 󱆃 ".bash_profile" => Icons::SHELL, // 󱆃 ".CFUserTextEncoding" => Icons::OS_APPLE, //  ".clang-format" => Icons::CONFIG, //  + ".codespellrc" => '\u{f04c6}', // 󰓆 ".cshrc" => Icons::SHELL, // 󱆃 ".DS_Store" => Icons::OS_APPLE, //  ".emacs" => Icons::EMACS, //  + ".envrc" => '\u{f462}', //  ".eslintrc.cjs" => Icons::ESLINT, //  ".eslintrc.js" => Icons::ESLINT, //  ".eslintrc.json" => Icons::ESLINT, //  @@ -189,11 +215,13 @@ const FILENAME_ICONS: Map<&'static str, char> = phf_map! { ".eslintrc.yml" => Icons::ESLINT, //  ".fennelrc" => Icons::CONFIG, //  ".gitattributes" => Icons::GIT, //  + ".git-blame-ignore-revs" => Icons::GIT, //  ".gitconfig" => Icons::GIT, //  ".gitignore" => Icons::GIT, //  ".gitignore_global" => Icons::GIT, //  ".gitlab-ci.yml" => '\u{f296}', //  ".gitmodules" => Icons::GIT, //  + ".gtkrc-2.0" => Icons::GTK, //  ".htaccess" => Icons::CONFIG, //  ".htpasswd" => Icons::CONFIG, //  ".idea" => Icons::INTELLIJ, //  @@ -206,11 +234,13 @@ const FILENAME_ICONS: Map<&'static str, char> = phf_map! { ".node_repl_history" => Icons::NODEJS, //  ".npmignore" => Icons::NPM, //  ".npmrc" => Icons::NPM, //  + ".parentlock" => Icons::LOCK, //  ".profile" => Icons::SHELL, // 󱆃 ".python_history" => Icons::LANG_PYTHON, //  ".rustfmt.toml" => Icons::LANG_RUST, //  ".rvm" => Icons::LANG_RUBY, //  ".rvmrc" => Icons::LANG_RUBY, //  + ".SRCINFO" => '\u{f303}', //  ".tcshrc" => Icons::SHELL, // 󱆃 ".viminfo" => Icons::VIM, //  ".vimrc" => Icons::VIM, //  @@ -229,11 +259,14 @@ const FILENAME_ICONS: Map<&'static str, char> = phf_map! { "a.out" => Icons::SHELL_CMD, //  "authorized_keys" => '\u{f08c0}', // 󰣀 "bashrc" => Icons::SHELL, // 󱆃 - "bspwmrc" => Icons::CONFIG, //  + "bspwmrc" => '\u{f355}', //  "build.gradle.kts" => Icons::GRADLE, //  + "cantorrc" => '\u{f373}', //  "Cargo.lock" => Icons::LANG_RUST, //  "Cargo.toml" => Icons::LANG_RUST, //  "CMakeLists.txt" => Icons::MAKE, //  + "CODE_OF_CONDUCT" => '\u{f4ae}', //  + "CODE_OF_CONDUCT.md" => '\u{f4ae}', //  "composer.json" => Icons::LANG_PHP, //  "composer.lock" => Icons::LANG_PHP, //  "config" => Icons::CONFIG, //  @@ -255,9 +288,15 @@ const FILENAME_ICONS: Map<&'static str, char> = phf_map! { "compose.yml" => Icons::DOCKER, //  "docker-compose.yaml" => Icons::DOCKER, //  "dune" => Icons::LANG_OCAML, //  - "dune-project" => Icons::WRENCH, //  + "dune-project" => Icons::WRENCH, //  "Earthfile" => '\u{f0ac}', //  + "COMMIT_EDITMSG" => Icons::GIT, //  "environment" => Icons::CONFIG, //  + "favicon.ico" => '\u{e623}', //  + "fonts.conf" => Icons::FONT, //  + "fp-info-cache" => Icons::KICAD, //  + "fp-lib-table" => Icons::KICAD, //  + "FreeCAD.conf" => Icons::FREECAD, //  "GNUmakefile" => Icons::MAKE, //  "go.mod" => Icons::LANG_GO, //  "go.sum" => Icons::LANG_GO, //  @@ -271,11 +310,18 @@ const FILENAME_ICONS: Map<&'static str, char> = phf_map! { "gruntfile.js" => Icons::GRUNT, //  "gruntfile.ls" => Icons::GRUNT, //  "gshadow" => Icons::LOCK, //  + "gtkrc" => Icons::GTK, //  "gulpfile.coffee" => Icons::GULP, //  "gulpfile.js" => Icons::GULP, //  "gulpfile.ls" => Icons::GULP, //  "heroku.yml" => '\u{e77b}', //  "hostname" => Icons::CONFIG, //  + "hypridle.conf" => '\u{f359}', //  + "hyprland.conf" => '\u{f359}', //  + "hyprlock.conf" => '\u{f359}', //  + "hyprpaper.conf" => '\u{f359}', //  + "i3blocks.conf" => '\u{f35a}', //  + "i3status.conf" => '\u{f35a}', //  "id_dsa" => Icons::PRIVATE_KEY, // 󰌆 "id_ecdsa" => Icons::PRIVATE_KEY, // 󰌆 "id_ecdsa_sk" => Icons::PRIVATE_KEY, // 󰌆 @@ -287,7 +333,13 @@ const FILENAME_ICONS: Map<&'static str, char> = phf_map! { "jsconfig.json" => Icons::LANG_JAVASCRIPT,//  "Justfile" => Icons::WRENCH, //  "justfile" => Icons::WRENCH, //  + "kalgebrarc" => '\u{f373}', //  + "kdeglobals" => '\u{f373}', //  + "kdenlive-layoutsrc" => Icons::KDENLIVE, //  + "kdenliverc" => Icons::KDENLIVE, //  "known_hosts" => '\u{f08c0}', // 󰣀 + "kritadisplayrc" => Icons::KRITA, //  + "kritarc" => Icons::KRITA, //  "LICENCE" => Icons::LICENSE, //  "LICENCE.md" => Icons::LICENSE, //  "LICENCE.txt" => Icons::LICENSE, //  @@ -298,6 +350,12 @@ const FILENAME_ICONS: Map<&'static str, char> = phf_map! { "LICENSE.txt" => Icons::LICENSE, //  "localized" => Icons::OS_APPLE, //  "localtime" => Icons::CLOCK, //  + "lock" => Icons::LOCK, //  + "LOCK" => Icons::LOCK, //  + "log" => Icons::LOG, //  + "LOG" => Icons::LOG, //  + "lxde-rc.xml" => '\u{f363}', //  + "lxqt.conf" => '\u{f364}', //  "Makefile" => Icons::MAKE, //  "makefile" => Icons::MAKE, //  "Makefile.ac" => Icons::MAKE, //  @@ -305,6 +363,7 @@ const FILENAME_ICONS: Map<&'static str, char> = phf_map! { "Makefile.in" => Icons::MAKE, //  "MANIFEST" => Icons::LANG_PYTHON, //  "MANIFEST.in" => Icons::LANG_PYTHON, //  + "mpv.conf" => '\u{f36e}', //  "npm-shrinkwrap.json" => Icons::NPM, //  "npmrc" => Icons::NPM, //  "package-lock.json" => Icons::NPM, //  @@ -316,22 +375,40 @@ const FILENAME_ICONS: Map<&'static str, char> = phf_map! { "pom.xml" => '\u{e674}', //  "Procfile" => '\u{e77b}', //  "profile" => Icons::SHELL, // 󱆃 + "PrusaSlicer.ini" => '\u{f351}', //  + "PrusaSlicerGcodeViewer.ini" => '\u{f351}', //  + "pyvenv.cfg" => Icons::LANG_PYTHON, //  "pyproject.toml" => Icons::LANG_PYTHON, //  + "qt5ct.conf" => Icons::QT, //  + "qt6ct.conf" => Icons::QT, //  + "QtProject.conf" => Icons::QT, //  "Rakefile" => Icons::LANG_RUBY, //  "README" => Icons::README, // 󰂺 + "README.md" => Icons::README, // 󰂺 "release.toml" => Icons::LANG_RUST, //  "requirements.txt" => Icons::LANG_PYTHON, //  "robots.txt" => '\u{f06a9}', // 󰚩 "rubydoc" => Icons::LANG_RUBYRAILS, //  "rvmrc" => Icons::LANG_RUBY, //  + "SECURITY" => '\u{f0483}', // 󰒃 + "SECURITY.md" => '\u{f0483}', // 󰒃 "settings.gradle.kts" => Icons::GRADLE, //  "shadow" => Icons::LOCK, //  "shells" => Icons::CONFIG, //  "sudoers" => Icons::LOCK, //  + "sxhkdrc" => Icons::CONFIG, //  + "sym-lib-table" => Icons::KICAD, //  "timezone" => Icons::CLOCK, //  + "tmux.conf" => Icons::TMUX, //  + "tmux.conf.local" => Icons::TMUX, //  "tsconfig.json" => Icons::LANG_TYPESCRIPT,//  "Vagrantfile" => '\u{2371}', // ⍱ + "vlcrc" => '\u{f057c}', // 󰕼 "webpack.config.js" => '\u{f072b}', // 󰜫 + "weston.ini" => '\u{f367}', //  + "xmobarrc" => '\u{f35e}', //  + "xmobarrc.hs" => '\u{f35e}', //  + "xmonad.hs" => '\u{f35e}', //  "yarn.lock" => Icons::YARN, //  "zlogin" => Icons::SHELL, // 󱆃 "zlogout" => Icons::SHELL, // 󱆃 @@ -343,10 +420,17 @@ 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! { + "123dx" => Icons::CAD, // 󰻫 + "3dm" => Icons::CAD, // 󰻫 + "3g2" => Icons::VIDEO, //  + "3gp" => Icons::VIDEO, //  + "3gp2" => Icons::VIDEO, //  + "3gpp" => Icons::VIDEO, //  + "3gpp2" => Icons::VIDEO, //  "3mf" => Icons::FILE_3D, // 󰆧 "7z" => Icons::COMPRESSED, //  "a" => Icons::OS_LINUX, //  - "acc" => Icons::AUDIO, //  + "aac" => Icons::AUDIO, //  "acf" => '\u{f1b6}', //  "age" => Icons::SHIELD_LOCK, // 󰦝 "ai" => '\u{e7b4}', //  @@ -357,6 +441,8 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "android" => Icons::OS_ANDROID, //  "ape" => Icons::AUDIO, //  "apk" => Icons::OS_ANDROID, //  + "app" => Icons::BINARY, //  + "applescript" => Icons::OS_APPLE, //  "apple" => Icons::OS_APPLE, //  "ar" => Icons::COMPRESSED, //  "arj" => Icons::COMPRESSED, //  @@ -364,6 +450,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "asc" => Icons::SHIELD_LOCK, // 󰦝 "asm" => Icons::LANG_ASSEMBLY, //  "asp" => '\u{f121}', //  + "ass" => Icons::SUBTITLE, // 󰨖 "avi" => Icons::VIDEO, //  "avif" => Icons::IMAGE, //  "avro" => Icons::JSON, //  @@ -377,6 +464,8 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "blend" => '\u{f00ab}', // 󰂫 "bmp" => Icons::IMAGE, //  "br" => Icons::COMPRESSED, //  + "brd" => Icons::EDA_PCB, //  + "brep" => Icons::CAD, // 󰻫 "bst" => Icons::LANG_TEX, //  "bundle" => Icons::OS_APPLE, //  "bz" => Icons::COMPRESSED, //  @@ -385,6 +474,10 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "c" => Icons::LANG_C, //  "c++" => Icons::LANG_CPP, //  "cab" => Icons::OS_WINDOWS, //  + "cache" => Icons::CACHE, //  + "cast" => Icons::VIDEO, //  + "catpart" => Icons::CAD, // 󰻫 + "catproduct" => Icons::CAD, // 󰻫 "cbr" => Icons::IMAGE, //  "cbz" => Icons::IMAGE, //  "cc" => Icons::LANG_CPP, //  @@ -401,6 +494,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "com" => Icons::OS_WINDOWS_CMD, //  "conf" => Icons::CONFIG, //  "config" => Icons::CONFIG, //  + "cow" => '\u{f019a}', // 󰆚 "cp" => Icons::LANG_CPP, //  "cpio" => Icons::COMPRESSED, //  "cpp" => Icons::LANG_CPP, //  @@ -422,6 +516,8 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "d" => Icons::LANG_D, //  "dart" => '\u{e798}', //  "db" => Icons::DATABASE, //  + "db3" => Icons::SQLITE, //  + "dconf" => Icons::DATABASE, //  "deb" => '\u{e77d}', //  "desktop" => '\u{ebd1}', //  "di" => Icons::LANG_D, //  @@ -431,18 +527,21 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "dll" => Icons::LIBRARY, //  "dmg" => Icons::DISK_IMAGE, //  "doc" => Icons::DOCUMENT, //  + "docm" => Icons::DOCUMENT, //  "docx" => Icons::DOCUMENT, //  - "dot" => '\u{f1049}', // 󱁉 + "dot" => Icons::GRAPH, // 󱁉 "download" => Icons::DOWNLOAD, // 󰇚 "dockerfile" => Icons::DOCKER, //  "dockerignore" => Icons::DOCKER, //  "drawio" => '\u{ebba}', //  "dump" => Icons::DATABASE, //  "dvi" => Icons::IMAGE, //  + "dwg" => Icons::CAD, // 󰻫 + "dxf" => Icons::CAD, // 󰻫 "dylib" => Icons::OS_APPLE, //  "ebook" => Icons::BOOK, //  "ebuild" => '\u{f30d}', //  - "editorconfig" => Icons::CONFIG, //  + "editorconfig" => '\u{e652}', //  "ejs" => '\u{e618}', //  "el" => Icons::EMACS, //  "elc" => Icons::EMACS, //  @@ -459,11 +558,24 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "exe" => Icons::OS_WINDOWS_CMD, //  "exs" => Icons::LANG_ELIXIR, //  "f" => Icons::LANG_FORTRAN, // 󱈚 + "f3d" => Icons::CAD, // 󰻫 + "f3z" => Icons::CAD, // 󰻫 "f90" => Icons::LANG_FORTRAN, // 󱈚 "fbx" => Icons::FILE_3D, // 󰆧 "fdmdownload" => Icons::DOWNLOAD, // 󰇚 + "fcbak" => Icons::FREECAD, //  + "fcmacro" => Icons::FREECAD, //  + "fcmat" => Icons::FREECAD, //  + "fcparam" => Icons::FREECAD, //  + "fcscript" => Icons::FREECAD, //  + "fcstd" => Icons::FREECAD, //  + "fcstd1" => Icons::FREECAD, //  + "fctb" => Icons::FREECAD, //  + "fctl" => Icons::FREECAD, //  "fish" => Icons::SHELL_CMD, //  "flac" => Icons::AUDIO, //  + "flc" => Icons::FONT, //  + "flf" => Icons::FONT, //  "flv" => Icons::VIDEO, //  "fnl" => Icons::LANG_FENNEL, //  "fnt" => Icons::FONT, //  @@ -479,6 +591,11 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "fsproj" => Icons::LANG_FSHARP, //  "fsx" => Icons::LANG_FSHARP, //  "gba" => '\u{f1393}', // 󱎓 + "gbl" => Icons::EDA_PCB, //  + "gbo" => Icons::EDA_PCB, //  + "gbp" => Icons::EDA_PCB, //  + "gbr" => Icons::EDA_PCB, //  + "gbs" => Icons::EDA_PCB, //  "gcode" => '\u{f0af4}', // 󰫴 "gd" => Icons::GODOT, //  "gdoc" => Icons::DOCUMENT, //  @@ -489,17 +606,24 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "gif" => Icons::IMAGE, //  "git" => Icons::GIT, //  "gleam" => Icons::LANG_GLEAM, // 󰦥 + "gm1" => Icons::EDA_PCB, //  + "gml" => Icons::EDA_PCB, //  "go" => Icons::LANG_GO, //  "godot" => Icons::GODOT, //  "gpg" => Icons::SHIELD_LOCK, // 󰦝 "gql" => Icons::GRAPHQL, //  "gradle" => Icons::GRADLE, //  "graphql" => Icons::GRAPHQL, //  + "gresource" => Icons::GTK, //  "groovy" => Icons::LANG_GROOVY, //  "gsheet" => Icons::SHEET, //  "gslides" => Icons::SLIDE, //  + "gtl" => Icons::EDA_PCB, //  + "gto" => Icons::EDA_PCB, //  + "gtp" => Icons::EDA_PCB, //  + "gts" => Icons::EDA_PCB, //  "guardfile" => Icons::LANG_RUBY, //  - "gv" => '\u{f1049}', // 󱁉 + "gv" => Icons::GRAPH, // 󱁉 "gvy" => Icons::LANG_GROOVY, //  "gz" => Icons::COMPRESSED, //  "h" => Icons::LANG_C, //  @@ -507,6 +631,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "h264" => Icons::VIDEO, //  "haml" => '\u{e664}', //  "hbs" => Icons::MUSTACHE, //  + "hc" => Icons::LANG_HOLYC, // 󰂢 "heic" => Icons::IMAGE, //  "heics" => Icons::VIDEO, //  "heif" => Icons::IMAGE, //  @@ -517,16 +642,24 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "htm" => Icons::HTML5, //  "html" => Icons::HTML5, //  "hxx" => Icons::LANG_CPP, //  + "iam" => Icons::CAD, // 󰻫 "ical" => Icons::CALENDAR, //  "icalendar" => Icons::CALENDAR, //  "ico" => Icons::IMAGE, //  "ics" => Icons::CALENDAR, //  "ifb" => Icons::CALENDAR, //  + "ifc" => Icons::CAD, // 󰻫 + "ige" => Icons::CAD, // 󰻫 + "iges" => Icons::CAD, // 󰻫 + "igs" => Icons::CAD, // 󰻫 "image" => Icons::DISK_IMAGE, //  "img" => Icons::DISK_IMAGE, //  "iml" => Icons::INTELLIJ, //  + "info" => Icons::INFO, //  "ini" => Icons::CONFIG, //  "inl" => Icons::LANG_C, //  + "ino" => Icons::LANG_ARDUINO, //  + "ipt" => Icons::CAD, // 󰻫 "ipynb" => '\u{e678}', //  "iso" => Icons::DISK_IMAGE, //  "j2c" => Icons::IMAGE, //  @@ -534,6 +667,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "jad" => Icons::LANG_JAVA, //  "jar" => Icons::LANG_JAVA, //  "java" => Icons::LANG_JAVA, //  + "jwmrc" => '\u{f35b}', //  "jfi" => Icons::IMAGE, //  "jfif" => Icons::IMAGE, //  "jif" => Icons::IMAGE, //  @@ -547,28 +681,50 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "jpx" => Icons::IMAGE, //  "js" => Icons::LANG_JAVASCRIPT, //  "json" => Icons::JSON, //  + "json5" => Icons::JSON, //  + "jsonc" => Icons::JSON, //  "jsx" => Icons::REACT, //  "jxl" => Icons::IMAGE, //  "kbx" => Icons::SHIELD_KEY, // 󰯄 "kdb" => Icons::KEYPASS, //  "kdbx" => Icons::KEYPASS, //  + "kdenlive" => Icons::KDENLIVE, //  + "kdenlivetitle" => Icons::KDENLIVE, //  "key" => Icons::KEY, //  + "kicad_dru" => Icons::KICAD, //  + "kicad_mod" => Icons::KICAD, //  + "kicad_pcb" => Icons::KICAD, //  + "kicad_prl" => Icons::KICAD, //  + "kicad_pro" => Icons::KICAD, //  + "kicad_sch" => Icons::KICAD, //  + "kicad_sym" => Icons::KICAD, //  + "kicad_wks" => Icons::KICAD, //  "ko" => Icons::OS_LINUX, //  + "kpp" => Icons::KRITA, //  + "kra" => Icons::KRITA, //  + "krz" => Icons::KRITA, //  "ksh" => Icons::SHELL_CMD, //  "kt" => Icons::LANG_KOTLIN, //  "kts" => Icons::LANG_KOTLIN, //  "latex" => Icons::LANG_TEX, //  + "lbr" => Icons::LIBRARY, //  + "lck" => Icons::LOCK, //  "ldb" => Icons::DATABASE, //  "less" => '\u{e758}', //  + "lff" => Icons::FONT, //  "lhs" => Icons::LANG_HASKELL, //  "lib" => Icons::LIBRARY, //  "license" => Icons::LICENSE, //  "lisp" => '\u{f0172}', // 󰅲 "localized" => Icons::OS_APPLE, //  "lock" => Icons::LOCK, //  - "log" => '\u{f18d}', //  + "log" => Icons::LOG, //  + "lpp" => Icons::EDA_PCB, //  + "lrc" => Icons::SUBTITLE, // 󰨖 "ltx" => Icons::LANG_TEX, //  - "lua" => '\u{e620}', //  + "lua" => Icons::LANG_LUA, //  + "luac" => Icons::LANG_LUA, //  + "luau" => Icons::LANG_LUA, //  "lz" => Icons::COMPRESSED, //  "lz4" => Icons::COMPRESSED, //  "lzh" => Icons::COMPRESSED, //  @@ -597,6 +753,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "mll" => Icons::LANG_OCAML, //  "mly" => Icons::LANG_OCAML, //  "mm" => Icons::LANG_CPP, //  + "mo" => Icons::TRANSLATION, // 󰗊 "mobi" => Icons::BOOK, //  "mov" => Icons::VIDEO, //  "mp2" => Icons::AUDIO, //  @@ -604,10 +761,12 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "mp4" => Icons::VIDEO, //  "mpeg" => Icons::VIDEO, //  "mpg" => Icons::VIDEO, //  + "msf" => '\u{f370}', //  "msi" => Icons::OS_WINDOWS, //  "mts" => Icons::LANG_TYPESCRIPT, //  "mustache" => Icons::MUSTACHE, //  "nef" => Icons::IMAGE, //  + "nfo" => Icons::INFO, //  "nim" => Icons::LANG_NIM, //  "nimble" => Icons::LANG_NIM, //  "nims" => Icons::LANG_NIM, //  @@ -618,6 +777,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "nu" => Icons::SHELL_CMD, //  "o" => Icons::BINARY, //  "obj" => Icons::FILE_3D, // 󰆧 + "odb" => Icons::DATABASE, //  "odf" => '\u{f0784}', // 󰞄 "odg" => Icons::VECTOR, // 󰕙 "odp" => Icons::SLIDE, //  @@ -637,6 +797,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "part" => Icons::DOWNLOAD, // 󰇚 "patch" => Icons::DIFF, //  "pbm" => Icons::IMAGE, //  + "pcbdoc" => Icons::EDA_PCB, //  "pcm" => Icons::AUDIO, //  "pdf" => '\u{f1c1}', //  "pem" => Icons::KEY, //  @@ -647,18 +808,22 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "pkg" => '\u{eb29}', //  "pl" => Icons::LANG_PERL, //  "plist" => Icons::OS_APPLE, //  + "pls" => Icons::PLAYLIST, // 󰲹 "plx" => Icons::LANG_PERL, //  "ply" => Icons::FILE_3D, // 󰆧 "pm" => Icons::LANG_PERL, //  "png" => Icons::IMAGE, //  "pnm" => Icons::IMAGE, //  + "po" => Icons::TRANSLATION, // 󰗊 "pod" => Icons::LANG_PERL, //  + "pot" => Icons::TRANSLATION, // 󰗊 "pp" => '\u{e631}', //  "ppm" => Icons::IMAGE, //  "pps" => Icons::SLIDE, //  "ppsx" => Icons::SLIDE, //  "ppt" => Icons::SLIDE, //  "pptx" => Icons::SLIDE, //  + "prjpcb" => Icons::EDA_PCB, //  "properties" => Icons::JSON, //  "prql" => Icons::DATABASE, //  "ps" => Icons::VECTOR, // 󰕙 @@ -666,6 +831,7 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "psd" => '\u{e7b8}', //  "psd1" => Icons::POWERSHELL, //  "psf" => Icons::FONT, //  + "psm" => Icons::CAD, // 󰻫 "psm1" => Icons::POWERSHELL, //  "pub" => Icons::PUBLIC_KEY, // 󰷖 "purs" => '\u{e630}', //  @@ -675,8 +841,13 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "pyd" => Icons::LANG_PYTHON, //  "pyi" => Icons::LANG_PYTHON, //  "pyo" => Icons::LANG_PYTHON, //  + "pyw" => Icons::LANG_PYTHON, //  "qcow" => Icons::DISK_IMAGE, //  "qcow2" => Icons::DISK_IMAGE, //  + "qm" => Icons::TRANSLATION, // 󰗊 + "qml" => Icons::QT, //  + "qrc" => Icons::QT, //  + "qss" => Icons::QT, //  "r" => Icons::LANG_R, //  "rar" => Icons::COMPRESSED, //  "raw" => Icons::IMAGE, //  @@ -702,13 +873,19 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "ru" => Icons::LANG_RUBY, //  "rubydoc" => Icons::LANG_RUBYRAILS, //  "s" => Icons::LANG_ASSEMBLY, //  + "s3db" => Icons::SQLITE, //  "sal" => '\u{f147b}', // 󱑻 "sass" => Icons::LANG_SASS, //  "sbt" => Icons::SUBTITLE, // 󰨖 + "scad" => '\u{f34e}', //  "scala" => '\u{e737}', //  "scm" => Icons::LANG_SCHEME, //  + "sch" => Icons::EDA_SCH, // 󰭅 + "schdoc" => Icons::EDA_SCH, // 󰭅 "scss" => Icons::LANG_SASS, //  "service" => '\u{eba2}', //  + "sf2" => '\u{f0f70}', // 󰽰 + "sfz" => '\u{f0f70}', // 󰽰 "sh" => Icons::SHELL_CMD, //  "sha1" => Icons::SHIELD_CHECK, // 󰕥 "sha224" => Icons::SHIELD_CHECK, // 󰕥 @@ -720,16 +897,25 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "sig" => Icons::SIGNED_FILE, // 󱧃 "signature" => Icons::SIGNED_FILE, // 󱧃 "sld" => Icons::LANG_SCHEME, //  + "skp" => Icons::CAD, // 󰻫 + "sl3" => Icons::SQLITE, //  + "sldasm" => Icons::CAD, // 󰻫 + "sldprt" => Icons::CAD, // 󰻫 "slim" => Icons::LANG_RUBYRAILS, //  "sln" => '\u{e70c}', //  + "slvs" => Icons::CAD, // 󰻫 "so" => Icons::OS_LINUX, //  "sql" => Icons::DATABASE, //  - "sqlite3" => '\u{e7c4}', //  + "sqlite" => Icons::SQLITE, //  + "sqlite3" => Icons::SQLITE, //  "sr" => '\u{f147b}', // 󱑻 "srt" => Icons::SUBTITLE, // 󰨖 "ss" => Icons::LANG_SCHEME, //  "ssa" => Icons::SUBTITLE, // 󰨖 "stl" => Icons::FILE_3D, // 󰆧 + "ste" => Icons::CAD, // 󰻫 + "step" => Icons::CAD, // 󰻫 + "stp" => Icons::CAD, // 󰻫 "sty" => Icons::LANG_TEX, //  "styl" => Icons::LANG_STYLUS, //  "stylus" => Icons::LANG_STYLUS, //  @@ -745,15 +931,20 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "sublime-snippet"=> Icons::SUBLIME, //  "sublime-theme" => Icons::SUBLIME, //  "svelte" => '\u{e697}', //  + "sv" => Icons::LANG_HDL, // 󰍛 "svg" => Icons::VECTOR, // 󰕙 + "svh" => Icons::LANG_HDL, // 󰍛 "swf" => Icons::AUDIO, //  "swift" => '\u{e755}', //  "t" => Icons::LANG_PERL, //  + "tape" => '\u{F0A1B}', // 󰨛 "tar" => Icons::COMPRESSED, //  "taz" => Icons::COMPRESSED, //  + "tbc" => '\u{f06d3}', // 󰛓 "tbz" => Icons::COMPRESSED, //  "tbz2" => Icons::COMPRESSED, //  "tc" => Icons::DISK_IMAGE, //  + "tcl" => '\u{f06d3}', // 󰛓 "tex" => Icons::LANG_TEX, //  "tf" => Icons::TERRAFORM, // 󱁢 "tfstate" => Icons::TERRAFORM, // 󱁢 @@ -763,7 +954,8 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "tiff" => Icons::IMAGE, //  "tlz" => Icons::COMPRESSED, //  "tml" => Icons::CONFIG, //  - "toml" => Icons::CONFIG, //  + "tmux" => Icons::TMUX, //  + "toml" => Icons::TOML, //  "torrent" => '\u{e275}', //  "tres" => Icons::GODOT, //  "ts" => Icons::LANG_TYPESCRIPT, //  @@ -778,17 +970,19 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "txz" => Icons::COMPRESSED, //  "tz" => Icons::COMPRESSED, //  "tzo" => Icons::COMPRESSED, //  + "ui" => '\u{f2d0}', //  "unity" => Icons::UNITY, //  "unity3d" => Icons::UNITY, //  "v" => Icons::LANG_V, //  "vdi" => Icons::DISK_IMAGE, //  "vhd" => Icons::DISK_IMAGE, //  "vhs" => '\u{F0A1B}', // 󰨛 - "tape" => '\u{F0A1B}', // 󰨛 + "vhdl" => Icons::LANG_HDL, // 󰍛 "video" => Icons::VIDEO, //  "vim" => Icons::VIM, //  "vmdk" => Icons::DISK_IMAGE, //  "vob" => Icons::VIDEO, //  + "vsix" => '\u{f0a1e}', // 󰨞 "vue" => '\u{f0844}', // 󰡄 "war" => Icons::LANG_JAVA, //  "wav" => Icons::AUDIO, //  @@ -801,18 +995,23 @@ const EXTENSION_ICONS: Map<&'static str, char> = phf_map! { "wmv" => Icons::VIDEO, //  "woff" => Icons::FONT, //  "woff2" => Icons::FONT, //  + "wrl" => Icons::FILE_3D, // 󰆧 + "wrz" => Icons::FILE_3D, // 󰆧 "wv" => Icons::AUDIO, //  + "xcf" => Icons::GIMP, //  "xci" => '\u{F07E1}', // 󰟡 - "xcf" => Icons::IMAGE, //  "xhtml" => Icons::HTML5, //  "xlr" => Icons::SHEET, //  "xls" => Icons::SHEET, //  "xlsm" => Icons::SHEET, //  "xlsx" => Icons::SHEET, //  "xml" => Icons::XML, // 󰗀 + "xpi" => '\u{eae6}', //  "xpm" => Icons::IMAGE, //  "xul" => Icons::XML, // 󰗀 "xz" => Icons::COMPRESSED, //  + "x_b" => Icons::CAD, // 󰻫 + "x_t" => Icons::CAD, // 󰻫 "yaml" => Icons::YAML, //  "yml" => Icons::YAML, //  "z" => Icons::COMPRESSED, // 