| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078 |
- // SPDX-FileCopyrightText: 2024 Christina Sørensen
- // SPDX-License-Identifier: EUPL-1.2
- //
- // SPDX-FileCopyrightText: 2023-2024 Christina Sørensen, eza contributors
- // SPDX-FileCopyrightText: 2014 Benjamin Sago
- // SPDX-License-Identifier: MIT
- use nu_ansi_term::Style;
- use phf::{phf_map, Map};
- use crate::fs::File;
- #[non_exhaustive]
- struct Icons;
- #[rustfmt::skip]
- impl Icons {
- const AUDIO: char = '\u{f001}'; //
- 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}'; //
- 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{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}'; //
- const FILE_3D: char = '\u{f01a7}'; //
- const FILE_OUTLINE: char = '\u{f016}'; //
- const FOLDER: char = '\u{e5ff}'; //
- const FOLDER_CONFIG: char = '\u{e5fc}'; //
- const FOLDER_GIT: char = '\u{e5fb}'; //
- const FOLDER_GITHUB: char = '\u{e5fd}'; //
- const FOLDER_HIDDEN: char = '\u{f179e}'; //
- const FOLDER_KEY: char = '\u{f08ac}'; //
- 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}'; //
- const LANG_CSHARP: char = '\u{f031b}'; //
- const LANG_D: char = '\u{e7af}'; //
- const LANG_ELIXIR: char = '\u{e62d}'; //
- const LANG_FENNEL: char = '\u{e6af}'; //
- const LANG_FORTRAN: char = '\u{f121a}'; //
- const LANG_FSHARP: char = '\u{e7a7}'; //
- const LANG_GLEAM: char = '\u{f09a5}'; //
- 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}'; //
- const LANG_PHP: char = '\u{e73d}'; //
- const LANG_PYTHON: char = '\u{e606}'; //
- const LANG_R: char = '\u{e68a}'; //
- const LANG_RUBY: char = '\u{e21e}'; //
- const LANG_RUBYRAILS: char = '\u{e73b}'; //
- const LANG_RUST: char = '\u{e68b}'; //
- const LANG_SASS: char = '\u{e603}'; //
- const LANG_SCHEME: char = '\u{e6b1}'; //
- const LANG_STYLUS: char = '\u{e600}'; //
- const LANG_TEX: char = '\u{e69b}'; //
- const LANG_TYPESCRIPT: char = '\u{e628}'; //
- const LANG_V: char = '\u{e6ac}'; //
- 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}'; //
- const NODEJS: char = '\u{e718}'; //
- const NPM: char = '\u{e71e}'; //
- const OS_ANDROID: char = '\u{e70e}'; //
- const OS_APPLE: char = '\u{f179}'; //
- 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 QT: char = '\u{f375}'; //
- const RAZOR: char = '\u{f1fa}'; //
- const REACT: char = '\u{e7ba}'; //
- const README: char = '\u{f00ba}'; //
- const SHEET: char = '\u{f1c3}'; //
- const SHELL: char = '\u{f1183}'; //
- const SHELL_CMD: char = '\u{f489}'; //
- const SHIELD_CHECK: char = '\u{f0565}'; //
- const SHIELD_KEY: char = '\u{f0bc4}'; //
- 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 TYPST: char = '\u{f37f}'; //
- const TMUX: char = '\u{ebc8}'; //
- const TOML: char = '\u{e6b2}'; //
- const TRANSLATION: char = '\u{f05ca}'; //
- const UNITY: char = '\u{e721}'; //
- const VECTOR: char = '\u{f0559}'; //
- const VIDEO: char = '\u{f03d}'; //
- const VIM: char = '\u{e7c5}'; //
- const WRENCH: char = '\u{f0ad}'; //
- const XML: char = '\u{f05c0}'; //
- const YAML: char = '\u{e6a8}'; //
- const YARN: char = '\u{e6a7}'; //
- }
- /// Mapping from full filenames to directory icon. This mapping should contain
- /// all the directories that have a custom icon.
- const DIRECTORY_ICONS: Map<&'static str, char> = phf_map! {
- ".config" => Icons::FOLDER_CONFIG, //
- ".git" => Icons::FOLDER_GIT, //
- ".github" => Icons::FOLDER_GITHUB, //
- ".npm" => Icons::FOLDER_NPM, //
- ".ssh" => Icons::FOLDER_KEY, //
- ".Trash" => '\u{f1f8}', //
- "config" => Icons::FOLDER_CONFIG, //
- "Contacts" => '\u{f024c}', //
- "cron.d" => Icons::FOLDER_CONFIG, //
- "cron.daily" => Icons::FOLDER_CONFIG, //
- "cron.hourly" => Icons::FOLDER_CONFIG, //
- "cron.minutely" => Icons::FOLDER_CONFIG, //
- "cron.monthly" => Icons::FOLDER_CONFIG, //
- "cron.weekly" => Icons::FOLDER_CONFIG, //
- "Desktop" => '\u{f108}', //
- "Downloads" => '\u{f024d}', //
- "etc" => Icons::FOLDER_CONFIG, //
- "Favorites" => '\u{f069d}', //
- "hidden" => Icons::FOLDER_HIDDEN, //
- "home" => '\u{f10b5}', //
- "include" => Icons::FOLDER_CONFIG, //
- "Mail" => '\u{f01f0}', //
- "Movies" => '\u{f0fce}', //
- "Music" => '\u{f1359}', //
- "node_modules" => Icons::FOLDER_NPM, //
- "npm_cache" => Icons::FOLDER_NPM, //
- "pam.d" => Icons::FOLDER_KEY, //
- "Pictures" => '\u{f024f}', //
- "ssh" => Icons::FOLDER_KEY, //
- "sudoers.d" => Icons::FOLDER_KEY, //
- "Videos" => '\u{f03d}', //
- "xbps.d" => Icons::FOLDER_CONFIG, //
- "xorg.conf.d" => Icons::FOLDER_CONFIG, //
- "hi" => Icons::BINARY, //
- "cabal" => Icons::LANG_HASKELL, //
- };
- /// 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, //
- ".clang-tidy" => Icons::CONFIG, //
- ".codespellrc" => '\u{f04c6}', //
- ".condarc" => '\u{e715}', //
- ".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, //
- ".eslintrc.yaml" => Icons::ESLINT, //
- ".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, //
- ".ideavimrc" => Icons::VIM, //
- ".inputrc" => Icons::CONFIG, //
- ".kshrc" => Icons::SHELL, //
- ".login" => Icons::SHELL, //
- ".logout" => Icons::SHELL, //
- ".luacheckrc" => Icons::CONFIG, //
- ".luaurc" => Icons::CONFIG, //
- ".nanorc" => '\u{e838}', //
- ".nuxtrc" => '\u{f1106}', //
- ".mailmap" => Icons::GIT, //
- ".node_repl_history" => Icons::NODEJS, //
- ".npmignore" => Icons::NPM, //
- ".npmrc" => Icons::NPM, //
- ".pre-commit-config.yaml" => '\u{f06e2}', //
- ".prettierrc" => '\u{e6b4}', //
- ".parentlock" => Icons::LOCK, //
- ".profile" => Icons::SHELL, //
- ".pylintrc" => Icons::CONFIG, //
- ".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, //
- ".Xauthority" => Icons::CONFIG, //
- ".xinitrc" => Icons::CONFIG, //
- ".Xresources" => Icons::CONFIG, //
- ".yarnrc" => Icons::YARN, //
- ".zlogin" => Icons::SHELL, //
- ".zlogout" => Icons::SHELL, //
- ".zprofile" => Icons::SHELL, //
- ".zshenv" => Icons::SHELL, //
- ".zshrc" => Icons::SHELL, //
- ".zsh_history" => Icons::SHELL, //
- ".zsh_sessions" => Icons::SHELL, //
- "._DS_Store" => Icons::OS_APPLE, //
- "a.out" => Icons::SHELL_CMD, //
- "authorized_keys" => '\u{f08c0}', //
- "AUTHORS" => '\u{edca}', //
- "AUTHORS.txt" => '\u{edca}', //
- "bashrc" => Icons::SHELL, //
- "bspwmrc" => '\u{f355}', //
- "build.gradle.kts" => Icons::GRADLE, //
- "build.zig.zon" => '\u{e6a9}', //
- "bun.lockb" => '\u{e76f}', //
- "cantorrc" => '\u{f373}', //
- "Cargo.lock" => Icons::LANG_RUST, //
- "Cargo.toml" => Icons::LANG_RUST, //
- "CMakeLists.txt" => '\u{e794}', //
- "CODE_OF_CONDUCT" => '\u{f4ae}', //
- "CODE_OF_CONDUCT.md" => '\u{f4ae}', //
- "composer.json" => Icons::LANG_PHP, //
- "composer.lock" => Icons::LANG_PHP, //
- "config" => Icons::CONFIG, //
- "config.status" => Icons::CONFIG, //
- "configure" => Icons::WRENCH, //
- "configure.ac" => Icons::CONFIG, //
- "configure.in" => Icons::CONFIG, //
- "constraints.txt" => Icons::LANG_PYTHON, //
- "COPYING" => Icons::LICENSE, //
- "COPYRIGHT" => Icons::LICENSE, //
- "crontab" => Icons::CONFIG, //
- "crypttab" => Icons::CONFIG, //
- "csh.cshrc" => Icons::SHELL, //
- "csh.login" => Icons::SHELL, //
- "csh.logout" => Icons::SHELL, //
- "docker-compose.yml" => Icons::DOCKER, //
- "Dockerfile" => Icons::DOCKER, //
- "compose.yaml" => Icons::DOCKER, //
- "compose.yml" => Icons::DOCKER, //
- "docker-compose.yaml" => Icons::DOCKER, //
- "dune" => Icons::LANG_OCAML, //
- "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, //
- "go.work" => Icons::LANG_GO, //
- "gradle" => Icons::GRADLE, //
- "gradle.properties" => Icons::GRADLE, //
- "gradlew" => Icons::GRADLE, //
- "gradlew.bat" => Icons::GRADLE, //
- "group" => Icons::LOCK, //
- "gruntfile.coffee" => Icons::GRUNT, //
- "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, //
- "id_ed25519" => Icons::PRIVATE_KEY, //
- "id_ed25519_sk" => Icons::PRIVATE_KEY, //
- "id_rsa" => Icons::PRIVATE_KEY, //
- "index.theme" => '\u{ee72}', //
- "inputrc" => Icons::CONFIG, //
- "Jenkinsfile" => '\u{e66e}', //
- "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, //
- "LICENSE" => Icons::LICENSE, //
- "LICENSE-APACHE" => Icons::LICENSE, //
- "LICENSE-MIT" => Icons::LICENSE, //
- "LICENSE.md" => Icons::LICENSE, //
- "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, //
- "Makefile.am" => Icons::MAKE, //
- "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, //
- "package.json" => Icons::NPM, //
- "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, //
- "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, //
- "zprofile" => Icons::SHELL, //
- "zshenv" => Icons::SHELL, //
- "zshrc" => Icons::SHELL, //
- };
- /// 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, //
- "aac" => Icons::AUDIO, //
- "acf" => '\u{f1b6}', //
- "age" => Icons::SHIELD_LOCK, //
- "ai" => '\u{e7b4}', //
- "aif" => Icons::AUDIO, //
- "aifc" => Icons::AUDIO, //
- "aiff" => Icons::AUDIO, //
- "alac" => Icons::AUDIO, //
- "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, //
- "arw" => Icons::IMAGE, //
- "asc" => Icons::SHIELD_LOCK, //
- "asm" => Icons::LANG_ASSEMBLY, //
- "asp" => '\u{f121}', //
- "ass" => Icons::SUBTITLE, //
- "avi" => Icons::VIDEO, //
- "avif" => Icons::IMAGE, //
- "avro" => Icons::JSON, //
- "awk" => Icons::SHELL_CMD, //
- "bash" => Icons::SHELL_CMD, //
- "bat" => Icons::OS_WINDOWS_CMD, //
- "bats" => Icons::SHELL_CMD, //
- "bdf" => Icons::FONT, //
- "bib" => Icons::LANG_TEX, //
- "bin" => Icons::BINARY, //
- "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, //
- "bz2" => Icons::COMPRESSED, //
- "bz3" => Icons::COMPRESSED, //
- "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, //
- "cert" => Icons::GIST_SECRET, //
- "cfg" => Icons::CONFIG, //
- "cjs" => Icons::LANG_JAVASCRIPT, //
- "class" => Icons::LANG_JAVA, //
- "clj" => '\u{e768}', //
- "cljs" => '\u{e76a}', //
- "cls" => Icons::LANG_TEX, //
- "cmake" => '\u{e794}', //
- "cmd" => Icons::OS_WINDOWS, //
- "coffee" => '\u{f0f4}', //
- "com" => Icons::OS_WINDOWS_CMD, //
- "conda" => '\u{e715}', //
- "conf" => Icons::CONFIG, //
- "config" => Icons::CONFIG, //
- "cow" => '\u{f019a}', //
- "cp" => Icons::LANG_CPP, //
- "cpio" => Icons::COMPRESSED, //
- "cpp" => Icons::LANG_CPP, //
- "cr" => '\u{e62f}', //
- "cr2" => Icons::IMAGE, //
- "crdownload" => Icons::DOWNLOAD, //
- "crt" => Icons::GIST_SECRET, //
- "cs" => Icons::LANG_CSHARP, //
- "csh" => Icons::SHELL_CMD, //
- "cshtml" => Icons::RAZOR, //
- "csproj" => Icons::LANG_CSHARP, //
- "css" => Icons::CSS3, //
- "csv" => Icons::SHEET, //
- "csx" => Icons::LANG_CSHARP, //
- "cts" => Icons::LANG_TYPESCRIPT, //
- "cu" => '\u{e64b}', //
- "cue" => Icons::PLAYLIST, //
- "cxx" => Icons::LANG_CPP, //
- "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, //
- "diff" => Icons::DIFF, //
- "djv" => Icons::DOCUMENT, //
- "djvu" => Icons::DOCUMENT, //
- "dll" => Icons::LIBRARY, //
- "dmg" => Icons::DISK_IMAGE, //
- "doc" => Icons::DOCUMENT, //
- "docm" => Icons::DOCUMENT, //
- "docx" => Icons::DOCUMENT, //
- "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" => '\u{e652}', //
- "ejs" => '\u{e618}', //
- "el" => Icons::EMACS, //
- "elc" => Icons::EMACS, //
- "elf" => Icons::BINARY, //
- "elm" => '\u{e62c}', //
- "eml" => '\u{f003}', //
- "env" => '\u{f462}', //
- "eot" => Icons::FONT, //
- "eps" => Icons::VECTOR, //
- "epub" => Icons::BOOK, //
- "erb" => Icons::LANG_RUBYRAILS, //
- "erl" => '\u{e7b1}', //
- "ex" => Icons::LANG_ELIXIR, //
- "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, //
- "fodg" => '\u{f379}', //
- "fodp" => '\u{f37a}', //
- "fods" => '\u{f378}', //
- "fodt" => '\u{f37c}', //
- "fon" => Icons::FONT, //
- "font" => Icons::FONT, //
- "for" => Icons::LANG_FORTRAN, //
- "fs" => Icons::LANG_FSHARP, //
- "fsi" => Icons::LANG_FSHARP, //
- "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, //
- "gem" => Icons::LANG_RUBY, //
- "gemfile" => Icons::LANG_RUBY, //
- "gemspec" => Icons::LANG_RUBY, //
- "gform" => '\u{f298}', //
- "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" => Icons::GRAPH, //
- "gvy" => Icons::LANG_GROOVY, //
- "gz" => Icons::COMPRESSED, //
- "h" => Icons::LANG_C, //
- "h++" => Icons::LANG_CPP, //
- "h264" => Icons::VIDEO, //
- "haml" => '\u{e664}', //
- "hbs" => Icons::MUSTACHE, //
- "hc" => Icons::LANG_HOLYC, //
- "heic" => Icons::IMAGE, //
- "heics" => Icons::VIDEO, //
- "heif" => Icons::IMAGE, //
- "hex" => '\u{f12a7}', //
- "hh" => Icons::LANG_CPP, //
- "hpp" => Icons::LANG_CPP, //
- "hs" => Icons::LANG_HASKELL, //
- "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, //
- "ipynb" => '\u{e80f}', //
- "ino" => Icons::LANG_ARDUINO, //
- "ipt" => Icons::CAD, //
- "iso" => Icons::DISK_IMAGE, //
- "j2c" => Icons::IMAGE, //
- "j2k" => Icons::IMAGE, //
- "jad" => Icons::LANG_JAVA, //
- "jar" => Icons::LANG_JAVA, //
- "java" => Icons::LANG_JAVA, //
- "jwmrc" => '\u{f35b}', //
- "jfi" => Icons::IMAGE, //
- "jfif" => Icons::IMAGE, //
- "jif" => Icons::IMAGE, //
- "jl" => '\u{e624}', //
- "jmd" => Icons::MARKDOWN, //
- "jp2" => Icons::IMAGE, //
- "jpe" => Icons::IMAGE, //
- "jpeg" => Icons::IMAGE, //
- "jpf" => Icons::IMAGE, //
- "jpg" => Icons::IMAGE, //
- "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" => Icons::LOG, //
- "lpp" => Icons::EDA_PCB, //
- "lrc" => Icons::SUBTITLE, //
- "ltx" => Icons::LANG_TEX, //
- "lua" => Icons::LANG_LUA, //
- "luac" => Icons::LANG_LUA, //
- "luau" => Icons::LANG_LUA, //
- "lz" => Icons::COMPRESSED, //
- "lz4" => Icons::COMPRESSED, //
- "lzh" => Icons::COMPRESSED, //
- "lzma" => Icons::COMPRESSED, //
- "lzo" => Icons::COMPRESSED, //
- "m" => Icons::LANG_C, //
- "m2ts" => Icons::VIDEO, //
- "m2v" => Icons::VIDEO, //
- "m3u" => Icons::PLAYLIST, //
- "m3u8" => Icons::PLAYLIST, //
- "m4a" => Icons::AUDIO, //
- "m4v" => Icons::VIDEO, //
- "magnet" => '\u{f076}', //
- "markdown" => Icons::MARKDOWN, //
- "md" => Icons::MARKDOWN, //
- "md5" => Icons::SHIELD_CHECK, //
- "mdb" => Icons::DATABASE, //
- "mid" => '\u{f08f2}', //
- "mjs" => Icons::LANG_JAVASCRIPT, //
- "mk" => Icons::MAKE, //
- "mka" => Icons::AUDIO, //
- "mkd" => Icons::MARKDOWN, //
- "mkv" => Icons::VIDEO, //
- "ml" => Icons::LANG_OCAML, //
- "mli" => Icons::LANG_OCAML, //
- "mll" => Icons::LANG_OCAML, //
- "mly" => Icons::LANG_OCAML, //
- "mm" => Icons::LANG_CPP, //
- "mo" => Icons::TRANSLATION, //
- "mobi" => Icons::BOOK, //
- "mov" => Icons::VIDEO, //
- "mp2" => Icons::AUDIO, //
- "mp3" => Icons::AUDIO, //
- "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, //
- "ninja" => '\u{f0774}', //
- "nix" => '\u{f313}', //
- "node" => Icons::NODEJS, //
- "nsp" => '\u{F07E1}', //
- "nu" => Icons::SHELL_CMD, //
- "o" => Icons::BINARY, //
- "obj" => Icons::FILE_3D, //
- "odb" => Icons::DATABASE, //
- "odf" => '\u{f37b}', //
- "odg" => '\u{f379}', //
- "odp" => '\u{f37a}', //
- "ods" => '\u{f378}', //
- "odt" => '\u{f37c}', //
- "ogg" => Icons::AUDIO, //
- "ogm" => Icons::VIDEO, //
- "ogv" => Icons::VIDEO, //
- "opml" => Icons::XML, //
- "opus" => Icons::AUDIO, //
- "orf" => Icons::IMAGE, //
- "org" => '\u{e633}', //
- "otf" => Icons::FONT, //
- "out" => '\u{eb2c}', //
- "p12" => Icons::KEY, //
- "par" => Icons::COMPRESSED, //
- "part" => Icons::DOWNLOAD, //
- "patch" => Icons::DIFF, //
- "pbm" => Icons::IMAGE, //
- "pcbdoc" => Icons::EDA_PCB, //
- "pcm" => Icons::AUDIO, //
- "pdf" => '\u{f1c1}', //
- "pem" => Icons::KEY, //
- "pfx" => Icons::KEY, //
- "pgm" => Icons::IMAGE, //
- "phar" => Icons::LANG_PHP, //
- "php" => Icons::LANG_PHP, //
- "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, //
- "ps1" => Icons::POWERSHELL, //
- "psd" => '\u{e7b8}', //
- "psd1" => Icons::POWERSHELL, //
- "psf" => Icons::FONT, //
- "psm" => Icons::CAD, //
- "psm1" => Icons::POWERSHELL, //
- "pub" => Icons::PUBLIC_KEY, //
- "purs" => '\u{e630}', //
- "pxm" => Icons::IMAGE, //
- "py" => Icons::LANG_PYTHON, //
- "pyc" => Icons::LANG_PYTHON, //
- "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, //
- "razor" => Icons::RAZOR, //
- "rb" => Icons::LANG_RUBY, //
- "rdata" => Icons::LANG_R, //
- "rdb" => '\u{e76d}', //
- "rdoc" => Icons::MARKDOWN, //
- "rds" => Icons::LANG_R, //
- "readme" => Icons::README, //
- "rkt" => Icons::LANG_SCHEME, //
- "rlib" => Icons::LANG_RUST, //
- "rmd" => Icons::MARKDOWN, //
- "rmeta" => Icons::LANG_RUST, //
- "rpm" => '\u{e7bb}', //
- "rs" => Icons::LANG_RUST, //
- "rspec" => Icons::LANG_RUBY, //
- "rspec_parallel" => Icons::LANG_RUBY, //
- "rspec_status" => Icons::LANG_RUBY, //
- "rss" => '\u{f09e}', //
- "rst" => Icons::TEXT, //
- "rtf" => Icons::TEXT, //
- "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, //
- "sha256" => Icons::SHIELD_CHECK, //
- "sha384" => Icons::SHIELD_CHECK, //
- "sha512" => Icons::SHIELD_CHECK, //
- "shell" => Icons::SHELL_CMD, //
- "shtml" => Icons::HTML5, //
- "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, //
- "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, //
- "sub" => Icons::SUBTITLE, //
- "sublime-build" => Icons::SUBLIME, //
- "sublime-keymap" => Icons::SUBLIME, //
- "sublime-menu" => Icons::SUBLIME, //
- "sublime-options"=> Icons::SUBLIME, //
- "sublime-package"=> Icons::SUBLIME, //
- "sublime-project"=> Icons::SUBLIME, //
- "sublime-session"=> Icons::SUBLIME, //
- "sublime-settings"=>Icons::SUBLIME, //
- "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, //
- "tfvars" => Icons::TERRAFORM, //
- "tgz" => Icons::COMPRESSED, //
- "tif" => Icons::IMAGE, //
- "tiff" => Icons::IMAGE, //
- "tlz" => Icons::COMPRESSED, //
- "tml" => Icons::CONFIG, //
- "tmux" => Icons::TMUX, //
- "toml" => Icons::TOML, //
- "torrent" => '\u{e275}', //
- "tres" => Icons::GODOT, //
- "ts" => Icons::LANG_TYPESCRIPT, //
- "tscn" => Icons::GODOT, //
- "tsv" => Icons::SHEET, //
- "tsx" => Icons::REACT, //
- "ttc" => Icons::FONT, //
- "ttf" => Icons::FONT, //
- "twig" => '\u{e61c}', //
- "txt" => Icons::TEXT, //
- "typ" => Icons::TYPST, //
- "txz" => Icons::COMPRESSED, //
- "tz" => Icons::COMPRESSED, //
- "tzo" => Icons::COMPRESSED, //
- "ui" => '\u{f2d0}', //
- "unity" => Icons::UNITY, //
- "unity3d" => Icons::UNITY, //
- "v" => Icons::LANG_V, //
- "vala" => '\u{e8d1}', //
- "vdi" => Icons::DISK_IMAGE, //
- "vhd" => Icons::DISK_IMAGE, //
- "vhs" => '\u{F0A1B}', //
- "vi" => '\u{e81e}', //
- "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, //
- "webm" => Icons::VIDEO, //
- "webmanifest" => Icons::JSON, //
- "webp" => Icons::IMAGE, //
- "whl" => Icons::LANG_PYTHON, //
- "windows" => Icons::OS_WINDOWS, //
- "wma" => Icons::AUDIO, //
- "wmv" => Icons::VIDEO, //
- "woff" => Icons::FONT, //
- "woff2" => Icons::FONT, //
- "wrl" => Icons::FILE_3D, //
- "wrz" => Icons::FILE_3D, //
- "wv" => Icons::AUDIO, //
- "xaml" => '\u{f0673}', //
- "xcf" => Icons::GIMP, //
- "xci" => '\u{F07E1}', //
- "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, //
- "zig" => '\u{e6a9}', //
- "zip" => Icons::COMPRESSED, //
- "zsh" => Icons::SHELL_CMD, //
- "zsh-theme" => Icons::SHELL, //
- "zst" => Icons::COMPRESSED, //
- "z64" => '\u{f1393}', //
- };
- /// Converts the style used to paint a file name into the style that should be
- /// used to paint an icon.
- ///
- /// - The background colour should be preferred to the foreground colour, as
- /// if one is set, it’s the more “obvious” colour choice.
- /// - If neither is set, just use the default style.
- /// - Attributes such as bold or underline should not be used to paint the
- /// icon, as they can make it look weird.
- pub fn iconify_style(style: Style) -> Style {
- style
- .background
- .or(style.foreground)
- .map(Style::from)
- .unwrap_or_default()
- }
- /// Lookup the icon for a file based on the file's name, if the entry is a
- /// directory, or by the lowercase file extension.
- pub fn icon_for_file(file: &File<'_>) -> char {
- if file.points_to_directory() {
- *DIRECTORY_ICONS.get(file.name.as_str()).unwrap_or_else(|| {
- if file.is_empty_dir() {
- &Icons::FOLDER_OPEN //
- } else {
- &Icons::FOLDER //
- }
- })
- } else if let Some(icon) = FILENAME_ICONS.get(file.name.as_str()) {
- *icon
- } else if let Some(ext) = file.ext.as_ref() {
- *EXTENSION_ICONS.get(ext.as_str()).unwrap_or(&Icons::FILE) //
- } else {
- Icons::FILE_OUTLINE //
- }
- }
|