// This code is adapted from https://github.com/devblackops/Terminal-Icons (which also uses the MIT license).
// Nerd fonts can be installed by following the instructions on the Nerd Fonts repository: https://github.com/ryanoasis/nerd-fonts
using System.Collections.Generic;
using System.IO.Abstractions;
using static Terminal.Gui.ConfigurationManager;
namespace Terminal.Gui {
internal class NerdFonts {
///
/// If , enables the use of Nerd unicode symbols.
/// This requires specific font(s) to be installed on the users machine
/// to work correctly. Defaults to .
///
[SerializableConfigurationProperty (Scope = typeof (ThemeScope))]
public static bool Enable { get; set; } = false;
public char GetNerdIcon(IFileSystemInfo file, bool isOpen)
{
if(FilenameToIcon.ContainsKey(file.Name))
{
return Glyphs[FilenameToIcon[file.Name]];
}
if(ExtensionToIcon.ContainsKey(file.Extension))
{
return Glyphs[ExtensionToIcon[file.Extension]];
}
if(file is IDirectoryInfo d)
{
return isOpen ? _nf_cod_folder_opened :_nf_cod_folder;
}
return _nf_cod_file;
}
char _nf_cod_folder = '';
char _nf_cod_folder_opened = '';
char _nf_cod_file = '';
///
/// All nerd glyphs used by Terminal.Gui by name.
///
public Dictionary Glyphs {get;set;} = new Dictionary{
{"nf-cod-package", ''},
{"nf-cod-preview", ''},
{"nf-custom-folder_config", ''},
{"nf-custom-folder_git", ''},
{"nf-custom-folder_git_branch", ''},
{"nf-custom-folder_github", ''},
{"nf-custom-folder_npm", ''},
{"nf-dev-aws", ''},
{"nf-dev-docker", ''},
{"nf-dev-html5_multimedia", ''},
{"nf-fa-font", ''},
{"nf-fa-font_awesome", ''},
{"nf-fa-fonticons", ''},
{"nf-fa-github_alt", ''},
{"nf-fa-users", ''},
{"nf-fa-windows", ''},
{"nf-mdi-apps", ''},
{"nf-mdi-azure", 'ﴃ'},
{"nf-mdi-cached", ''},
{"nf-mdi-contacts", ''},
{"nf-mdi-desktop_classic", 'ﲾ'},
{"nf-mdi-folder_download", ''},
{"nf-mdi-folder_image", ''},
{"nf-mdi-folder_star", 'ﮛ'},
{"nf-mdi-library_music", ''},
{"nf-mdi-movie", ''},
{"nf-mdi-movie_roll", 'ﳜ'},
{"nf-mdi-onedrive", ''},
{"nf-mdi-ship_wheel", 'ﴱ'},
{"nf-mdi-test_tube", 'ﭧ'},
{"nf-mdi-timer", '祥'},
{"nf-mdi-timer_10", '福'},
{"nf-mdi-timer_3", '靖'},
{"nf-mdi-timer_off", '精'},
{"nf-mdi-timer_sand", '羽'},
{"nf-mdi-timer_sand_empty", 'ﮫ'},
{"nf-mdi-timer_sand_full", 'ﲊ'},
{"nf-mdi-umbraco", '煮'},
{"nf-oct-file_binary", ''},
{"nf-oct-file_symlink_directory", ''},
{"nf-oct-repo", ''},
{"nf-oct-repo_clone", ''},
{"nf-oct-repo_force_push", ''},
{"nf-oct-repo_forked", ''},
{"nf-oct-repo_pull", ''},
{"nf-oct-repo_push", ''},
{"nf-oct-terminal", ''},
{"nf-seti-config", ''},
{"nf-seti-project", ''},
{"nf-custom-elixir", ''},
{"nf-custom-elm", ''},
{"nf-custom-msdos", ''},
{"nf-custom-puppet", ''},
{"nf-custom-vim", ''},
{"nf-dev-apple", ''},
{"nf-dev-bitbucket", ''},
{"nf-dev-bower", ''},
{"nf-dev-clojure", ''},
{"nf-dev-clojure_alt", ''},
{"nf-dev-code_badge", ''},
{"nf-dev-css3", ''},
{"nf-dev-css3_full", ''},
{"nf-dev-dart", ''},
{"nf-dev-database", ''},
{"nf-dev-erlang", ''},
{"nf-dev-firebase", ''},
{"nf-dev-fsharp", ''},
{"nf-dev-git", ''},
{"nf-dev-git_branch", ''},
{"nf-dev-git_commit", ''},
{"nf-dev-git_compare", ''},
{"nf-dev-git_merge", ''},
{"nf-dev-git_pull_request", ''},
{"nf-dev-github", ''},
{"nf-dev-github_alt", ''},
{"nf-dev-github_badge", ''},
{"nf-dev-github_full", ''},
{"nf-dev-go", ''},
{"nf-dev-google_cloud_platform", ''},
{"nf-dev-google_drive", ''},
{"nf-dev-groovy", ''},
{"nf-dev-gulp", ''},
{"nf-dev-haskell", ''},
{"nf-dev-javascript", ''},
{"nf-dev-javascript_badge", ''},
{"nf-dev-javascript_shield", ''},
{"nf-dev-jenkins", ''},
{"nf-dev-less", ''},
{"nf-dev-markdown", ''},
{"nf-dev-nodejs_small", ''},
{"nf-dev-npm", ''},
{"nf-dev-perl", ''},
{"nf-dev-php", ''},
{"nf-dev-python", ''},
{"nf-dev-react", ''},
{"nf-dev-rust", ''},
{"nf-dev-sass", ''},
{"nf-dev-sublime", ''},
{"nf-dev-travis", ''},
{"nf-dev-visualstudio", ''},
{"nf-fa-archive", ''},
{"nf-fa-calendar", ''},
{"nf-fa-calendar_check_o", ''},
{"nf-fa-calendar_minus_o", ''},
{"nf-fa-calendar_o", ''},
{"nf-fa-calendar_plus_o", ''},
{"nf-fa-calendar_times_o", ''},
{"nf-fa-certificate", ''},
{"nf-fa-eye", ''},
{"nf-fa-eye_slash", ''},
{"nf-fa-eyedropper", ''},
{"nf-fa-file_audio_o", ''},
{"nf-fa-file_image_o", ''},
{"nf-fa-file_o", ''},
{"nf-fa-file_video_o", ''},
{"nf-fa-gear", ''},
{"nf-fa-gears", ''},
{"nf-fa-gitlab", ''},
{"nf-fa-handshake_o", ''},
{"nf-fa-key", ''},
{"nf-fa-keyboard_o", ''},
{"nf-fa-list", ''},
{"nf-fa-list_alt", ''},
{"nf-fa-list_ol", ''},
{"nf-fa-list_ul", ''},
{"nf-fa-lock", ''},
{"nf-fae-checklist_o", ''},
{"nf-fae-disco", ''},
{"nf-fae-java", ''},
{"nf-mdi-application", 'ﬓ'},
{"nf-mdi-certificate", ''},
{"nf-mdi-console_line", 'ﲵ'},
{"nf-mdi-elephant", 'ﳄ'},
{"nf-mdi-file_document", ''},
{"nf-mdi-file_document_box", ''},
{"nf-mdi-file_excel", ''},
{"nf-mdi-file_excel_box", ''},
{"nf-mdi-file_pdf", ''},
{"nf-mdi-file_pdf_box", ''},
{"nf-mdi-file_powerpoint", ''},
{"nf-mdi-file_powerpoint_box", ''},
{"nf-mdi-file_word", ''},
{"nf-mdi-file_word_box", ''},
{"nf-mdi-file_xml", ''},
{"nf-mdi-format_align_left", ''},
{"nf-mdi-harddisk", ''},
{"nf-mdi-help_box", 'ﲉ'},
{"nf-mdi-language_c", 'ﭰ'},
{"nf-mdi-language_cpp", 'ﭱ'},
{"nf-mdi-language_csharp", ''},
{"nf-mdi-language_css3", ''},
{"nf-mdi-language_r", 'ﳒ'},
{"nf-mdi-library_books", ''},
{"nf-mdi-notebook", 'ﴬ'},
{"nf-mdi-package_variant", ''},
{"nf-mdi-package_variant_closed", ''},
{"nf-mdi-svg", 'ﰟ'},
{"nf-mdi-visualstudio", ''},
{"nf-mdi-vuejs", '﵂'},
{"nf-mdi-xaml", 'ﭲ'},
{"nf-oct-file_zip", ''},
{"nf-oct-person", ''},
{"nf-oct-ruby", ''},
{"nf-seti-favicon", ''},
{"nf-seti-grunt", ''},
{"nf-seti-html", ''},
{"nf-seti-json", ''},
{"nf-seti-julia", ''},
{"nf-seti-lua", ''},
{"nf-seti-mustache", ''},
{"nf-seti-typescript", ''},
};
///
/// Mapping of file name to name.
///
public Dictionary FilenameToIcon {get;set;} = new Dictionary ()
{
{"docs","nf-oct-repo"},
{"documents","nf-oct-repo"},
{"desktop","nf-mdi-desktop_classic"},
{"benchmark","nf-mdi-timer"},
{"demo","nf-cod-preview"},
{"samples","nf-cod-preview"},
{"contacts","nf-mdi-contacts"},
{"apps","nf-mdi-apps"},
{"applications","nf-mdi-apps"},
{"artifacts","nf-cod-package"},
{"shortcuts","nf-oct-file_symlink_directory"},
{"links","nf-oct-file_symlink_directory"},
{"fonts","nf-fa-font"},
{"images","nf-mdi-folder_image"},
{"photos","nf-mdi-folder_image"},
{"pictures","nf-mdi-folder_image"},
{"videos","nf-mdi-movie"},
{"movies","nf-mdi-movie"},
{"media","nf-dev-html5_multimedia"},
{"music","nf-mdi-library_music"},
{"songs","nf-mdi-library_music"},
{"onedrive","nf-mdi-onedrive"},
{"downloads","nf-mdi-folder_download"},
{"src","nf-oct-terminal"},
{"development","nf-oct-terminal"},
{"projects","nf-seti-project"},
{"bin","nf-oct-file_binary"},
{"tests","nf-mdi-test_tube"},
{"windows","nf-fa-windows"},
{"users","nf-fa-users"},
{"favorites","nf-mdi-folder_star"},
{".config","nf-seti-config"},
{".cache","nf-mdi-cached"},
{".vscode","nf-custom-folder_config"},
{".vscode-insiders","nf-custom-folder_config"},
{".git","nf-custom-folder_git"},
{".github","nf-custom-folder_github"},
{"github","nf-fa-github_alt"},
{"node_modules","nf-custom-folder_npm"},
{".azure","nf-mdi-azure"},
{".aws","nf-dev-aws"},
{".kube","nf-mdi-ship_wheel"},
{".docker","nf-dev-docker"},
{"umbraco","nf-mdi-umbraco"},
{".gitattributes", "nf-dev-git"},
{".gitconfig", "nf-dev-git"},
{".gitignore", "nf-dev-git"},
{".gitmodules", "nf-dev-git"},
{".gitkeep", "nf-dev-git"},
{"git-history", "nf-dev-git"},
{"LICENSE", "nf-mdi-certificate"},
{"CHANGELOG.md", "nf-fae-checklist_o"},
{"CHANGELOG.txt", "nf-fae-checklist_o"},
{"CHANGELOG", "nf-fae-checklist_o"},
{"README.md", "nf-mdi-library_books"},
{"README.txt", "nf-mdi-library_books"},
{"README", "nf-mdi-library_books"},
{".DS_Store", "nf-fa-file_o"},
{".tsbuildinfo", "nf-seti-json"},
{".jscsrc", "nf-seti-json"},
{".jshintrc", "nf-seti-json"},
{"tsconfig.json", "nf-seti-json"},
{"tslint.json", "nf-seti-json"},
{"composer.lock", "nf-seti-json"},
{".jsbeautifyrc", "nf-seti-json"},
{".esformatter", "nf-seti-json"},
{"cdp.pid", "nf-seti-json"},
{".htaccess", "nf-mdi-file_xml"},
{".jshintignore", "nf-fa-gear"},
{".buildignore", "nf-fa-gear"},
{".mrconfig", "nf-fa-gear"},
{".yardopts", "nf-fa-gear"},
{"manifest.mf", "nf-fa-gear"},
{".clang-format", "nf-fa-gear"},
{".clang-tidy", "nf-fa-gear"},
{"favicon.ico", "nf-seti-favicon"},
{".travis.yml", "nf-dev-travis"},
{".gitlab-ci.yml", "nf-fa-gitlab"},
{".jenkinsfile", "nf-dev-jenkins"},
{"bitbucket-pipelines.yml", "nf-dev-bitbucket"},
{"bitbucket-pipelines.yaml", "nf-dev-bitbucket"},
{".azure-pipelines.yml", "nf-mdi-azure"},
// Firebase
{"firebase.json", "nf-dev-firebase"},
{".firebaserc", "nf-dev-firebase"},
// Bower
{".bowerrc", "nf-dev-bower"},
{"bower.json", "nf-dev-bower"},
// Conduct
{"code_of_conduct.md", "nf-fa-handshake_o"},
{"code_of_conduct.txt", "nf-fa-handshake_o"},
// Docker
{"Dockerfile", "nf-dev-docker"},
{"docker-compose.yml", "nf-dev-docker"},
{"docker-compose.yaml", "nf-dev-docker"},
{"docker-compose.dev.yml", "nf-dev-docker"},
{"docker-compose.local.yml", "nf-dev-docker"},
{"docker-compose.ci.yml", "nf-dev-docker"},
{"docker-compose.override.yml", "nf-dev-docker"},
{"docker-compose.staging.yml", "nf-dev-docker"},
{"docker-compose.prod.yml", "nf-dev-docker"},
{"docker-compose.production.yml", "nf-dev-docker"},
{"docker-compose.test.yml", "nf-dev-docker"},
// Vue
{"vue.config.js", "nf-mdi-vuejs"},
{"vue.config.ts", "nf-mdi-vuejs"},
// Gulp
{"gulpfile.js", "nf-dev-gulp"},
{"gulpfile.ts", "nf-dev-gulp"},
{"gulpfile.babel.js", "nf-dev-gulp"},
// Javascript
{"gruntfile.js", "nf-seti-grunt"},
// NodeJS
{"package.json", "nf-dev-nodejs_small"},
{"package-lock.json", "nf-dev-nodejs_small"},
{".nvmrc", "nf-dev-nodejs_small"},
{".esmrc", "nf-dev-nodejs_small"},
// NPM
{".nmpignore", "nf-dev-npm"},
{".npmrc", "nf-dev-npm"},
// Authors
{"authors", "nf-oct-person"},
{"authors.md", "nf-oct-person"},
{"authors.txt", "nf-oct-person"},
// Terraform
{".terraform.lock.hcl", "nf-fa-lock"},
// Gradle
{"gradlew", "nf-mdi-elephant"},
};
///
/// Mapping of file extension to name.
///
public Dictionary ExtensionToIcon {get;set;} = new Dictionary ()
{
// Archive files
{".7z" , "nf-oct-file_zip"},
{".bz" , "nf-oct-file_zip"},
{".tar" , "nf-oct-file_zip"},
{".zip" , "nf-oct-file_zip"},
{".gz" , "nf-oct-file_zip"},
{".xz" , "nf-oct-file_zip"},
{".br" , "nf-oct-file_zip"},
{".bzip2" , "nf-oct-file_zip"},
{".gzip" , "nf-oct-file_zip"},
{".brotli" , "nf-oct-file_zip"},
{".rar" , "nf-oct-file_zip"},
{".tgz" , "nf-oct-file_zip"},
// Executable things
{".bat" , "nf-custom-msdos"},
{".cmd" , "nf-custom-msdos"},
{".exe" , "nf-mdi-application"},
{".pl" , "nf-dev-perl"},
{".sh" , "nf-oct-terminal"},
// App Packages
{".msi" , "nf-mdi-package_variant"},
{".msix" , "nf-mdi-package_variant"},
{".msixbundle" , "nf-mdi-package_variant"},
{".appx" , "nf-mdi-package_variant"},
{".AppxBundle" , "nf-mdi-package_variant"},
{".deb" , "nf-mdi-package_variant"},
{".rpm" , "nf-mdi-package_variant"},
// PowerShell
{".ps1" , "nf-mdi-console_line"},
{".psm1" , "nf-mdi-console_line"},
{".psd1" , "nf-mdi-console_line"},
{".ps1xml" , "nf-mdi-console_line"},
{".psc1" , "nf-mdi-console_line"},
{".pssc" , "nf-mdi-console_line"},
// Javascript
{".js" , "nf-dev-javascript"},
{".esx" , "nf-dev-javascript"},
{".mjs" , "nf-dev-javascript"},
// Java
{".java" , "nf-fae-java"},
{".jar" , "nf-fae-java"},
{".gradle" , "nf-mdi-elephant"},
// Python
{".py" , "nf-dev-python"},
{".ipynb" , "nf-mdi-notebook"},
// React
{".jsx" , "nf-dev-react"},
{".tsx" , "nf-dev-react"},
// Typescript
{".ts" , "nf-seti-typescript"},
// Not-executable code files
{".dll" , "nf-fa-archive"},
// Importable Data files
{".clixml" , "nf-dev-code_badge"},
{".csv" , "nf-mdi-file_excel"},
{".tsv" , "nf-mdi-file_excel"},
// Settings
{".ini" , "nf-fa-gear"},
{".dlc" , "nf-fa-gear"},
{".config" , "nf-fa-gear"},
{".conf" , "nf-fa-gear"},
{".properties" , "nf-fa-gear"},
{".prop" , "nf-fa-gear"},
{".settings" , "nf-fa-gear"},
{".option" , "nf-fa-gear"},
{".reg" , "nf-fa-gear"},
{".props" , "nf-fa-gear"},
{".toml" , "nf-fa-gear"},
{".prefs" , "nf-fa-gear"},
{".sln.dotsettings" , "nf-fa-gear"},
{".sln.dotsettings.user" , "nf-fa-gear"},
{".cfg" , "nf-fa-gear"},
// Source Files
{".c" , "nf-mdi-language_c"},
{".cpp" , "nf-mdi-language_cpp"},
{".go" , "nf-dev-go"},
{".php" , "nf-dev-php"},
// Visual Studio
{".csproj" , "nf-dev-visualstudio"},
{".ruleset" , "nf-dev-visualstudio"},
{".sln" , "nf-dev-visualstudio"},
{".slnf" , "nf-dev-visualstudio"},
{".suo" , "nf-dev-visualstudio"},
{".vb" , "nf-dev-visualstudio"},
{".vbs" , "nf-dev-visualstudio"},
{".vcxitems" , "nf-dev-visualstudio"},
{".vcxitems.filters" , "nf-dev-visualstudio"},
{".vcxproj" , "nf-dev-visualstudio"},
{".vsxproj.filters" , "nf-dev-visualstudio"},
// CSharp
{".cs" , "nf-mdi-language_csharp"},
{".csx" , "nf-mdi-language_csharp"},
// Haskell
{".hs" , "nf-dev-haskell"},
// XAML
{".xaml" , "nf-mdi-xaml"},
// Rust
{".rs" , "nf-dev-rust"},
// Database
{".pdb" , "nf-dev-database"},
{".sql" , "nf-dev-database"},
{".pks" , "nf-dev-database"},
{".pkb" , "nf-dev-database"},
{".accdb" , "nf-dev-database"},
{".mdb" , "nf-dev-database"},
{".sqlite" , "nf-dev-database"},
{".pgsql" , "nf-dev-database"},
{".postgres" , "nf-dev-database"},
{".psql" , "nf-dev-database"},
// Source Control
{".patch" , "nf-dev-git"},
// Project files
{".user" , "nf-mdi-visualstudio"},
{".code-workspace" , "nf-mdi-visualstudio"},
// Text data files
{".log" , "nf-fa-list"},
{".txt" , "nf-mdi-file_document"},
// Subtitle files
{".srt" , "nf-mdi-file_document"},
{".lrc" , "nf-mdi-file_document"},
{".ass" , "nf-fa-eye"},
// HTML/css
{".html" , "nf-seti-html"},
{".htm" , "nf-seti-html"},
{".xhtml" , "nf-seti-html"},
{".html_vm" , "nf-seti-html"},
{".asp" , "nf-seti-html"},
{".css" , "nf-dev-css3"},
{".sass" , "nf-dev-sass"},
{".scss" , "nf-dev-sass"},
{".less" , "nf-dev-less"},
// Markdown
{".md" , "nf-dev-markdown"},
{".markdown" , "nf-dev-markdown"},
{".rst" , "nf-dev-markdown"},
// Handlebars
{".hbs" , "nf-seti-mustache"},
// JSON
{".json" , "nf-seti-json"},
{".tsbuildinfo" , "nf-seti-json"},
// YAML
{".yml" , "nf-mdi-format_align_left"},
{".yaml" , "nf-mdi-format_align_left"},
// LUA
{".lua" , "nf-seti-lua"},
// Clojure
{".clj" , "nf-dev-clojure"},
{".cljs" , "nf-dev-clojure"},
{".cljc" , "nf-dev-clojure"},
// Groovy
{".groovy" , "nf-dev-groovy"},
// Vue
{".vue" , "nf-mdi-vuejs"},
// Dart
{".dart" , "nf-dev-dart"},
// Elixir
{".ex" , "nf-custom-elixir"},
{".exs" , "nf-custom-elixir"},
{".eex" , "nf-custom-elixir"},
{".leex" , "nf-custom-elixir"},
// Erlang
{".erl" , "nf-dev-erlang"},
// Elm
{".elm" , "nf-custom-elm"},
// Applescript
{".applescript" , "nf-dev-apple"},
// XML
{".xml" , "nf-mdi-file_xml"},
{".plist" , "nf-mdi-file_xml"},
{".xsd" , "nf-mdi-file_xml"},
{".dtd" , "nf-mdi-file_xml"},
{".xsl" , "nf-mdi-file_xml"},
{".xslt" , "nf-mdi-file_xml"},
{".resx" , "nf-mdi-file_xml"},
{".iml" , "nf-mdi-file_xml"},
{".xquery" , "nf-mdi-file_xml"},
{".tmLanguage" , "nf-mdi-file_xml"},
{".manifest" , "nf-mdi-file_xml"},
{".project" , "nf-mdi-file_xml"},
// Documents
{".chm" , "nf-mdi-help_box"},
{".pdf" , "nf-mdi-file_pdf"},
// Excel
{".xls" , "nf-mdi-file_excel"},
{".xlsx" , "nf-mdi-file_excel"},
// PowerPoint
{".pptx" , "nf-mdi-file_powerpoint"},
{".ppt" , "nf-mdi-file_powerpoint"},
{".pptm" , "nf-mdi-file_powerpoint"},
{".potx" , "nf-mdi-file_powerpoint"},
{".potm" , "nf-mdi-file_powerpoint"},
{".ppsx" , "nf-mdi-file_powerpoint"},
{".ppsm" , "nf-mdi-file_powerpoint"},
{".pps" , "nf-mdi-file_powerpoint"},
{".ppam" , "nf-mdi-file_powerpoint"},
{".ppa" , "nf-mdi-file_powerpoint"},
// Word
{".doc" , "nf-mdi-file_word"},
{".docx" , "nf-mdi-file_word"},
{".rtf" , "nf-mdi-file_word"},
// Audio
{".mp3" , "nf-fa-file_audio_o"},
{".flac" , "nf-fa-file_audio_o"},
{".m4a" , "nf-fa-file_audio_o"},
{".wma" , "nf-fa-file_audio_o"},
{".aiff" , "nf-fa-file_audio_o"},
{".wav" , "nf-fa-file_audio_o"},
{".aac" , "nf-fa-file_audio_o"},
{".opus" , "nf-fa-file_audio_o"},
// Images
{".png" , "nf-fa-file_image_o"},
{".jpeg" , "nf-fa-file_image_o"},
{".jpg" , "nf-fa-file_image_o"},
{".gif" , "nf-fa-file_image_o"},
{".ico" , "nf-fa-file_image_o"},
{".tif" , "nf-fa-file_image_o"},
{".tiff" , "nf-fa-file_image_o"},
{".psd" , "nf-fa-file_image_o"},
{".psb" , "nf-fa-file_image_o"},
{".ami" , "nf-fa-file_image_o"},
{".apx" , "nf-fa-file_image_o"},
{".bmp" , "nf-fa-file_image_o"},
{".bpg" , "nf-fa-file_image_o"},
{".brk" , "nf-fa-file_image_o"},
{".cur" , "nf-fa-file_image_o"},
{".dds" , "nf-fa-file_image_o"},
{".dng" , "nf-fa-file_image_o"},
{".eps" , "nf-fa-file_image_o"},
{".exr" , "nf-fa-file_image_o"},
{".fpx" , "nf-fa-file_image_o"},
{".gbr" , "nf-fa-file_image_o"},
{".jbig2" , "nf-fa-file_image_o"},
{".jb2" , "nf-fa-file_image_o"},
{".jng" , "nf-fa-file_image_o"},
{".jxr" , "nf-fa-file_image_o"},
{".pbm" , "nf-fa-file_image_o"},
{".pgf" , "nf-fa-file_image_o"},
{".pic" , "nf-fa-file_image_o"},
{".raw" , "nf-fa-file_image_o"},
{".webp" , "nf-fa-file_image_o"},
{".svg" , "nf-mdi-svg"},
// Video
{".webm" , "nf-fa-file_video_o"},
{".mkv" , "nf-fa-file_video_o"},
{".flv" , "nf-fa-file_video_o"},
{".vob" , "nf-fa-file_video_o"},
{".ogv" , "nf-fa-file_video_o"},
{".ogg" , "nf-fa-file_video_o"},
{".gifv" , "nf-fa-file_video_o"},
{".avi" , "nf-fa-file_video_o"},
{".mov" , "nf-fa-file_video_o"},
{".qt" , "nf-fa-file_video_o"},
{".wmv" , "nf-fa-file_video_o"},
{".yuv" , "nf-fa-file_video_o"},
{".rm" , "nf-fa-file_video_o"},
{".rmvb" , "nf-fa-file_video_o"},
{".mp4" , "nf-fa-file_video_o"},
{".mpg" , "nf-fa-file_video_o"},
{".mp2" , "nf-fa-file_video_o"},
{".mpeg" , "nf-fa-file_video_o"},
{".mpe" , "nf-fa-file_video_o"},
{".mpv" , "nf-fa-file_video_o"},
{".m2v" , "nf-fa-file_video_o"},
// Email
{".ics" , "nf-fa-calendar"},
// Certificates
{".cer" , "nf-fa-certificate"},
{".cert" , "nf-fa-certificate"},
{".crt" , "nf-fa-certificate"},
{".pfx" , "nf-fa-certificate"},
// Keys
{".pem" , "nf-fa-key"},
{".pub" , "nf-fa-key"},
{".key" , "nf-fa-key"},
{".asc" , "nf-fa-key"},
{".gpg" , "nf-fa-key"},
// Fonts
{".woff" , "nf-fa-font"},
{".woff2" , "nf-fa-font"},
{".ttf" , "nf-fa-font"},
{".eot" , "nf-fa-font"},
{".suit" , "nf-fa-font"},
{".otf" , "nf-fa-font"},
{".bmap" , "nf-fa-font"},
{".fnt" , "nf-fa-font"},
{".odttf" , "nf-fa-font"},
{".ttc" , "nf-fa-font"},
{".font" , "nf-fa-font"},
{".fonts" , "nf-fa-font"},
{".sui" , "nf-fa-font"},
{".ntf" , "nf-fa-font"},
{".mrg" , "nf-fa-font"},
// Ruby
{".rb" , "nf-oct-ruby"},
{".erb" , "nf-oct-ruby"},
{".gemfile" , "nf-oct-ruby"},
{"rakefile" , "nf-oct-ruby"},
// FSharp
{".fs" , "nf-dev-fsharp"},
{".fsx" , "nf-dev-fsharp"},
{".fsi" , "nf-dev-fsharp"},
{".fsproj" , "nf-dev-fsharp"},
// Docker
{".dockerignore" , "nf-dev-docker"},
{".dockerfile" , "nf-dev-docker"},
// VSCode
{".vscodeignore" , "nf-fa-gear"},
{".vsixmanifest" , "nf-fa-gear"},
{".vsix" , "nf-fa-gear"},
{".code-workplace" , "nf-fa-gear"},
// Sublime
{".sublime-project" , "nf-dev-sublime"},
{".sublime-workspace" , "nf-dev-sublime"},
{".lock" , "nf-fa-lock"},
// Terraform
{".tf" , "nf-dev-code_badge"},
{".tfvars" , "nf-dev-code_badge"},
{".tf.json" , "nf-dev-code_badge"},
{".tfvars.json" , "nf-dev-code_badge"},
{".auto.tfvars" , "nf-dev-code_badge"},
{".auto.tfvars.json" , "nf-dev-code_badge"},
// Disk Image
{".vmdk" , "nf-mdi-harddisk"},
{".vhd" , "nf-mdi-harddisk"},
{".vhdx" , "nf-mdi-harddisk"},
{".img" , "nf-fae-disco"},
{".iso" , "nf-fae-disco"},
// R language
{".R" , "nf-mdi-language_r"},
{".Rmd" , "nf-mdi-language_r"},
{".Rproj" , "nf-mdi-language_r"},
// Julia language
{".jl" , "nf-seti-julia"},
// Vim
{".vim" , "nf-custom-vim"},
// Puppet
{".pp" , "nf-custom-puppet"},
{".epp" , "nf-custom-puppet"},
};
}
}