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