mirror of
https://github.com/lsd-rs/lsd
synced 2025-03-04 23:17:15 +00:00
🔨 theme: move default icon to icon theme
This commit is contained in:
parent
439b641fbf
commit
b209c6f7f1
2 changed files with 414 additions and 424 deletions
436
src/icon.rs
436
src/icon.rs
|
@ -1,20 +1,14 @@
|
|||
use crate::meta::{FileType, Name};
|
||||
use std::collections::HashMap;
|
||||
|
||||
use crate::meta::{FileType, Name};
|
||||
use crate::flags::IconOption;
|
||||
use crate::theme::{Theme, icon::IconTheme};
|
||||
|
||||
pub struct Icons {
|
||||
display_icons: bool,
|
||||
icons_by_name: HashMap<&'static str, &'static str>,
|
||||
icons_by_extension: HashMap<&'static str, &'static str>,
|
||||
default_folder_icon: &'static str,
|
||||
default_file_icon: &'static str,
|
||||
icon_separator: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
|
||||
pub enum Theme {
|
||||
NoIcon,
|
||||
Fancy,
|
||||
Unicode,
|
||||
theme: IconTheme,
|
||||
}
|
||||
|
||||
// In order to add a new icon, write the unicode value like "\ue5fb" then
|
||||
|
@ -22,32 +16,13 @@ pub enum Theme {
|
|||
//
|
||||
// s#\\u[0-9a-f]*#\=eval('"'.submatch(0).'"')#
|
||||
impl Icons {
|
||||
pub fn new(theme: Theme, icon_separator: String) -> Self {
|
||||
let display_icons = matches!(theme, Theme::Fancy | Theme::Unicode);
|
||||
let (icons_by_name, icons_by_extension, default_file_icon, default_folder_icon) =
|
||||
if theme == Theme::Fancy {
|
||||
(
|
||||
Self::get_default_icons_by_name(),
|
||||
Self::get_default_icons_by_extension(),
|
||||
"\u{f016}", //
|
||||
"\u{f115}", //
|
||||
)
|
||||
} else {
|
||||
(
|
||||
HashMap::new(),
|
||||
HashMap::new(),
|
||||
"\u{1f5cb}", // 🗋
|
||||
"\u{1f5c1}", // 🗁
|
||||
)
|
||||
};
|
||||
pub fn new(opt: IconOption, icon_separator: String) -> Self {
|
||||
let display_icons = !(opt == IconOption::Never); // TODO(zwpaper): Auto
|
||||
|
||||
Self {
|
||||
display_icons,
|
||||
icons_by_name,
|
||||
icons_by_extension,
|
||||
default_file_icon,
|
||||
default_folder_icon,
|
||||
icon_separator,
|
||||
theme: Theme::default().icon,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -69,6 +44,7 @@ impl Icons {
|
|||
_ => {
|
||||
// Use the known names
|
||||
if let Some(icon) = self
|
||||
.theme
|
||||
.icons_by_name
|
||||
.get(name.file_name().to_lowercase().as_str())
|
||||
{
|
||||
|
@ -76,18 +52,19 @@ impl Icons {
|
|||
}
|
||||
// Use the known extensions
|
||||
else if let Some(icon) = name.extension().and_then(|extension| {
|
||||
self.icons_by_extension
|
||||
self.theme
|
||||
.icons_by_extension
|
||||
.get(extension.to_lowercase().as_str())
|
||||
}) {
|
||||
icon
|
||||
} else {
|
||||
match file_type {
|
||||
FileType::Directory { .. } => self.default_folder_icon,
|
||||
FileType::Directory { .. } => &self.theme.default_folder_icon,
|
||||
// If a file has no extension and is executable, show an icon.
|
||||
// Except for Windows, it marks everything as an executable.
|
||||
#[cfg(not(windows))]
|
||||
FileType::File { exec: true, .. } => "\u{f489}", // ""
|
||||
_ => self.default_file_icon,
|
||||
_ => &self.theme.default_file_icon,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -95,391 +72,6 @@ impl Icons {
|
|||
|
||||
format!("{}{}", icon, self.icon_separator)
|
||||
}
|
||||
|
||||
fn get_default_icons_by_name() -> HashMap<&'static str, &'static str> {
|
||||
// Note: filenames must be lower-case
|
||||
HashMap::from([
|
||||
(".trash", "\u{f1f8}"), // ""
|
||||
(".atom", "\u{e764}"), // ""
|
||||
(".bash_profile", "\u{e615}"), // ""
|
||||
(".bash_logout", "\u{e615}"), // ""
|
||||
(".bashrc", "\u{f489}"), // ""
|
||||
(".cargo", "\u{e7a8}"), // ""
|
||||
(".clang-format", "\u{e615}"), // ""
|
||||
(".config", "\u{e5fc}"), // ""
|
||||
(".emacs.d", "\u{e779}"), // ""
|
||||
(".doom.d", "\u{e779}"), // ""
|
||||
(".git", "\u{e5fb}"), // ""
|
||||
(".git-credentials", "\u{e60a}"), // ""
|
||||
(".gitattributes", "\u{f1d3}"), // ""
|
||||
(".gitconfig", "\u{f1d3}"), // ""
|
||||
(".github", "\u{e5fd}"), // ""
|
||||
(".gitignore", "\u{f1d3}"), // ""
|
||||
(".gitlab-ci.yml", "\u{f296}"), // ""
|
||||
(".gitmodules", "\u{f1d3}"), // ""
|
||||
(".htaccess", "\u{e615}"), // ""
|
||||
(".htpasswd", "\u{e615}"), // ""
|
||||
(".inputrc", "\u{e615}"), // ""
|
||||
(".node_repl_history", "\u{e718}"), // ""
|
||||
(".npm", "\u{e5fa}"), // ""
|
||||
(".profile", "\u{f68c}"), // ""
|
||||
(".python_history", "\u{e606}"), // ""
|
||||
(".release.toml", "\u{e7a8}"), // ""
|
||||
(".rvm", "\u{e21e}"), // ""
|
||||
(".ssh", "\u{f023}"), // ""
|
||||
(".vim", "\u{e62b}"), // ""
|
||||
(".vimrc", "\u{e62b}"), // ""
|
||||
(".viminfo", "\u{e62b}"), // ""
|
||||
(".vscode", "\u{e70c}"), // ""
|
||||
(".xauthority", "\u{e615}"), // ""
|
||||
(".xinitrc", "\u{e615}"), // ""
|
||||
(".xresources", "\u{e615}"), // ""
|
||||
(".zshrc", "\u{f489}"), // ""
|
||||
(".zsh_history", "\u{e615}"), // ""
|
||||
("a.out", "\u{f489}"), // ""
|
||||
("authorized_keys", "\u{e60a}"), // ""
|
||||
("bin", "\u{e5fc}"), // ""
|
||||
("bspwmrc", "\u{e615}"), // ""
|
||||
("cargo.toml", "\u{e7a8}"), // ""
|
||||
("cargo.lock", "\u{e7a8}"), // ""
|
||||
("changelog", "\u{e609}"), // ""
|
||||
("composer.json", "\u{e608}"), // ""
|
||||
("config", "\u{e5fc}"), // ""
|
||||
("config.ac", "\u{e615}"), // ""
|
||||
("config.mk", "\u{e615}"), // ""
|
||||
("config.el", "\u{e779}"), // ""
|
||||
("custom.el", "\u{e779}"), // ""
|
||||
("contributing", "\u{e60a}"), // ""
|
||||
("cron.d", "\u{e5fc}"), // ""
|
||||
("cron.daily", "\u{e5fc}"), // ""
|
||||
("cron.hourly", "\u{e5fc}"), // ""
|
||||
("cron.weekly", "\u{e5fc}"), // ""
|
||||
("cron.monthly", "\u{e5fc}"), // ""
|
||||
("crontab", "\u{e615}"), // ""
|
||||
("crypttab", "\u{e615}"), // ""
|
||||
("desktop", "\u{f108}"), // ""
|
||||
("downloads", "\u{f498}"), // ""
|
||||
("docker-compose.yml", "\u{f308}"), // ""
|
||||
("dockerfile", "\u{f308}"), // ""
|
||||
("documents", "\u{f02d}"), // ""
|
||||
(".ds_store", "\u{f179}"), // ""
|
||||
("etc", "\u{e5fc}"), // ""
|
||||
("favicon.ico", "\u{f005}"), // ""
|
||||
("fstab", "\u{f1c0}"), // ""
|
||||
("gitignore_global", "\u{f1d3}"), // ""
|
||||
("gradle", "\u{e70e}"), // ""
|
||||
("group", "\u{e615}"), // ""
|
||||
("gruntfile.coffee", "\u{e611}"), // ""
|
||||
("gruntfile.js", "\u{e611}"), // ""
|
||||
("gruntfile.ls", "\u{e611}"), // ""
|
||||
("gshadow", "\u{e615}"), // ""
|
||||
("gulpfile.coffee", "\u{e610}"), // ""
|
||||
("gulpfile.js", "\u{e610}"), // ""
|
||||
("gulpfile.ls", "\u{e610}"), // ""
|
||||
("hidden", "\u{f023}"), // ""
|
||||
("hosts", "\u{f502}"), // ""
|
||||
("htoprc", "\u{e615}"), // ""
|
||||
("include", "\u{e5fc}"), // ""
|
||||
("init.el", "\u{e779}"), // ""
|
||||
("known_hosts", "\u{e60a}"), // ""
|
||||
("lib", "\u{f121}"), // ""
|
||||
("license", "\u{e60a}"), // ""
|
||||
("license.md", "\u{e60a}"), // ""
|
||||
("license.txt", "\u{e60a}"), // ""
|
||||
("localized", "\u{f179}"), // ""
|
||||
("mail", "\u{f6ef}"), // ""
|
||||
("makefile", "\u{e615}"), // ""
|
||||
("makefile.ac", "\u{e615}"), // ""
|
||||
("music", "\u{f025}"), // ""
|
||||
("muttrc", "\u{e615}"), // ""
|
||||
("node_modules", "\u{e5fa}"), // ""
|
||||
("npmignore", "\u{e71e}"), // ""
|
||||
("package.json", "\u{e718}"), // ""
|
||||
("packages.el", "\u{e779}"), // ""
|
||||
("package-lock.json", "\u{e718}"), // ""
|
||||
("passwd", "\u{f023}"), // ""
|
||||
("pictures", "\u{f03e}"), // ""
|
||||
("profile", "\u{e615}"), // ""
|
||||
("readme", "\u{e609}"), // ""
|
||||
("rc.lua", "\u{e615}"), // ""
|
||||
("rubydoc", "\u{e73b}"), // ""
|
||||
("robots.txt", "\u{fba7}"), // "ﮧ"
|
||||
("root", "\u{f023}"), // ""
|
||||
("shadow", "\u{e615}"), // ""
|
||||
("shells", "\u{e615}"), // ""
|
||||
("sudoers", "\u{f023}"), // ""
|
||||
("sxhkdrc", "\u{e615}"), // ""
|
||||
("tigrc", "\u{e615}"), // ""
|
||||
("vagrantfile", "\u{e615}"), // ""
|
||||
("videos", "\u{f03d}"), // ""
|
||||
("hostname", "\u{e615}"), // ""
|
||||
("webpack.config.js", "\u{fc29}"), // "ﰩ"
|
||||
("xmonad.hs", "\u{e615}"), // ""
|
||||
("xorg.conf.d", "\u{e5fc}"), // ""
|
||||
("xbps.d", "\u{e5fc}"), // ""
|
||||
])
|
||||
}
|
||||
|
||||
fn get_default_icons_by_extension() -> HashMap<&'static str, &'static str> {
|
||||
// Note: extensions must be lower-case
|
||||
HashMap::from([
|
||||
("1", "\u{f02d}"), // ""
|
||||
("7z", "\u{f410}"), // ""
|
||||
("a", "\u{e624}"), // ""
|
||||
("ai", "\u{e7b4}"), // ""
|
||||
("ape", "\u{f001}"), // ""
|
||||
("apk", "\u{e70e}"), // ""
|
||||
("asc", "\u{f023}"), // ""
|
||||
("asm", "\u{e614}"), // ""
|
||||
("asp", "\u{f121}"), // ""
|
||||
("avi", "\u{f008}"), // ""
|
||||
("avro", "\u{e60b}"), // ""
|
||||
("awk", "\u{f489}"), // ""
|
||||
("bash", "\u{f489}"), // ""
|
||||
("bash_history", "\u{f489}"), // ""
|
||||
("bash_profile", "\u{f489}"), // ""
|
||||
("bashrc", "\u{f489}"), // ""
|
||||
("bat", "\u{f17a}"), // ""
|
||||
("bin", "\u{f489}"), // ""
|
||||
("bio", "\u{f910}"), // "蘿"
|
||||
("bmp", "\u{f1c5}"), // ""
|
||||
("bz2", "\u{f410}"), // ""
|
||||
("c", "\u{e61e}"), // ""
|
||||
("c++", "\u{e61d}"), // ""
|
||||
("cc", "\u{e61d}"), // ""
|
||||
("cfg", "\u{e615}"), // ""
|
||||
("cl", "\u{f671}"), // ""
|
||||
("class", "\u{e738}"), // ""
|
||||
("clj", "\u{e768}"), // ""
|
||||
("cljs", "\u{e76a}"), // ""
|
||||
("cls", "\u{e600}"), // ""
|
||||
("coffee", "\u{f0f4}"), // ""
|
||||
("conf", "\u{e615}"), // ""
|
||||
("cp", "\u{e61d}"), // ""
|
||||
("cpp", "\u{e61d}"), // ""
|
||||
("cs", "\u{f81a}"), // ""
|
||||
("cshtml", "\u{f1fa}"), // ""
|
||||
("csproj", "\u{f81a}"), // ""
|
||||
("csx", "\u{f81a}"), // ""
|
||||
("csh", "\u{f489}"), // ""
|
||||
("css", "\u{e749}"), // ""
|
||||
("csv", "\u{f1c3}"), // ""
|
||||
("cue", "\u{f001}"), // ""
|
||||
("cxx", "\u{e61d}"), // ""
|
||||
("dart", "\u{e798}"), // ""
|
||||
("db", "\u{f1c0}"), // ""
|
||||
("deb", "\u{f187}"), // ""
|
||||
("desktop", "\u{f108}"), // ""
|
||||
("diff", "\u{e728}"), // ""
|
||||
("dll", "\u{f17a}"), // ""
|
||||
("doc", "\u{f1c2}"), // ""
|
||||
("dockerfile", "\u{f308}"), // ""
|
||||
("docx", "\u{f1c2}"), // ""
|
||||
("ds_store", "\u{f179}"), // ""
|
||||
("dump", "\u{f1c0}"), // ""
|
||||
("ebook", "\u{e28b}"), // ""
|
||||
("editorconfig", "\u{e615}"), // ""
|
||||
("ejs", "\u{e618}"), // ""
|
||||
("el", "\u{f671}"), // ""
|
||||
("elc", "\u{f671}"), // ""
|
||||
("elf", "\u{f489}"), // ""
|
||||
("elm", "\u{e62c}"), // ""
|
||||
("env", "\u{f462}"), // ""
|
||||
("eot", "\u{f031}"), // ""
|
||||
("epub", "\u{e28a}"), // ""
|
||||
("erb", "\u{e73b}"), // ""
|
||||
("erl", "\u{e7b1}"), // ""
|
||||
("exe", "\u{f17a}"), // ""
|
||||
("ex", "\u{e62d}"), // ""
|
||||
("exs", "\u{e62d}"), // ""
|
||||
("fish", "\u{f489}"), // ""
|
||||
("flac", "\u{f001}"), // ""
|
||||
("flv", "\u{f008}"), // ""
|
||||
("font", "\u{f031}"), // ""
|
||||
("fpl", "\u{f910}"), // "蘿"
|
||||
("fs", "\u{e7a7}"), // ""
|
||||
("fsx", "\u{e7a7}"), // ""
|
||||
("fsi", "\u{e7a7}"), // ""
|
||||
("gdoc", "\u{f1c2}"), // ""
|
||||
("gemfile", "\u{e21e}"), // ""
|
||||
("gemspec", "\u{e21e}"), // ""
|
||||
("gform", "\u{f298}"), // ""
|
||||
("gif", "\u{f1c5}"), // ""
|
||||
("git", "\u{f1d3}"), // ""
|
||||
("go", "\u{e627}"), // ""
|
||||
("gradle", "\u{e70e}"), // ""
|
||||
("gsheet", "\u{f1c3}"), // ""
|
||||
("gslides", "\u{f1c4}"), // ""
|
||||
("guardfile", "\u{e21e}"), // ""
|
||||
("gz", "\u{f410}"), // ""
|
||||
("h", "\u{f0fd}"), // ""
|
||||
("hbs", "\u{e60f}"), // ""
|
||||
("heic", "\u{f1c5}"), // ""
|
||||
("heif", "\u{f1c5}"), // ""
|
||||
("heix", "\u{f1c5}"), // ""
|
||||
("hpp", "\u{f0fd}"), // ""
|
||||
("hs", "\u{e777}"), // ""
|
||||
("htm", "\u{f13b}"), // ""
|
||||
("html", "\u{f13b}"), // ""
|
||||
("hxx", "\u{f0fd}"), // ""
|
||||
("ico", "\u{f1c5}"), // ""
|
||||
("image", "\u{f1c5}"), // ""
|
||||
("img", "\u{f1c0}"), // ""
|
||||
("iml", "\u{e7b5}"), // ""
|
||||
("ini", "\u{e615}"), // ""
|
||||
("ipynb", "\u{e606}"), // ""
|
||||
("iso", "\u{f1c0}"), // ""
|
||||
("jar", "\u{e738}"), // ""
|
||||
("java", "\u{e738}"), // ""
|
||||
("jpeg", "\u{f1c5}"), // ""
|
||||
("jpg", "\u{f1c5}"), // ""
|
||||
("js", "\u{e74e}"), // ""
|
||||
("json", "\u{e60b}"), // ""
|
||||
("jsx", "\u{e7ba}"), // ""
|
||||
("jl", "\u{e624}"), // ""
|
||||
("key", "\u{e60a}"), // ""
|
||||
("ksh", "\u{f489}"), // ""
|
||||
("ld", "\u{e624}"), // ""
|
||||
("ldb", "\u{f1c0}"), // ""
|
||||
("less", "\u{e758}"), // ""
|
||||
("lhs", "\u{e777}"), // ""
|
||||
("license", "\u{e60a}"), // ""
|
||||
("lisp", "\u{f671}"), // ""
|
||||
("localized", "\u{f179}"), // ""
|
||||
("lock", "\u{f023}"), // ""
|
||||
("log", "\u{f18d}"), // ""
|
||||
("lua", "\u{e620}"), // ""
|
||||
("lz", "\u{f410}"), // ""
|
||||
("m3u", "\u{f910}"), // "蘿"
|
||||
("m3u8", "\u{f910}"), // "蘿"
|
||||
("m4a", "\u{f001}"), // ""
|
||||
("m4v", "\u{f008}"), // ""
|
||||
("magnet", "\u{f076}"), // ""
|
||||
("markdown", "\u{e609}"), // ""
|
||||
("md", "\u{e609}"), // ""
|
||||
("mjs", "\u{e74e}"), // ""
|
||||
("mkd", "\u{e609}"), // ""
|
||||
("mkv", "\u{f008}"), // ""
|
||||
("mobi", "\u{e28b}"), // ""
|
||||
("mov", "\u{f008}"), // ""
|
||||
("mp3", "\u{f001}"), // ""
|
||||
("mp4", "\u{f008}"), // ""
|
||||
("msi", "\u{f17a}"), // ""
|
||||
("mustache", "\u{e60f}"), // ""
|
||||
("nix", "\u{f313}"), // ""
|
||||
("npmignore", "\u{e71e}"), // ""
|
||||
("o", "\u{e624}"), // ""
|
||||
("opus", "\u{f001}"), // ""
|
||||
("ogg", "\u{f001}"), // ""
|
||||
("ogv", "\u{f008}"), // ""
|
||||
("otf", "\u{f031}"), // ""
|
||||
("pdf", "\u{f1c1}"), // ""
|
||||
("pem", "\u{f805}"), // ""
|
||||
("phar", "\u{e608}"), // ""
|
||||
("php", "\u{e608}"), // ""
|
||||
("pkg", "\u{f187}"), // ""
|
||||
("pl", "\u{e769}"), // ""
|
||||
("plist", "\u{f302}"), // ""
|
||||
("pls", "\u{f910}"), // "蘿"
|
||||
("pm", "\u{e769}"), // ""
|
||||
("png", "\u{f1c5}"), // ""
|
||||
("ppt", "\u{f1c4}"), // ""
|
||||
("pptx", "\u{f1c4}"), // ""
|
||||
("procfile", "\u{e21e}"), // ""
|
||||
("properties", "\u{e60b}"), // ""
|
||||
("ps1", "\u{f489}"), // ""
|
||||
("psd", "\u{e7b8}"), // ""
|
||||
("pub", "\u{e60a}"), // ""
|
||||
("pxm", "\u{f1c5}"), // ""
|
||||
("py", "\u{e606}"), // ""
|
||||
("pyc", "\u{e606}"), // ""
|
||||
("r", "\u{fcd2}"), // "ﳒ"
|
||||
("rakefile", "\u{e21e}"), // ""
|
||||
("rar", "\u{f410}"), // ""
|
||||
("razor", "\u{f1fa}"), // ""
|
||||
("rb", "\u{e21e}"), // ""
|
||||
("rdata", "\u{fcd2}"), // "ﳒ"
|
||||
("rdb", "\u{e76d}"), // ""
|
||||
("rdoc", "\u{e609}"), // ""
|
||||
("rds", "\u{fcd2}"), // "ﳒ"
|
||||
("readme", "\u{e609}"), // ""
|
||||
("rlib", "\u{e7a8}"), // ""
|
||||
("rmd", "\u{e609}"), // ""
|
||||
("rpm", "\u{f187}"), // ""
|
||||
("rproj", "\u{fac5}"), // "鉶"
|
||||
("rs", "\u{e7a8}"), // ""
|
||||
("rspec", "\u{e21e}"), // ""
|
||||
("rspec_parallel", "\u{e21e}"), // ""
|
||||
("rspec_status", "\u{e21e}"), // ""
|
||||
("rss", "\u{f09e}"), // ""
|
||||
("rtf", "\u{f15c}"), // ""
|
||||
("ru", "\u{e21e}"), // ""
|
||||
("rubydoc", "\u{e73b}"), // ""
|
||||
("s", "\u{e614}"), // ""
|
||||
("sass", "\u{e603}"), // ""
|
||||
("scala", "\u{e737}"), // ""
|
||||
("scpt", "\u{f302}"), // ""
|
||||
("scss", "\u{e603}"), // ""
|
||||
("sh", "\u{f489}"), // ""
|
||||
("shell", "\u{f489}"), // ""
|
||||
("sig", "\u{e60a}"), // ""
|
||||
("slim", "\u{e73b}"), // ""
|
||||
("sln", "\u{e70c}"), // ""
|
||||
("so", "\u{e624}"), // ""
|
||||
("sql", "\u{f1c0}"), // ""
|
||||
("sqlite3", "\u{e7c4}"), // ""
|
||||
("srt", "\u{f02d}"), // ""
|
||||
("styl", "\u{e600}"), // ""
|
||||
("stylus", "\u{e600}"), // ""
|
||||
("sub", "\u{f02d}"), // ""
|
||||
("sublime-package", "\u{e7aa}"), // ""
|
||||
("sublime-session", "\u{e7aa}"), // ""
|
||||
("svg", "\u{f1c5}"), // ""
|
||||
("swift", "\u{e755}"), // ""
|
||||
("swp", "\u{e62b}"), // ""
|
||||
("sym", "\u{e624}"), // ""
|
||||
("t", "\u{e769}"), // ""
|
||||
("tar", "\u{f410}"), // ""
|
||||
("tex", "\u{e600}"), // ""
|
||||
("tgz", "\u{f410}"), // ""
|
||||
("tiff", "\u{f1c5}"), // ""
|
||||
("toml", "\u{e60b}"), // ""
|
||||
("torrent", "\u{f98c}"), // "歷"
|
||||
("ts", "\u{e628}"), // ""
|
||||
("tsx", "\u{e7ba}"), // ""
|
||||
("ttc", "\u{f031}"), // ""
|
||||
("ttf", "\u{f031}"), // ""
|
||||
("twig", "\u{e61c}"), // ""
|
||||
("txt", "\u{f15c}"), // ""
|
||||
("video", "\u{f008}"), // ""
|
||||
("vim", "\u{e62b}"), // ""
|
||||
("vlc", "\u{f910}"), // "蘿"
|
||||
("vue", "\u{fd42}"), // "﵂"
|
||||
("wav", "\u{f001}"), // ""
|
||||
("webm", "\u{f008}"), // ""
|
||||
("webp", "\u{f1c5}"), // ""
|
||||
("windows", "\u{f17a}"), // ""
|
||||
("wma", "\u{f001}"), // ""
|
||||
("wmv", "\u{f008}"), // ""
|
||||
("wpl", "\u{f910}"), // "蘿"
|
||||
("woff", "\u{f031}"), // ""
|
||||
("woff2", "\u{f031}"), // ""
|
||||
("xbps", "\u{f187}"), // ""
|
||||
("xcf", "\u{f1c5}"), // ""
|
||||
("xls", "\u{f1c3}"), // ""
|
||||
("xlsx", "\u{f1c3}"), // ""
|
||||
("xml", "\u{f121}"), // ""
|
||||
("xul", "\u{f269}"), // ""
|
||||
("xz", "\u{f410}"), // ""
|
||||
("yaml", "\u{e60b}"), // ""
|
||||
("yml", "\u{e60b}"), // ""
|
||||
("zip", "\u{f410}"), // ""
|
||||
("zsh", "\u{f489}"), // ""
|
||||
("zsh-theme", "\u{f489}"), // ""
|
||||
("zshrc", "\u{f489}"), // ""
|
||||
("zst", "\u{f410}"), // ""
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
@ -589,7 +181,7 @@ mod test {
|
|||
File::create(&file_path).expect("failed to create file");
|
||||
let meta = Meta::from_path(&file_path, false).unwrap();
|
||||
|
||||
let icon = Icons::new(Theme::Fancy, " ".to_string());
|
||||
let icon = Icons::use Theme::Fancy, " ".to_string());
|
||||
let icon_str = icon.get(&meta.name);
|
||||
|
||||
assert_eq!(icon_str, format!("{}{}", file_icon, icon.icon_separator));
|
||||
|
|
|
@ -1,14 +1,412 @@
|
|||
use std::collections::HashMap;
|
||||
use serde::Deserialize;
|
||||
|
||||
#[derive(Debug, Deserialize, PartialEq)]
|
||||
#[serde(rename_all = "kebab-case")]
|
||||
#[serde(deny_unknown_fields)]
|
||||
#[serde(default)]
|
||||
pub struct IconTheme {}
|
||||
pub struct IconTheme {
|
||||
pub icons_by_name: HashMap<String, String>,
|
||||
pub icons_by_extension: HashMap<String, String>,
|
||||
// pub icons_by_filetype: HashMap<String, String>,
|
||||
pub default_folder_icon: String,
|
||||
pub default_file_icon: String,
|
||||
}
|
||||
|
||||
impl Default for IconTheme {
|
||||
fn default() -> Self {
|
||||
// TODO(zwpaper): check terminal color and return light or dark
|
||||
IconTheme{}
|
||||
IconTheme{
|
||||
icons_by_name: Self::get_default_icons_by_name(),
|
||||
icons_by_extension: Self::get_default_icons_by_extension(),
|
||||
default_folder_icon: "\u{f115}".into(),
|
||||
default_file_icon: "\u{f016}".into(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl IconTheme {
|
||||
fn get_default_icons_by_name() -> HashMap<String, String> {
|
||||
// Note: filenames must be lower-case
|
||||
[
|
||||
(".trash", "\u{f1f8}"), // ""
|
||||
(".atom", "\u{e764}"), // ""
|
||||
(".bash_profile", "\u{e615}"), // ""
|
||||
(".bash_logout", "\u{e615}"), // ""
|
||||
(".bashrc", "\u{f489}"), // ""
|
||||
(".cargo", "\u{e7a8}"), // ""
|
||||
(".clang-format", "\u{e615}"), // ""
|
||||
(".config", "\u{e5fc}"), // ""
|
||||
(".emacs.d", "\u{e779}"), // ""
|
||||
(".doom.d", "\u{e779}"), // ""
|
||||
(".git", "\u{e5fb}"), // ""
|
||||
(".git-credentials", "\u{e60a}"), // ""
|
||||
(".gitattributes", "\u{f1d3}"), // ""
|
||||
(".gitconfig", "\u{f1d3}"), // ""
|
||||
(".github", "\u{e5fd}"), // ""
|
||||
(".gitignore", "\u{f1d3}"), // ""
|
||||
(".gitlab-ci.yml", "\u{f296}"), // ""
|
||||
(".gitmodules", "\u{f1d3}"), // ""
|
||||
(".htaccess", "\u{e615}"), // ""
|
||||
(".htpasswd", "\u{e615}"), // ""
|
||||
(".inputrc", "\u{e615}"), // ""
|
||||
(".node_repl_history", "\u{e718}"), // ""
|
||||
(".npm", "\u{e5fa}"), // ""
|
||||
(".profile", "\u{f68c}"), // ""
|
||||
(".python_history", "\u{e606}"), // ""
|
||||
(".release.toml", "\u{e7a8}"), // ""
|
||||
(".rvm", "\u{e21e}"), // ""
|
||||
(".ssh", "\u{f023}"), // ""
|
||||
(".vim", "\u{e62b}"), // ""
|
||||
(".vimrc", "\u{e62b}"), // ""
|
||||
(".viminfo", "\u{e62b}"), // ""
|
||||
(".vscode", "\u{e70c}"), // ""
|
||||
(".xauthority", "\u{e615}"), // ""
|
||||
(".xinitrc", "\u{e615}"), // ""
|
||||
(".xresources", "\u{e615}"), // ""
|
||||
(".zshrc", "\u{f489}"), // ""
|
||||
(".zsh_history", "\u{e615}"), // ""
|
||||
("a.out", "\u{f489}"), // ""
|
||||
("authorized_keys", "\u{e60a}"), // ""
|
||||
("bin", "\u{e5fc}"), // ""
|
||||
("bspwmrc", "\u{e615}"), // ""
|
||||
("cargo.toml", "\u{e7a8}"), // ""
|
||||
("cargo.lock", "\u{e7a8}"), // ""
|
||||
("changelog", "\u{e609}"), // ""
|
||||
("composer.json", "\u{e608}"), // ""
|
||||
("config", "\u{e5fc}"), // ""
|
||||
("config.ac", "\u{e615}"), // ""
|
||||
("config.mk", "\u{e615}"), // ""
|
||||
("config.el", "\u{e779}"), // ""
|
||||
("custom.el", "\u{e779}"), // ""
|
||||
("contributing", "\u{e60a}"), // ""
|
||||
("cron.d", "\u{e5fc}"), // ""
|
||||
("cron.daily", "\u{e5fc}"), // ""
|
||||
("cron.hourly", "\u{e5fc}"), // ""
|
||||
("cron.weekly", "\u{e5fc}"), // ""
|
||||
("cron.monthly", "\u{e5fc}"), // ""
|
||||
("crontab", "\u{e615}"), // ""
|
||||
("crypttab", "\u{e615}"), // ""
|
||||
("desktop", "\u{f108}"), // ""
|
||||
("downloads", "\u{f498}"), // ""
|
||||
("docker-compose.yml", "\u{f308}"), // ""
|
||||
("dockerfile", "\u{f308}"), // ""
|
||||
("documents", "\u{f02d}"), // ""
|
||||
(".ds_store", "\u{f179}"), // ""
|
||||
("etc", "\u{e5fc}"), // ""
|
||||
("favicon.ico", "\u{f005}"), // ""
|
||||
("fstab", "\u{f1c0}"), // ""
|
||||
("gitignore_global", "\u{f1d3}"), // ""
|
||||
("gradle", "\u{e70e}"), // ""
|
||||
("group", "\u{e615}"), // ""
|
||||
("gruntfile.coffee", "\u{e611}"), // ""
|
||||
("gruntfile.js", "\u{e611}"), // ""
|
||||
("gruntfile.ls", "\u{e611}"), // ""
|
||||
("gshadow", "\u{e615}"), // ""
|
||||
("gulpfile.coffee", "\u{e610}"), // ""
|
||||
("gulpfile.js", "\u{e610}"), // ""
|
||||
("gulpfile.ls", "\u{e610}"), // ""
|
||||
("hidden", "\u{f023}"), // ""
|
||||
("hosts", "\u{f502}"), // ""
|
||||
("htoprc", "\u{e615}"), // ""
|
||||
("include", "\u{e5fc}"), // ""
|
||||
("init.el", "\u{e779}"), // ""
|
||||
("known_hosts", "\u{e60a}"), // ""
|
||||
("lib", "\u{f121}"), // ""
|
||||
("license", "\u{e60a}"), // ""
|
||||
("license.md", "\u{e60a}"), // ""
|
||||
("license.txt", "\u{e60a}"), // ""
|
||||
("localized", "\u{f179}"), // ""
|
||||
("mail", "\u{f6ef}"), // ""
|
||||
("makefile", "\u{e615}"), // ""
|
||||
("makefile.ac", "\u{e615}"), // ""
|
||||
("music", "\u{f025}"), // ""
|
||||
("muttrc", "\u{e615}"), // ""
|
||||
("node_modules", "\u{e5fa}"), // ""
|
||||
("npmignore", "\u{e71e}"), // ""
|
||||
("package.json", "\u{e718}"), // ""
|
||||
("packages.el", "\u{e779}"), // ""
|
||||
("package-lock.json", "\u{e718}"), // ""
|
||||
("passwd", "\u{f023}"), // ""
|
||||
("pictures", "\u{f03e}"), // ""
|
||||
("profile", "\u{e615}"), // ""
|
||||
("readme", "\u{e609}"), // ""
|
||||
("rc.lua", "\u{e615}"), // ""
|
||||
("rubydoc", "\u{e73b}"), // ""
|
||||
("robots.txt", "\u{fba7}"), // "ﮧ"
|
||||
("root", "\u{f023}"), // ""
|
||||
("shadow", "\u{e615}"), // ""
|
||||
("shells", "\u{e615}"), // ""
|
||||
("sudoers", "\u{f023}"), // ""
|
||||
("sxhkdrc", "\u{e615}"), // ""
|
||||
("tigrc", "\u{e615}"), // ""
|
||||
("vagrantfile", "\u{e615}"), // ""
|
||||
("videos", "\u{f03d}"), // ""
|
||||
("hostname", "\u{e615}"), // ""
|
||||
("webpack.config.js", "\u{fc29}"), // "ﰩ"
|
||||
("xmonad.hs", "\u{e615}"), // ""
|
||||
("xorg.conf.d", "\u{e5fc}"), // ""
|
||||
("xbps.d", "\u{e5fc}"), // ""
|
||||
].iter().map(|&s| (s.0.to_owned(), s.1.to_owned())).collect::<HashMap<_, _>>()
|
||||
}
|
||||
|
||||
fn get_default_icons_by_extension() -> HashMap<String, String> {
|
||||
// Note: extensions must be lower-case
|
||||
[("1", "\u{f02d}"), // ""
|
||||
("7z", "\u{f410}"), // ""
|
||||
("a", "\u{e624}"), // ""
|
||||
("ai", "\u{e7b4}"), // ""
|
||||
("ape", "\u{f001}"), // ""
|
||||
("apk", "\u{e70e}"), // ""
|
||||
("asc", "\u{f023}"), // ""
|
||||
("asm", "\u{e614}"), // ""
|
||||
("asp", "\u{f121}"), // ""
|
||||
("avi", "\u{f008}"), // ""
|
||||
("avro", "\u{e60b}"), // ""
|
||||
("awk", "\u{f489}"), // ""
|
||||
("bash", "\u{f489}"), // ""
|
||||
("bash_history", "\u{f489}"), // ""
|
||||
("bash_profile", "\u{f489}"), // ""
|
||||
("bashrc", "\u{f489}"), // ""
|
||||
("bat", "\u{f17a}"), // ""
|
||||
("bin", "\u{f489}"), // ""
|
||||
("bio", "\u{f910}"), // "蘿"
|
||||
("bmp", "\u{f1c5}"), // ""
|
||||
("bz2", "\u{f410}"), // ""
|
||||
("c", "\u{e61e}"), // ""
|
||||
("c++", "\u{e61d}"), // ""
|
||||
("cc", "\u{e61d}"), // ""
|
||||
("cfg", "\u{e615}"), // ""
|
||||
("cl", "\u{f671}"), // ""
|
||||
("class", "\u{e738}"), // ""
|
||||
("clj", "\u{e768}"), // ""
|
||||
("cljs", "\u{e76a}"), // ""
|
||||
("cls", "\u{e600}"), // ""
|
||||
("coffee", "\u{f0f4}"), // ""
|
||||
("conf", "\u{e615}"), // ""
|
||||
("cp", "\u{e61d}"), // ""
|
||||
("cpp", "\u{e61d}"), // ""
|
||||
("cs", "\u{f81a}"), // ""
|
||||
("cshtml", "\u{f1fa}"), // ""
|
||||
("csproj", "\u{f81a}"), // ""
|
||||
("csx", "\u{f81a}"), // ""
|
||||
("csh", "\u{f489}"), // ""
|
||||
("css", "\u{e749}"), // ""
|
||||
("csv", "\u{f1c3}"), // ""
|
||||
("cue", "\u{f001}"), // ""
|
||||
("cxx", "\u{e61d}"), // ""
|
||||
("dart", "\u{e798}"), // ""
|
||||
("db", "\u{f1c0}"), // ""
|
||||
("deb", "\u{f187}"), // ""
|
||||
("desktop", "\u{f108}"), // ""
|
||||
("diff", "\u{e728}"), // ""
|
||||
("dll", "\u{f17a}"), // ""
|
||||
("doc", "\u{f1c2}"), // ""
|
||||
("dockerfile", "\u{f308}"), // ""
|
||||
("docx", "\u{f1c2}"), // ""
|
||||
("ds_store", "\u{f179}"), // ""
|
||||
("dump", "\u{f1c0}"), // ""
|
||||
("ebook", "\u{e28b}"), // ""
|
||||
("editorconfig", "\u{e615}"), // ""
|
||||
("ejs", "\u{e618}"), // ""
|
||||
("el", "\u{f671}"), // ""
|
||||
("elc", "\u{f671}"), // ""
|
||||
("elf", "\u{f489}"), // ""
|
||||
("elm", "\u{e62c}"), // ""
|
||||
("env", "\u{f462}"), // ""
|
||||
("eot", "\u{f031}"), // ""
|
||||
("epub", "\u{e28a}"), // ""
|
||||
("erb", "\u{e73b}"), // ""
|
||||
("erl", "\u{e7b1}"), // ""
|
||||
("exe", "\u{f17a}"), // ""
|
||||
("ex", "\u{e62d}"), // ""
|
||||
("exs", "\u{e62d}"), // ""
|
||||
("fish", "\u{f489}"), // ""
|
||||
("flac", "\u{f001}"), // ""
|
||||
("flv", "\u{f008}"), // ""
|
||||
("font", "\u{f031}"), // ""
|
||||
("fpl", "\u{f910}"), // "蘿"
|
||||
("fs", "\u{e7a7}"), // ""
|
||||
("fsx", "\u{e7a7}"), // ""
|
||||
("fsi", "\u{e7a7}"), // ""
|
||||
("gdoc", "\u{f1c2}"), // ""
|
||||
("gemfile", "\u{e21e}"), // ""
|
||||
("gemspec", "\u{e21e}"), // ""
|
||||
("gform", "\u{f298}"), // ""
|
||||
("gif", "\u{f1c5}"), // ""
|
||||
("git", "\u{f1d3}"), // ""
|
||||
("go", "\u{e627}"), // ""
|
||||
("gradle", "\u{e70e}"), // ""
|
||||
("gsheet", "\u{f1c3}"), // ""
|
||||
("gslides", "\u{f1c4}"), // ""
|
||||
("guardfile", "\u{e21e}"), // ""
|
||||
("gz", "\u{f410}"), // ""
|
||||
("h", "\u{f0fd}"), // ""
|
||||
("hbs", "\u{e60f}"), // ""
|
||||
("heic", "\u{f1c5}"), // ""
|
||||
("heif", "\u{f1c5}"), // ""
|
||||
("heix", "\u{f1c5}"), // ""
|
||||
("hpp", "\u{f0fd}"), // ""
|
||||
("hs", "\u{e777}"), // ""
|
||||
("htm", "\u{f13b}"), // ""
|
||||
("html", "\u{f13b}"), // ""
|
||||
("hxx", "\u{f0fd}"), // ""
|
||||
("ico", "\u{f1c5}"), // ""
|
||||
("image", "\u{f1c5}"), // ""
|
||||
("img", "\u{f1c0}"), // ""
|
||||
("iml", "\u{e7b5}"), // ""
|
||||
("ini", "\u{e615}"), // ""
|
||||
("ipynb", "\u{e606}"), // ""
|
||||
("iso", "\u{f1c0}"), // ""
|
||||
("jar", "\u{e738}"), // ""
|
||||
("java", "\u{e738}"), // ""
|
||||
("jpeg", "\u{f1c5}"), // ""
|
||||
("jpg", "\u{f1c5}"), // ""
|
||||
("js", "\u{e74e}"), // ""
|
||||
("json", "\u{e60b}"), // ""
|
||||
("jsx", "\u{e7ba}"), // ""
|
||||
("jl", "\u{e624}"), // ""
|
||||
("key", "\u{e60a}"), // ""
|
||||
("ksh", "\u{f489}"), // ""
|
||||
("ld", "\u{e624}"), // ""
|
||||
("ldb", "\u{f1c0}"), // ""
|
||||
("less", "\u{e758}"), // ""
|
||||
("lhs", "\u{e777}"), // ""
|
||||
("license", "\u{e60a}"), // ""
|
||||
("lisp", "\u{f671}"), // ""
|
||||
("localized", "\u{f179}"), // ""
|
||||
("lock", "\u{f023}"), // ""
|
||||
("log", "\u{f18d}"), // ""
|
||||
("lua", "\u{e620}"), // ""
|
||||
("lz", "\u{f410}"), // ""
|
||||
("m3u", "\u{f910}"), // "蘿"
|
||||
("m3u8", "\u{f910}"), // "蘿"
|
||||
("m4a", "\u{f001}"), // ""
|
||||
("m4v", "\u{f008}"), // ""
|
||||
("magnet", "\u{f076}"), // ""
|
||||
("markdown", "\u{e609}"), // ""
|
||||
("md", "\u{e609}"), // ""
|
||||
("mjs", "\u{e74e}"), // ""
|
||||
("mkd", "\u{e609}"), // ""
|
||||
("mkv", "\u{f008}"), // ""
|
||||
("mobi", "\u{e28b}"), // ""
|
||||
("mov", "\u{f008}"), // ""
|
||||
("mp3", "\u{f001}"), // ""
|
||||
("mp4", "\u{f008}"), // ""
|
||||
("msi", "\u{f17a}"), // ""
|
||||
("mustache", "\u{e60f}"), // ""
|
||||
("nix", "\u{f313}"), // ""
|
||||
("npmignore", "\u{e71e}"), // ""
|
||||
("o", "\u{e624}"), // ""
|
||||
("opus", "\u{f001}"), // ""
|
||||
("ogg", "\u{f001}"), // ""
|
||||
("ogv", "\u{f008}"), // ""
|
||||
("otf", "\u{f031}"), // ""
|
||||
("pdf", "\u{f1c1}"), // ""
|
||||
("pem", "\u{f805}"), // ""
|
||||
("phar", "\u{e608}"), // ""
|
||||
("php", "\u{e608}"), // ""
|
||||
("pkg", "\u{f187}"), // ""
|
||||
("pl", "\u{e769}"), // ""
|
||||
("plist", "\u{f302}"), // ""
|
||||
("pls", "\u{f910}"), // "蘿"
|
||||
("pm", "\u{e769}"), // ""
|
||||
("png", "\u{f1c5}"), // ""
|
||||
("ppt", "\u{f1c4}"), // ""
|
||||
("pptx", "\u{f1c4}"), // ""
|
||||
("procfile", "\u{e21e}"), // ""
|
||||
("properties", "\u{e60b}"), // ""
|
||||
("ps1", "\u{f489}"), // ""
|
||||
("psd", "\u{e7b8}"), // ""
|
||||
("pub", "\u{e60a}"), // ""
|
||||
("pxm", "\u{f1c5}"), // ""
|
||||
("py", "\u{e606}"), // ""
|
||||
("pyc", "\u{e606}"), // ""
|
||||
("r", "\u{fcd2}"), // "ﳒ"
|
||||
("rakefile", "\u{e21e}"), // ""
|
||||
("rar", "\u{f410}"), // ""
|
||||
("razor", "\u{f1fa}"), // ""
|
||||
("rb", "\u{e21e}"), // ""
|
||||
("rdata", "\u{fcd2}"), // "ﳒ"
|
||||
("rdb", "\u{e76d}"), // ""
|
||||
("rdoc", "\u{e609}"), // ""
|
||||
("rds", "\u{fcd2}"), // "ﳒ"
|
||||
("readme", "\u{e609}"), // ""
|
||||
("rlib", "\u{e7a8}"), // ""
|
||||
("rmd", "\u{e609}"), // ""
|
||||
("rpm", "\u{f187}"), // ""
|
||||
("rproj", "\u{fac5}"), // "鉶"
|
||||
("rs", "\u{e7a8}"), // ""
|
||||
("rspec", "\u{e21e}"), // ""
|
||||
("rspec_parallel", "\u{e21e}"), // ""
|
||||
("rspec_status", "\u{e21e}"), // ""
|
||||
("rss", "\u{f09e}"), // ""
|
||||
("rtf", "\u{f15c}"), // ""
|
||||
("ru", "\u{e21e}"), // ""
|
||||
("rubydoc", "\u{e73b}"), // ""
|
||||
("s", "\u{e614}"), // ""
|
||||
("sass", "\u{e603}"), // ""
|
||||
("scala", "\u{e737}"), // ""
|
||||
("scpt", "\u{f302}"), // ""
|
||||
("scss", "\u{e603}"), // ""
|
||||
("sh", "\u{f489}"), // ""
|
||||
("shell", "\u{f489}"), // ""
|
||||
("sig", "\u{e60a}"), // ""
|
||||
("slim", "\u{e73b}"), // ""
|
||||
("sln", "\u{e70c}"), // ""
|
||||
("so", "\u{e624}"), // ""
|
||||
("sql", "\u{f1c0}"), // ""
|
||||
("sqlite3", "\u{e7c4}"), // ""
|
||||
("srt", "\u{f02d}"), // ""
|
||||
("styl", "\u{e600}"), // ""
|
||||
("stylus", "\u{e600}"), // ""
|
||||
("sub", "\u{f02d}"), // ""
|
||||
("sublime-package", "\u{e7aa}"), // ""
|
||||
("sublime-session", "\u{e7aa}"), // ""
|
||||
("svg", "\u{f1c5}"), // ""
|
||||
("swift", "\u{e755}"), // ""
|
||||
("swp", "\u{e62b}"), // ""
|
||||
("sym", "\u{e624}"), // ""
|
||||
("t", "\u{e769}"), // ""
|
||||
("tar", "\u{f410}"), // ""
|
||||
("tex", "\u{e600}"), // ""
|
||||
("tgz", "\u{f410}"), // ""
|
||||
("tiff", "\u{f1c5}"), // ""
|
||||
("toml", "\u{e60b}"), // ""
|
||||
("torrent", "\u{f98c}"), // "歷"
|
||||
("ts", "\u{e628}"), // ""
|
||||
("tsx", "\u{e7ba}"), // ""
|
||||
("ttc", "\u{f031}"), // ""
|
||||
("ttf", "\u{f031}"), // ""
|
||||
("twig", "\u{e61c}"), // ""
|
||||
("txt", "\u{f15c}"), // ""
|
||||
("video", "\u{f008}"), // ""
|
||||
("vim", "\u{e62b}"), // ""
|
||||
("vlc", "\u{f910}"), // "蘿"
|
||||
("vue", "\u{fd42}"), // "﵂"
|
||||
("wav", "\u{f001}"), // ""
|
||||
("webm", "\u{f008}"), // ""
|
||||
("webp", "\u{f1c5}"), // ""
|
||||
("windows", "\u{f17a}"), // ""
|
||||
("wma", "\u{f001}"), // ""
|
||||
("wmv", "\u{f008}"), // ""
|
||||
("wpl", "\u{f910}"), // "蘿"
|
||||
("woff", "\u{f031}"), // ""
|
||||
("woff2", "\u{f031}"), // ""
|
||||
("xbps", "\u{f187}"), // ""
|
||||
("xcf", "\u{f1c5}"), // ""
|
||||
("xls", "\u{f1c3}"), // ""
|
||||
("xlsx", "\u{f1c3}"), // ""
|
||||
("xml", "\u{f121}"), // ""
|
||||
("xul", "\u{f269}"), // ""
|
||||
("xz", "\u{f410}"), // ""
|
||||
("yaml", "\u{e60b}"), // ""
|
||||
("yml", "\u{e60b}"), // ""
|
||||
("zip", "\u{f410}"), // ""
|
||||
("zsh", "\u{f489}"), // ""
|
||||
("zsh-theme", "\u{f489}"), // ""
|
||||
("zshrc", "\u{f489}"), // ""
|
||||
("zst", "\u{f410}"), // ""
|
||||
].iter().map(|&s| (s.0.to_owned(), s.1.to_owned())).collect::<HashMap<_, _>>()
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue