atheos-ide
Version:
Web-based IDE framework
838 lines (798 loc) • 95.6 kB
JavaScript
/**
* ╭─╮ ┬ ┬ ╭─╮ ┬ ╭─╮ ╭─╮ ╭╮╭ ╭─╮
* ├┤ │ │ ├┤ │ │ │ │ │││ ╰─╮
* ┴ ┴ ┴─╯ ╰─╯ ┴ ╰─╯ ╰─╯ ╯╰╯ ╰─╯
* File specific icons for the browser
* from Atom File-icons, https://github.com/file-icons/atom
*
* @link https://github.com/file-icons/atom
* @author Daniel Brooker, <dan@nocturnalcode.com>
* @author Adnan M.Sagar, <adnan@websemantics.ca>
*/
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
define([], function() {
return factory(root);
});
} else if (typeof exports === 'object') {
module.exports = factory(root);
} else {
root.icons = factory(root);
}
})(typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : this, function(window) {
var root = this || global;
var cache = {
directoryName: {},
directoryPath: {},
fileName: {},
filePath: {},
interpreter: {},
scope: {},
language: {},
signature: {}
};
/* ---------------------------------------------------------------------------
* Icon
* ------------------------------------------------------------------------- */
/**
* Create Icon instance
*
* @param {Number} index - Index of the icon's appearance in the enclosing array
* @param {Array} data - icon's data points that contains the following,
*
* @property {Icon} icon - Icon's CSS class (e.g., 'js-icon')
* @property {Array} colour - Icon's colour classes
* @property {RegExp} match - Pattern for matching names or pathnames
* @property {Numeric} [priority=1] - priority that determined icon's order of appearance
* @property {Boolean} [matchPath=false] - Match against system path instead of basename
* @property {RegExp} [interpreter=null] - to match executable names in hashbangs
* @property {RegExp} [scope=null] - to match grammar scope-names
* @property {RegExp} [lang=null] - to match alias patterns
* @property {RegExp} [sig=null] - to match file signatures
*
* @constructor
*/
var Icon = function(index, data) {
this.index = index;
this.icon = data[0];
this.colour = data[1];
this.match = data[2];
this.priority = data[3] || 1;
this.matchPath = data[4] || false;
this.interpreter = data[5] || null;
this.scope = data[6] || null;
this.lang = data[7] || null;
this.signature = data[8] || null;
};
/**
* Return the CSS classes for displaying the icon.
*
* @param {Number|null} colourMode
* @param {Boolean} asArray
* @return {String}
*/
Icon.prototype.getClass = function(colourMode, asArray) {
colourMode = colourMode !== undefined ? colourMode : null;
asArray = asArray !== undefined ? asArray : false;
// No colour needed or available
if (colourMode === null || this.colour[0] === null) {
return asArray ? [this.icon] : this.icon;
}
return asArray ? [this.icon, this.colour[colourMode]] : this.icon + ' ' + this.colour[colourMode];
};
/* ---------------------------------------------------------------------------
* IconTables
* ------------------------------------------------------------------------- */
/**
* Create IconTables instance
*
* @param {Array} data - Icons database
*
* @property {Array} directoryIcons - Icons to match directory-type resources.
* @property {Array} fileIcons - Icons to match file resources.
* @property {Icon} binaryIcon - Icon for binary files.
* @property {Icon} executableIcon - Icon for executables.
* @class
* @constructor
*/
var IconTables = function(data) {
this.directoryIcons = this.read(data[0]);
this.fileIcons = this.read(data[1]);
this.binaryIcon = this.matchScope('source.asm');
this.executableIcon = this.matchInterpreter('bash');
};
/**
* Populate icon-lists from a icons data table.
*
* @param {Array} table
* @return {Object}
* @private
*/
IconTables.prototype.read = function(table) {
var icons = table[0];
var indexes = table[1];
icons = icons.map(function(icon, index) {
return new Icon(index, icon);
});
// Dereference Icon instances from their stored offset
indexes = indexes.map(function(index) {
return index.map(function(offset) {
return icons[offset];
});
});
return {
byName: icons,
byInterpreter: indexes[0],
byLanguage: indexes[1],
byPath: indexes[2],
byScope: indexes[3],
bySignature: indexes[4]
};
};
/**
* Match an icon using a resource's basename.
*
* @param {String} name - Name of filesystem entity
* @param {Boolean} [directory=false] - Match folders instead of files
* @return {Icon}
*/
IconTables.prototype.matchName = function(name, directory) {
directory = directory !== undefined ? directory : false;
var cachedIcons = directory ? this.cache.directoryName : cache.fileName;
var icons = directory ? this.directoryIcons.byName : this.fileIcons.byName;
if (cachedIcons[name]) {
return cachedIcons[name];
}
for (var i in icons) {
var icon = icons[i];
if (icon.match.test(name)) {
cachedIcons[name] = icon;
return cachedIcons[name];
}
}
return null;
};
/**
* Match an icon using a resource's system path.
*
* @param {String} path - Full pathname to check
* @param {Boolean} [directory=false] - Match folders instead of files
* @return {Icon}
*/
IconTables.prototype.matchPath = function(path, directory) {
directory = directory !== undefined ? directory : false;
var cachedIcons = directory ? cache.directoryName : cache.fileName;
var icons = directory ? this.directoryIcons.byPath : this.fileIcons.byPath;
if (cachedIcons[name]) {
return cachedIcons[name];
}
for (var i in icons) {
var icon = icons[i];
if (icon.match.test(path)) {
cachedIcons[path] = icon;
return cachedIcons[path];
}
}
return null;
};
/**
* Match an icon using the human-readable form of its related language.
*
* Typically used for matching modelines and Linguist-language attributes.
*
* @example IconTables.matchLanguage('JavaScript')
* @param {String} name - Name/alias of language
* @return {Icon}
*/
IconTables.prototype.matchLanguage = function(name) {
if (cache.language[name]) {
return cache.language[name];
}
for (var i in this.fileIcons.byLanguage) {
var icon = this.fileIcons.byLanguage[i];
if (icon.lang.test(name)) {
cache.language[name] = icon;
return cache.language[name];
}
}
return null;
};
/**
* Match an icon using the grammar-scope assigned to it.
*
* @example IconTables.matchScope('source.js')
* @param {String} name
* @return {Icon}
*/
IconTables.prototype.matchScope = function(name) {
if (cache.scope[name]) {
return cache.scope[name];
}
for (var i in this.fileIcons.byScope) {
var icon = this.fileIcons.byScope[i];
if (icon.scope.test(name)) {
cache.scope[name] = icon;
return cache.scope[name];
}
}
return null;
};
/**
* Match an icon using the name of an interpreter which executes its language.
*
* Used for matching interpreter directives (a.k.a., 'hashbangs').
*
* @example IconTables.matchInterpreter('bash')
* @param {String} name
* @return {Icon}
*/
IconTables.prototype.matchInterpreter = function(name) {
if (cache.interpreter[name]) {
return cache.interpreter[name];
}
for (var i in this.fileIcons.byInterpreter) {
var icon = this.fileIcons.byInterpreter[i];
if (icon.interpreter.test(name)) {
cache.interpreter[name] = icon;
return cache.interpreter[name];
}
}
return null;
};
/**
* Match an icon using a resource's file signature.
*
* @example IconTables.matchSignature('\x1F\x8B')
* @param {String} data
* @return {Icon}
*/
IconTables.prototype.matchSignature = function(data) {};
/* ---------------------------------------------------------------------------
* Icons Database
* ------------------------------------------------------------------------- */
var icondb = [
[
[
['arttext-icon', ['purple', 'purple'], /\.artx$/i],
['atom-icon', ['green', 'green'], /^\.atom$/],
['bower-icon', ['yellow', 'orange'], /^bower[-_]components$/],
['dropbox-icon', ['blue', 'blue'], /^(?:Dropbox|\.dropbox\.cache)$/],
['emacs-icon', ['purple', 'purple'], /^\.emacs\.d$/],
['dylib-icon', [null, null], /\.framework$/i],
['git-icon', ['red', 'red'], /\.git$/],
['github-icon', [null, null], /^\.github$/],
['meteor-icon', ['orange', 'orange'], /^\.meteor$/],
['node-icon', ['green', 'green'], /^node_modules$/],
['package-icon', [null, null], /^\.bundle$/i],
['svn-icon', [null, null], /^\.svn$/i],
['textmate-icon', [null, null], /\.tmBundle$/i],
['vagrant-icon', ['cyan', 'cyan'], /\.vagrant$/i],
['appstore-icon', [null, null], /\.xcodeproj$/i]
],
[
[],
[],
[],
[],
[]
]
],
[
[
['binary-icon', ['green', 'green'], /\.swp$/i, 4],
['link-icon', ['blue', 'blue'], /\.lnk$/i, 3],
['angular-icon', ['red', 'red'], /^angular[^.]*\.js$/i, 2],
['ant-icon', ['pink', 'pink'], /^ant\.xml$|\.ant$/i, 2],
['apache-icon', ['red', 'red'], /^(?:apache2?|httpd).conf$/i, 2],
['apache-icon', ['green', 'green'], /\.vhost$/i, 2],
['apache-icon', ['green', 'green'], /\.thrift$/i, 2],
['appcelerator-icon', ['red', 'red'], /^appcelerator\.js$/i, 2],
['appveyor-icon', ['blue', 'blue'], /^appveyor\.yml$/i, 2],
['archlinux-icon', ['purple', 'purple'], /^\.install$/, 2],
['archlinux-icon', ['maroon', 'maroon'], /^\.SRCINFO$/, 2],
['archlinux-icon', ['yellow', 'yellow'], /^pacman\.conf$/, 2],
['archlinux-icon', ['yellow', 'yellow'], /^pamac\.conf$/, 2],
['archlinux-icon', ['cyan', 'cyan'], /^PKGBUILD$/, 2],
['archlinux-icon', ['yellow', 'yellow'], /yaourtrc$/i, 2],
['backbone-icon', ['blue', 'blue'], /^backbone(?:[-.]min|dev)?\.js$/i, 2],
['boot-icon', ['green', 'green'], /^Makefile\.boot$/i, 2],
['bootstrap-icon', ['yellow', 'yellow'], /^(?:custom\.)?bootstrap\S*\.js$/i, 2],
['bootstrap-icon', ['blue', 'blue'], /^(?:custom\.)?bootstrap\S*\.css$/i, 2],
['bootstrap-icon', ['blue', 'blue'], /^(?:custom\.)?bootstrap\S*\.less$/i, 2],
['bootstrap-icon', ['pink', 'pink'], /^(?:custom\.)?bootstrap\S*\.scss$/i, 2],
['bootstrap-icon', ['green', 'green'], /^(?:custom\.)?bootstrap\S*\.styl$/i, 2],
['bower-icon', ['yellow', 'orange'], /^(?:\.bowerrc|bower\.json|Bowerfile)$/i, 2],
['brakeman-icon', ['red', 'red'], /brakeman\.yml$/i, 2],
['brakeman-icon', ['red', 'red'], /^brakeman\.ignore$/i, 2],
['broccoli-icon', ['green', 'green'], /^Brocfile\./i, 2],
['package-icon', ['orange', 'orange'], /Cargo\.toml$/i, 2],
['package-icon', ['orange', 'orange'], /Cargo\.lock$/i, 2],
['chai-icon', ['red', 'red'], /^chai\.(?:[jt]sx?|es6?|coffee)$/i, 2],
['chartjs-icon', ['pink', 'pink'], /^Chart\.js$/i, 2],
['circleci-icon', ['green', 'green'], /^circle\.yml$/i, 2],
['cc-icon', ['green', 'green'], /\.codeclimate\.yml$/i, 2],
['codecov-icon', ['pink', 'pink'], /^codecov\.ya?ml$/i, 2],
['coffee-icon', ['cyan', 'cyan'], /\.coffee\.ecr$/i, 2],
['coffee-icon', ['red', 'red'], /\.coffee\.erb$/i, 2],
['compass-icon', ['red', 'red'], /^_?(?:compass|lemonade)\.scss$/i, 2],
['composer-icon', ['yellow', 'yellow'], /^composer\.(?:json|lock)$/i, 2],
['composer-icon', ['blue', 'blue'], /^composer\.phar$/i, 2],
['cordova-icon', ['blue', 'blue'], /^cordova(?:[^.]*\.|-(?:\d\.)+)js$/i, 2],
['d3-icon', ['orange', 'orange'], /^d3(?:\.v\d+)?[^.]*\.js$/i, 2],
['database-icon', ['red', 'red'], /^METADATA\.pb$/, 2],
['database-icon', ['red', 'red'], /\.git[\/\\](?:.*[\/\\])?(?:HEAD|ORIG_HEAD|packed-refs|logs[\/\\](?:.+[\/\\])?[^\/\\]+)$/, 2, true],
['docker-icon', ['blue', 'blue'], /^(?:Dockerfile|docker-compose)|\.docker(?:file|ignore)$/i, 2, false, , /\.dockerfile$/i, /^Docker$/i],
['docker-icon', ['orange', 'orange'], /^docker-sync\.yml$/i, 2],
['dojo-icon', ['red', 'red'], /^dojo\.js$/i, 2],
['ember-icon', ['red', 'red'], /^ember(?:\.|(?:-[^.]+)?-(?:\d+\.)+(?:debug\.)?)js$/i, 2],
['eslint-icon', ['purple', 'purple'], /\.eslint(?:cache|ignore)$/i, 2],
['eslint-icon', ['purple', 'purple'], /\.eslintrc(?:\.(?:js|json|ya?ml))?$/i, 2],
['extjs-icon', ['green', 'green'], /\bExtjs(?:-ext)?\.js$/i, 2],
['fabfile-icon', ['blue', 'blue'], /^fabfile\.py$/i, 2],
['fuelux-icon', ['orange', 'orange'], /^fuelux(?:\.min)?\.(?:css|js)$/i, 2],
['gear-icon', ['blue', 'blue'], /\.indent\.pro$/i, 2],
['grunt-icon', ['yellow', 'yellow'], /gruntfile\.js$/i, 2],
['grunt-icon', ['maroon', 'maroon'], /gruntfile\.coffee$/i, 2],
['gulp-icon', ['red', 'red'], /gulpfile\.js$|gulpfile\.babel\.js$/i, 2],
['gulp-icon', ['maroon', 'maroon'], /gulpfile\.coffee$/i, 2],
['html5-icon', ['cyan', 'cyan'], /\.html?\.ecr$/i, 2],
['html5-icon', ['red', 'red'], /\.(?:html?\.erb|rhtml)$/i, 2, false, , /\.html\.erb$/i, /^HTML$/i],
['ionic-icon', ['blue', 'blue'], /^ionic\.project$/, 2],
['js-icon', ['cyan', 'cyan'], /\.js\.ecr$/i, 2],
['js-icon', ['red', 'red'], /\.js\.erb$/i, 2],
['jquery-icon', ['blue', 'blue'], /^jquery(?:[-.](?:min|latest|\d\.\d+(?:\.\d+)?))*\.(?:[jt]sx?|es6?|coffee|map)$/i, 2],
['jqueryui-icon', ['blue', 'blue'], /^jquery(?:[-_.](?:ui[-_.](?:custom|dialog-?\w*)|effects)(?:\.[^.]*)?|[-.]?ui(?:-\d\.\d+(?:\.\d+)?)?(?:\.\w+)?)(?:[-_.]?min|dev)?\.(?:[jt]sx?|es6?|coffee|map|s?css|less|styl)$/i, 2],
['karma-icon', ['cyan', 'cyan'], /^karma\.conf\.js$/i, 2],
['karma-icon', ['maroon', 'maroon'], /^karma\.conf\.coffee$/i, 2],
['knockout-icon', ['red', 'red'], /^knockout[-.](?:\d+\.){3}(?:debug\.)?js$/i, 2],
['leaflet-icon', ['green', 'green'], /^leaflet\.(?:draw-src|draw|spin|coordinates-(?:\d+\.)\d+\.\d+\.src)\.(?:js|css)$|^wicket-leaflet\.js$/i, 2],
['lein-icon', [null, null], /project\.clj$/i, 2],
['manpage-icon', ['green', 'green'], /^tmac\.|^(?:mmn|mmt)$/i, 2],
['marko-icon', ['blue', 'blue'], /\.marko$/i, 2, false, /^marko$/, /\.marko$/i, /^mark[0o]$/i],
['marko-icon', ['maroon', 'maroon'], /\.marko\.js$/i, 2],
['materialize-icon', ['red', 'red'], /^materialize(?:\.min)?\.(?:js|css)$/i, 2],
['mathjax-icon', ['green', 'green'], /^MathJax[^.]*\.js$/i, 2],
['mocha-icon', ['maroon', 'maroon'], /^mocha\.(?:[jt]sx?|es6?|coffee)$/i, 2],
['mocha-icon', ['red', 'red'], /^mocha\.(?:s?css|less|styl)$/i, 2],
['mocha-icon', ['maroon', 'maroon'], /mocha\.opts$/i, 2],
['modernizr-icon', ['red', 'red'], /^modernizr(?:[-\.]custom|-\d\.\d+)(?:\.\d+)?\.js$/i, 2],
['mootools-icon', ['purple', 'purple'], /^mootools[^.]*\d+\.\d+(?:.\d+)?[^.]*\.js$/i, 2],
['neko-icon', ['orange', 'orange'], /^run\.n$/, 2],
['newrelic-icon', ['cyan', 'cyan'], /^newrelic\.yml/i, 2],
['nginx-icon', ['green', 'green'], /^nginx\.conf$/i, 2],
['shuriken-icon', ['cyan', 'cyan'], /\.ninja\.d$/i, 2],
['nodemon-icon', ['green', 'green'], /^nodemon\.json$|^\.nodemonignore$/i, 2],
['normalize-icon', ['red', 'red'], /^normalize\.(?:css|less|scss|styl)$/i, 2],
['npm-icon', ['red', 'red'], /^(?:package\.json|\.npmignore|\.?npmrc|npm-debug\.log|npm-shrinkwrap\.json)$/i, 2],
['postcss-icon', ['yellow', 'yellow'], /\bpostcss\.config\.js$/i, 2],
['protractor-icon', ['red', 'red'], /^protractor\.conf\./i, 2],
['pug-icon', ['orange', 'orange'], /^\.pug-lintrc/i, 2],
['raphael-icon', ['orange', 'orange'], /^raphael(?:\.min|\.no-deps)*\.js$/i, 2],
['react-icon', ['blue', 'blue'], /^react(?:-[^.]*)?\.js$/i, 2],
['react-icon', ['blue', 'blue'], /\.react\.js$/i, 2],
['book-icon', ['blue', 'blue'], /^README(?:\b|_)|^(?:licen[sc]es?|(?:read|readme|click|delete|keep|test)\.me)$|\.(?:readme|1st)$/i, 2],
['book-icon', ['blue', 'blue'], /^(?:notice|bugs|changes|change[-_]?log(?:[-._]?\d+)?|contribute|contributing|contributors|copying|hacking|history|install|maintainers|manifest|more\.stuff|projects|revision|terms|thanks)$/i, 2],
['requirejs-icon', ['blue', 'blue'], /^require(?:[-.]min|dev)?\.js$/i, 2],
['clojure-icon', ['maroon', 'maroon'], /^riemann\.config$/i, 2],
['rollup-icon', ['red', 'red'], /^rollup\.config\./i, 2],
['ruby-icon', ['green', 'green'], /_spec\.rb$/i, 2],
['scrutinizer-icon', ['blue', 'blue'], /\.scrutinizer\.yml$/i, 2],
['sencha-icon', ['green', 'green'], /^sencha(?:\.min)?\.js$/i, 2],
['snapsvg-icon', ['cyan', 'cyan'], /^snap\.svg(?:[-.]min)?\.js$/i, 2],
['sourcemap-icon', ['blue', 'blue'], /\.css\.map$/i, 2],
['sourcemap-icon', ['yellow', 'yellow'], /\.js\.map$/i, 2],
['stylelint-icon', ['purple', 'purple'], /^\.stylelintrc(?:\.|$)/i, 2],
['stylelint-icon', ['yellow', 'yellow'], /^stylelint\.config\.js$/i, 2],
['stylelint-icon', ['blue', 'blue'], /\.stylelintignore$/i, 2],
['toc-icon', ['cyan', 'cyan'], /\.toc$/i, 2, false, , /\.toc$/i, /^Table of Contents$/i],
['calc-icon', ['maroon', 'maroon'], /\.8x[pk](?:\.txt)?$/i, 2, false, , , , /^\*\*TI[789]\d\*\*/],
['travis-icon', ['red', 'red'], /^\.travis/i, 2],
['typedoc-icon', ['purple', 'purple'], /^typedoc\.json$/i, 2],
['typings-icon', ['maroon', 'maroon'], /^typings\.json$/i, 2],
['uikit-icon', ['blue', 'blue'], /^uikit(?:\.min)?\.js$/i, 2],
['webpack-icon', ['blue', 'blue'], /webpack\.config\.|^webpackfile\.js$/i, 2],
['wercker-icon', ['purple', 'purple'], /^wercker\.ya?ml$/i, 2],
['yarn-icon', ['blue', 'blue'], /^yarn\.lock$/i, 2],
['yeoman-icon', ['cyan', 'cyan'], /\.yo-rc\.json$/i, 2],
['yui-icon', ['blue', 'blue'], /^(?:yahoo-|yui)[^.]*\.js$/i, 2],
['emacs-icon', ['red', 'red'], /\.gnus$/i, 1.5],
['emacs-icon', ['green', 'green'], /\.viper$/i, 1.5],
['emacs-icon', ['blue', 'blue'], /^Cask$/, 1.5],
['emacs-icon', ['blue', 'blue'], /^Project\.ede$/i, 1.5],
['_1c-icon', ['red', 'red'], /\.bsl$/i, , false, , /\.bsl$/i, /^1C$|^1[\W_ \t]?C[\W_ \t]?Enterprise$/i],
['_1c-icon', ['orange', 'orange'], /\.sdbl$/i, , false, , /\.sdbl$/i, /^1C$|^1[\W_ \t]?C[\W_ \t]?Query$/i],
['_1c-icon', ['red', 'red'], /\.os$/i],
['_1c-alt-icon', ['red', 'red'], /\.mdo$/i],
['abap-icon', ['orange', 'orange'], /\.abap$/i, , false, , /\.abp$/i, /^ABAP$/i],
['as-icon', ['blue', 'blue'], /\.swf$/i],
['as-icon', ['red', 'red'], /\.as$/i, , false, , /\.(?:flex-config|actionscript(?:\.\d+)?)$/i, /^ActionScript$|^(?:ActionScript\s*3|as3)$/i],
['as-icon', ['yellow', 'yellow'], /\.jsfl$/i],
['as-icon', ['red', 'red'], /\.swc$/i],
['ada-icon', ['blue', 'blue'], /\.(?:ada|adb|ads)$/i, , false, , /\.ada$/i, /^Ada$|^(?:ada95|ada2005)$/i],
['ae-icon', ['pink', 'pink'], /\.aep$/i],
['ae-icon', ['purple', 'purple'], /\.aet$/i],
['ai-icon', ['orange', 'orange'], /\.ai$/i],
['ai-icon', ['orange', 'orange'], /\.ait$/i],
['indesign-icon', ['pink', 'pink'], /\.indd$|\.idml$/i],
['indesign-icon', ['purple', 'purple'], /\.indl$/i],
['indesign-icon', ['purple', 'purple'], /\.indt$|\.inx$/i],
['indesign-icon', ['blue', 'blue'], /\.indb$/i],
['psd-icon', ['blue', 'blue'], /\.psd$/i, , false, , , , /^8BPS/],
['psd-icon', ['purple', 'purple'], /\.psb$/i],
['premiere-icon', ['purple', 'purple'], /\.prproj$/i],
['premiere-icon', ['maroon', 'maroon'], /\.prel$/i],
['premiere-icon', ['purple', 'purple'], /\.psq$/i],
['alloy-icon', ['red', 'red'], /\.als$/i, , false, , /\.alloy$/i, /^Alloy$/i],
['alpine-icon', ['blue', 'blue'], /(?:\.|^)APKBUILD$/],
['ampl-icon', ['maroon', 'maroon'], /\.ampl$/i, , false, , /\.ampl$/i, /^AMPL$/i],
['sun-icon', ['yellow', 'yellow'], /\.ansiweatherrc$/i],
['antlr-icon', ['red', 'red'], /\.g$/i, , false, /^antlr$/, /\.antlr$/i, /^antlr$/i],
['antlr-icon', ['orange', 'orange'], /\.g4$/i],
['apache-icon', ['red', 'red'], /\.apacheconf$/i, , false, , /\.apache-config$/i, /^Apache$|^(?:aconf|ApacheConf)$/i],
['apache-icon', ['purple', 'purple'], /apache2[\\\/]magic$/i, , true],
['api-icon', ['blue', 'blue'], /\.apib$/i, , false, , /\.apib$/i, /^API Blueprint$/i],
['apl-icon', ['cyan', 'cyan'], /\.apl$/i, , false, /^apl$/, /\.apl$/i, /^apl$/i],
['apl-icon', ['maroon', 'maroon'], /\.apl\.history$/i],
['apple-icon', ['purple', 'purple'], /\.(?:applescript|scpt)$/i, , false, /^osascript$/, /\.applescript$/i, /^Apple$|^[0o]sascript$/i],
['arc-icon', ['blue', 'blue'], /\.arc$/i],
['arduino-icon', ['cyan', 'cyan'], /\.ino$/i, , false, , /\.arduino$/i, /^Arduino$/i],
['asciidoc-icon', ['blue', 'blue'], /\.(?:ad|adoc|asc|asciidoc)$/i, , false, , /\.asciidoc$/i, /^AsciiDoc$/i],
['asp-icon', ['blue', 'blue'], /\.asp$/i, , false, , /\.asp$/i, /^[Aa][Ss][Pp][\W_ \t]?[Nn][Ee][Tt]$|^aspx(?:-vb)?$/],
['asp-icon', ['maroon', 'maroon'], /\.asax$/i],
['asp-icon', ['green', 'green'], /\.ascx$/i],
['asp-icon', ['green', 'green'], /\.ashx$/i],
['asp-icon', ['cyan', 'cyan'], /\.asmx$/i],
['asp-icon', ['purple', 'purple'], /\.aspx$/i],
['asp-icon', ['cyan', 'cyan'], /\.axd$/i],
['eclipse-icon', ['maroon', 'maroon'], /\.aj$/i],
['binary-icon', ['red', 'red'], /\.(?:l?a|[ls]?o|out|s|a51|n?asm|axf|elf|prx|puff|was[mt]|z80)$|\.rpy[bc]$/i, , false, , /(?:^|\.)(?:a[rs]m|x86|z80|lc-?3|cpu12|x86asm|m68k|assembly|avr(?:dis)?asm|dasm)(?:\.|$)/i, /^Assembly$|^n?asm$/i],
['binary-icon', ['blue', 'blue'], /\.agc$|\.d-objdump$/i, , false, , /\.source\.agc$/i, /^Assembly$|^(?:Virtual\s*)?AGC$|^Apollo(?:[-_\s]*11)?\s*Guidance\s*Computer$/i],
['binary-icon', ['green', 'green'], /\.ko$/i],
['binary-icon', ['blue', 'blue'], /\.lst$/i, , false, /^lst-cpu12$/, /\.lst-cpu12$/i, /^Assembly$|^lst[\W_ \t]?cpu12$/i],
['binary-icon', ['orange', 'orange'], /\.(?:(?:c(?:[+px]{2}?)?-?)?objdump|bsdiff|bin|dat|pak|pdb)$/i],
['binary-icon', ['orange', 'orange'], /\.gcode|\.gco/i],
['binary-icon', ['purple', 'purple'], /\.py[co]$/i],
['binary-icon', [null, null], /\.DS_Store$/i],
['ats-icon', ['red', 'red'], /\.dats$/i, , false, , /\.ats$/i, /^ATS$|^ats2$/i],
['ats-icon', ['blue', 'blue'], /\.hats$/i],
['ats-icon', ['yellow', 'yellow'], /\.sats$/i],
['audacity-icon', ['yellow', 'yellow'], /\.aup$/i],
['audio-icon', ['red', 'red'], /\.mp3$/i, , false, , , , /^\xFF\xFB|^ID3/],
['audio-icon', ['yellow', 'yellow'], /\.wav$/i, , false, , , , /^RIFF(?!.+WEBP)/],
['audio-icon', ['cyan', 'cyan'], /\.(?:aac|ac3|m4p)$/i, , false, , , , /^\x0Bw/],
['audio-icon', ['purple', 'purple'], /\.aif[fc]?$/i, , false, , , , /^FORM.{4}AIFF/],
['audio-icon', ['cyan', 'cyan'], /\.au$/i, , false, , , , /^\.snd|^dns\./],
['audio-icon', ['red', 'red'], /\.flac$/i, , false, , , , /^fLaC/],
['audio-icon', ['red', 'red'], /\.f4[ab]$/i, , false, , , , /^FLV\x01\x04/],
['audio-icon', ['cyan', 'cyan'], /\.m4a$/i, , false, , , , /^.{4}ftypM4A/],
['audio-icon', ['green', 'green'], /\.(?:mpc|mp\+)$/i, , false, , , , /^MPCK/],
['audio-icon', ['orange', 'orange'], /\.oga$/i],
['audio-icon', ['maroon', 'maroon'], /\.opus$/i, , false, , , , /OpusHead/],
['audio-icon', ['blue', 'blue'], /\.r[am]$/i, , false, , , , /^\.RMF/],
['audio-icon', ['blue', 'blue'], /\.wma$/i],
['augeas-icon', ['orange', 'orange'], /\.aug$/i],
['ahk-icon', ['blue', 'blue'], /\.ahk$/i, , false, /^ahk$/, /\.ahk$/i, /^AutoHotkey$|^ahk$/i],
['ahk-icon', ['purple', 'purple'], /\.ahkl$/i],
['autoit-icon', ['purple', 'purple'], /\.au3$/i, , false, , /(?:^|\.)autoit(?:\.|$)/i, /^AutoIt$|^(?:AutoIt3|AutoItScript|au3)$/i],
['terminal-icon', ['blue', 'blue'], /\.awk$/i, , false, /^awk$/, /\.awk$/i, /^awk$/i],
['terminal-icon', ['red', 'red'], /\.gawk$/i, , false, /^gawk$/, /\.gawk$/i, /^AWK$|^gawk$/i],
['terminal-icon', ['maroon', 'maroon'], /\.mawk$/i, , false, /^mawk$/, /\.mawk$/i, /^AWK$|^mawk$/i],
['terminal-icon', ['green', 'green'], /\.nawk$/i, , false, /^nawk$/, /\.nawk$/i, /^AWK$|^nawk$/i],
['terminal-icon', ['cyan', 'cyan'], /\.auk$/i],
['babel-icon', ['yellow', 'yellow'], /\.(?:babelrc|languagebabel|babel)$/i],
['babel-icon', ['yellow', 'yellow'], /\.babelignore$/i],
['bibtex-icon', ['red', 'red'], /\.cbx$/i],
['bibtex-icon', ['orange', 'orange'], /\.bbx$/i],
['bibtex-icon', ['yellow', 'yellow'], /\.bib$/i, , false, /^bibtex$/, /\.bibtex$/i, /^bibtex$/i],
['bibtex-icon', ['green', 'green'], /\.bst$/i],
['gnu-icon', ['red', 'red'], /\.bison$/i, , false, , /\.bison$/i, /^Bison$/i],
['blender-icon', ['orange', 'orange'], /\.blend$/i],
['blender-icon', ['orange', 'orange'], /\.blend\d+$/i],
['blender-icon', ['blue', 'blue'], /\.bphys$/i],
['bluespec-icon', ['blue', 'blue'], /\.bsv$/i, , false, , /\.bsv$/i, /^Bluespec$/i],
['boo-icon', ['green', 'green'], /\.boo$/i, , false, , /\.boo(?:\.unity)?$/i, /^Boo$/i],
['boot-icon', [null, null], /\.boot$/i],
['brain-icon', ['pink', 'pink'], /\.bf?$/i, , false, , /\.(?:bf|brainfuck)$/i, /^Brainfuck$|^(?:bf|Brainf\**ck)$/i],
['brew-icon', ['orange', 'orange'], /^Brewfile$/],
['bro-icon', ['cyan', 'cyan'], /\.bro$/i, , false, , /\.bro$/i, /^Bro$/i],
['byond-icon', ['blue', 'blue'], /\.dm$/i, , false, , /\.dm$/i, /^BYOND$|^(?:DM|Dream\s*Maker(?:\s*Script)?)$/i],
['c-icon', ['blue', 'blue'], /\.c$/i, , false, /^tcc$/, /\.c$/i, /^C$/i],
['c-icon', ['purple', 'purple'], /\.h$|\.cats$/i],
['c-icon', ['green', 'green'], /\.idc$/i],
['c-icon', ['maroon', 'maroon'], /\.w$/i],
['c-icon', ['blue', 'blue'], /\.nc$/i],
['c-icon', ['cyan', 'cyan'], /\.upc$/i],
['csharp-icon', ['blue', 'blue'], /\.cs$/i, , false, , /\.cs$/i, /^C#$|^c\s*sharp$/i],
['csscript-icon', ['green', 'green'], /\.csx$/i, , false, , /\.csx$/i, /^C#-Script$/i],
['cpp-icon', ['blue', 'blue'], /\.c[+px]{2}$|\.cc$/i, , false, , /\.cpp$/i, /^C\+\+$|c[-_]?pp|cplusplus/i],
['cpp-icon', ['purple', 'purple'], /\.h[+px]{2}$/i],
['cpp-icon', ['orange', 'orange'], /\.[it]pp$/i],
['cpp-icon', ['red', 'red'], /\.(?:tcc|inl)$/i],
['cabal-icon', ['cyan', 'cyan'], /\.cabal$/i, , false, , /\.cabal$/i, /^Cabal$/i],
['cake-icon', ['yellow', 'yellow'], /\.cake$/i, , false, , /\.cake$/i, /^Cake$/i],
['cakefile-icon', ['red', 'red'], /^Cakefile$/],
['cakephp-icon', ['red', 'red'], /\.ctp$/i],
['ceylon-icon', ['orange', 'orange'], /\.ceylon$/i],
['chapel-icon', ['green', 'green'], /\.chpl$/i, , false, , /\.chapel$/i, /^Chapel$|^chpl$/i],
['chrome-icon', ['red', 'red'], /\.crx$/i, , false, , , , /^Cr24/],
['chuck-icon', ['green', 'green'], /\.ck$/i, , false, , /\.chuck$/i, /^ChucK$/i],
['cirru-icon', ['pink', 'pink'], /\.cirru$/i, , false, , /\.cirru$/i, /^Cirru$/i],
['clarion-icon', ['orange', 'orange'], /\.clw$/i, , false, , /\.clarion$/i, /^Clarion$/i],
['clean-icon', ['cyan', 'cyan'], /\.icl$/i, , false, /^clean$/, /\.clean$/i, /^clean$/i],
['clean-icon', ['cyan', 'cyan'], /\.dcl$/i],
['clean-icon', ['blue', 'blue'], /\.abc$/i],
['click-icon', ['yellow', 'yellow'], /\.click$/i, , false, , /\.click$/i, /^Click$|^Click!$/i],
['clips-icon', ['green', 'green'], /\.clp$/i, , false, , /\.clips$/i, /^CLIPS$/i],
['clojure-icon', ['blue', 'blue'], /\.clj$/i, , false, /^clojure$/, /\.clojure$/i, /^cl[0o]jure$/i],
['clojure-icon', ['purple', 'purple'], /\.cl2$/i],
['clojure-icon', ['green', 'green'], /\.cljc$/i],
['clojure-icon', ['red', 'red'], /\.cljx$|\.hic$/i],
['cljs-icon', ['blue', 'blue'], /\.cljs(?:\.hl|cm)?$/i],
['cmake-icon', ['green', 'green'], /\.cmake$/i, , false, /^cmake$/, /\.cmake$/i, /^cmake$/i],
['cmake-icon', ['red', 'red'], /^CMakeLists\.txt$/],
['coffee-icon', ['maroon', 'maroon'], /\.coffee$/i, , false, /^coffee$/, /\.coffee$/i, /^CoffeeScript$|^Coffee(?:-Script)?$/i],
['coffee-icon', ['maroon', 'maroon'], /\.cjsx$/i],
['coffee-icon', ['maroon', 'maroon'], /\.litcoffee$/i, , false, /^litcoffee$/, /\.litcoffee$/i, /^CoffeeScript$|^litc[0o]ffee$/i],
['coffee-icon', ['blue', 'blue'], /\.iced$/i],
['cf-icon', ['cyan', 'cyan'], /\.cfc$/i, , false, , /\.cfscript$/i, /^ColdFusion$|^(?:CFC|CFScript)$/i],
['cf-icon', ['cyan', 'cyan'], /\.cfml?$/i, , false, , /\.cfml?$/i, /^ColdFusion$|^(?:cfml?|ColdFusion\s*HTML)$/i],
['khronos-icon', ['orange', 'orange'], /\.dae$/i],
['cl-icon', ['orange', 'orange'], /\.cl$/i, , false, /^(?:c?lisp|sbcl|[ec]cl)$/, /\.common-lisp$/i, /^Common Lisp$|^c?lisp$/i],
['cp-icon', ['maroon', 'maroon'], /\.cp$/i],
['cp-icon', ['red', 'red'], /\.cps$/i],
['zip-icon', [null, null], /\.(?:zip|z|xz)$/i, , false, , , , /^(?:\x50\x4B(?:\x03\x04|\x05\x06|\x07|\x08)|\x1F[\x9D\xA0]|BZh|RNC[\x01\x02]|\xD0\xCF\x11\xE0)/],
['zip-icon', ['blue', 'blue'], /\.rar$/i, , false, , , , /^Rar!\x1A\x07\x01?\0/],
['zip-icon', ['blue', 'blue'], /\.t?gz$|\.tar$|\.whl$/i, , false, , , , /^\x1F\x8B/],
['zip-icon', ['maroon', 'maroon'], /\.(?:lzo?|lzma|tlz|tar\.lzma)$/i, , false, , , , /^LZIP/],
['zip-icon', ['maroon', 'maroon'], /\.7z$/i, , false, , , , /^7z\xBC\xAF\x27\x1C/],
['zip-icon', ['red', 'red'], /\.apk$|\.gem$/i],
['zip-icon', ['cyan', 'cyan'], /\.bz2$/i],
['zip-icon', ['blue', 'blue'], /\.iso$/i, , false, , , , /^\x45\x52\x02\0{3}|^\x8B\x45\x52\x02/],
['zip-icon', ['orange', 'orange'], /\.xpi$/i],
['zip-icon', ['green', 'green'], /\.epub$/i],
['zip-icon', ['pink', 'pink'], /\.jar$/i],
['zip-icon', ['purple', 'purple'], /\.war$/i],
['zip-icon', ['orange', 'orange'], /\.xar$/i, , false, , , , /^xar!/],
['zip-icon', ['orange', 'orange'], /\.egg$/i],
['config-icon', ['yellow', 'yellow'], /\.(?:ini|desktop|directory|cfg|conf|prefs)$/i, , false, , /\.ini$/i, /^d[0o]sini$/i],
['config-icon', ['purple', 'purple'], /\.properties$/i, , false, , /\.java-properties$/i],
['config-icon', ['green', 'green'], /\.toml$|\.opts$/i],
['config-icon', ['red', 'red'], /\.ld$/i],
['config-icon', ['red', 'red'], /\.lds$|\.reek$/i],
['config-icon', ['blue', 'blue'], /\.terminal$/i],
['config-icon', ['orange', 'orange'], /^ld\.script$/i],
['config-icon', ['red', 'red'], /\.git[\/\\](?:config|info[\/\\]\w+)$/, , true],
['config-icon', ['orange', 'orange'], /^\/(?:private\/)?etc\/(?:[^\/]+\/)*[^\/]*\.(?:cf|conf|ini)(?:\.default)?$/i, , true],
['config-icon', ['maroon', 'maroon'], /^\/(?:private\/)?etc\/(?:aliases|auto_(?:home|master)|ftpusers|group|gettytab|hosts(?:\.equiv)?|manpaths|networks|paths|protocols|services|shells|sudoers|ttys)$/i, , true],
['coq-icon', ['maroon', 'maroon'], /\.coq$/i, , false, , /\.coq$/i, /^Coq$/i],
['creole-icon', ['blue', 'blue'], /\.creole$/i, , false, , /\.creole$/i, /^Creole$/i],
['crystal-icon', ['cyan', 'cyan'], /\.e?cr$/i, , false, /^crystal$/, /\.crystal$/i, /^Crystal$/i],
['csound-icon', ['maroon', 'maroon'], /\.orc$/i, , false, , /\.csound$/i, /^Csound$|^cs[0o]und[\W_ \t]?[0o]rc$/i],
['csound-icon', ['orange', 'orange'], /\.udo$/i],
['csound-icon', ['maroon', 'maroon'], /\.csd$/i, , false, , /\.csound-document$/i, /^Csound$|^cs[0o]und[\W_ \t]?csd$/i],
['csound-icon', ['blue', 'blue'], /\.sco$/i, , false, , /\.csound-score$/i, /^Csound$|^cs[0o]und[\W_ \t]?sc[0o]$/i],
['css3-icon', ['blue', 'blue'], /\.css$/i, , false, /^css$/, /\.css$/i, /^css$/i],
['css3-icon', ['blue', 'blue'], /\.less$/i, , false, /^less$/, /\.less$/i, /^CSS$|^less$/i],
['cucumber-icon', ['green', 'green'], /\.feature$/i, , false, , /(?:^|\.)(?:gherkin\.feature|cucumber\.steps)(?:\.|$)/i, /^Cucumber$|^gherkin$/i],
['nvidia-icon', ['green', 'green'], /\.cu$/i, , false, , /\.cuda(?:-c\+\+)?$/i, /^CUDA$/i],
['nvidia-icon', ['green', 'green'], /\.cuh$/i],
['cython-icon', ['orange', 'orange'], /\.pyx$/i, , false, , /\.cython$/i, /^Cython$|^pyrex$/i],
['cython-icon', ['blue', 'blue'], /\.pxd$/i],
['cython-icon', ['blue', 'blue'], /\.pxi$/i],
['dlang-icon', ['red', 'red'], /\.di?$/i, , false, , /\.d$/i, /^D$/i],
['yang-icon', ['red', 'red'], /\.dnh$/i, , false, , /\.danmakufu$/i, /^Danmakufu$/i],
['darcs-icon', ['green', 'green'], /\.d(?:arcs)?patch$/i],
['dart-icon', ['cyan', 'cyan'], /\.dart$/i, , false, /^dart$/, /\.dart$/i, /^Dart$/i],
['dashboard-icon', ['orange', 'orange'], /\.s[kl]im$/i, , false, /^slim$/, /\.slim$/i, /^slim$/i],
['dashboard-icon', ['green', 'green'], /\.cpuprofile$/i],
['database-icon', ['yellow', 'yellow'], /\.(?:h|geo|topo)?json$/i],
['database-icon', ['red', 'red'], /\.ya?ml$/i],
['database-icon', ['maroon', 'maroon'], /\.cson$|\.ston$|^mime\.types$/i],
['database-icon', ['yellow', 'yellow'], /\.json5$/i, , false, /^json5$/, /\.json5$/i, /^js[0o]n5$/i],
['database-icon', ['red', 'red'], /\.http$|\.pot?$/i],
['database-icon', ['orange', 'orange'], /\.ndjson$|\.pytb$/i, , false, , /\.python\.traceback$/i],
['database-icon', ['blue', 'blue'], /\.fea$/i, , false, , /\.opentype$/i, /^afdk[0o]$/i],
['database-icon', ['purple', 'purple'], /\.json\.eex$|\.edn$/i],
['database-icon', ['cyan', 'cyan'], /\.proto$/i, , false, , /\.protobuf$/i, /^(?:protobuf|Protocol\s*Buffers?)$/i],
['database-icon', ['blue', 'blue'], /\.pydeps$|\.rviz$/i],
['database-icon', ['purple', 'purple'], /\.eam\.fs$/i],
['database-icon', ['pink', 'pink'], /\.qml$/i],
['database-icon', ['pink', 'pink'], /\.qbs$/i],
['database-icon', ['cyan', 'cyan'], /\.ttl$/i, , false, , /\.turtle$/i],
['database-icon', ['blue', 'blue'], /\.syntax$/i],
['database-icon', ['red', 'red'], /[\/\\](?:magic[\/\\]Magdir|file[\/\\]magic)[\/\\][-.\w]+$|lib[\\\/]icons[\\\/]\.icondb\.js$/i, , true],
['dbase-icon', ['red', 'red'], /\.dbf$/i],
['debian-icon', ['red', 'red'], /\.deb$/i],
['debian-icon', ['cyan', 'cyan'], /^control$/],
['debian-icon', ['cyan', 'cyan'], /^rules$/],
['diff-icon', ['orange', 'orange'], /\.diff$/i, , false, , /\.diff$/i, /^Diff$|^udiff$/i],
['earth-icon', ['blue', 'blue'], /\.zone$/i],
['earth-icon', ['green', 'green'], /\.arpa$/i],
['earth-icon', ['blue', 'blue'], /^CNAME$/],
['doxygen-icon', ['blue', 'blue'], /^Doxyfile$/, , false, , /\.doxygen$/i, /^Doxyfile$/i],
['dyalog-icon', ['orange', 'orange'], /\.dyalog$/i, , false, /^dyalog$/],
['dylib-icon', ['cyan', 'cyan'], /\.(?:dylib|bundle)$/i],
['e-icon', ['green', 'green'], /\.E$/, , false, /^rune$/],
['eagle-icon', ['red', 'red'], /\.sch$/i],
['eagle-icon', ['red', 'red'], /\.brd$/i],
['ec-icon', ['blue', 'blue'], /\.ec$/i, , false, /^ec$/, /\.ec$/i, /^ec$/i],
['ec-icon', ['purple', 'purple'], /\.eh$/i],
['ecere-icon', ['blue', 'blue'], /\.epj$/i],
['eclipse-icon', ['blue', 'blue'], /\.c?project$/],
['eclipse-icon', ['red', 'red'], /\.classpath$/i],
['editorconfig-icon', ['orange', 'orange'], /\.editorconfig$/i, , false, , /\.editorconfig$/i, /^EditorConfig$/i],
['eiffel-icon', ['cyan', 'cyan'], /\.e$/, , false, , /\.eiffel$/i, /^Eiffel$/i],
['elixir-icon', ['purple', 'purple'], /\.ex$/i, , false, /^elixir$/, /\.elixir$/i, /^elixir$/i],
['elixir-icon', ['purple', 'purple'], /\.(?:exs|eex)$/i],
['elixir-icon', ['purple', 'purple'], /mix\.exs?$/i],
['elm-icon', ['blue', 'blue'], /\.elm$/i, , false, , /\.elm$/i, /^Elm$/i],
['emacs-icon', ['purple', 'purple'], /(?:^|\.)(?:el|_?emacs|spacemacs|emacs\.desktop|abbrev[-_]defs)$/i, , false, /^emacs$/, /\.emacs\.lisp$/i, /^Emacs Lisp$|^elisp$/i],
['emacs-icon', ['purple', 'purple'], /(?:^|\.)(?:elc|eld)$/i, , false, , , , /^;ELC\x17\0{3}/],
['at-icon', ['red', 'red'], /^(?:authors|owners)$/i],
['em-icon', ['red', 'red'], /\.emberscript$/i, , false, , /\.ember(?:script)?$/i, /^EmberScript$/i],
['mustache-icon', ['blue', 'blue'], /\.em(?:blem)?$/i, , false, , /\.emblem$/i, /^Emblem$/i],
['eq-icon', ['orange', 'orange'], /\.eq$/i, , false, , /\.eq$/i, /^EQ$/i],
['erlang-icon', ['red', 'red'], /\.erl$/i, , false, /^escript$/, /\.erlang$/i, /^Erlang$/i],
['erlang-icon', ['red', 'red'], /\.beam$/i],
['erlang-icon', ['maroon', 'maroon'], /\.hrl$/i],
['erlang-icon', ['green', 'green'], /\.xrl$/i],
['erlang-icon', ['green', 'green'], /\.yrl$/i],
['erlang-icon', ['maroon', 'maroon'], /\.app\.src$/i],
['factor-icon', ['orange', 'orange'], /\.factor$/i, , false, , /\.factor$/i, /^Factor$/i],
['factor-icon', ['orange', 'orange'], /\.factor-rc$/i],
['factor-icon', ['red', 'red'], /\.factor-boot-rc$/i],
['fancy-icon', ['blue', 'blue'], /\.fy$/i, , false, /^fancy$/, /\.fancy$/i, /^fancy$/i],
['fancy-icon', ['blue', 'blue'], /\.fancypack$/i],
['fancy-icon', ['green', 'green'], /^Fakefile$/],
['fantom-icon', ['blue', 'blue'], /\.fan$/i, , false, , /\.fan(?:tom)?$/i, /^Fantom$/i],
['fbx-icon', ['maroon', 'maroon'], /\.fbx$/i],
['finder-icon', ['blue', 'blue'], /^Icon\r$/],
['finder-icon', ['blue', 'blue'], /\.rsrc$/i],
['flow-icon', ['orange', 'orange'], /\.(?:flowconfig|js\.flow)$/i],
['flux-icon', ['blue', 'blue'], /\.fx$/i],
['flux-icon', ['blue', 'blue'], /\.flux$/i],
['font-icon', ['blue', 'blue'], /\.woff2$/i, , false, , , , /^wOF2/],
['font-icon', ['blue', 'blue'], /\.woff$/i, , false, , , , /^wOFF/],
['font-icon', ['green', 'green'], /\.eot$/i, , false, , , , /^.{34}LP/],
['font-icon', ['green', 'green'], /\.ttc$/i, , false, , , , /^ttcf/],
['font-icon', ['green', 'green'], /\.ttf$/i, , false, , , , /^\0\x01\0{3}/],
['font-icon', ['yellow', 'yellow'], /\.otf$/i, , false, , , , /^OTTO.*\0/],
['font-icon', ['red', 'red'], /\.pfb$/i],
['font-icon', ['red', 'red'], /\.pfm$/i],
['ff-icon', ['orange', 'orange'], /\.pe$/i, , false, /^fontforge$/, /\.source\.fontforge$/i, /^FontForge$|^pfaedit$/i],
['ff-icon', ['blue', 'blue'], /\.sfd$/i, , false, , /\.text\.sfd$/i, /^FontForge$/i],
['fortran-icon', ['maroon', 'maroon'], /\.f$/i, , false, , /\.fortran\.?(?:modern|punchcard)?$/i, /^Fortran$/i],
['fortran-icon', ['green', 'green'], /\.f90$/i, , false, , /\.fortran\.free$/i, /^Fortran$/i],
['fortran-icon', ['red', 'red'], /\.f03$/i],
['fortran-icon', ['blue', 'blue'], /\.f08$/i],
['fortran-icon', ['maroon', 'maroon'], /\.f77$/i, , false, , /\.fortran\.fixed$/i, /^Fortran$/i],
['fortran-icon', ['pink', 'pink'], /\.f95$/i],
['fortran-icon', ['cyan', 'cyan'], /\.for$/i],
['fortran-icon', ['yellow', 'yellow'], /\.fpp$/i],
['freemarker-icon', ['blue', 'blue'], /\.ftl$/i, , false, , /\.ftl$/i, /^FreeMarker$|^ftl$/i],
['frege-icon', ['red', 'red'], /\.fr$/i],
['fsharp-icon', ['blue', 'blue'], /\.fs[xi]?$/i, , false, , /\.fsharp$/i, /^FSharp$|^f#$/i],
['gml-icon', ['green', 'green'], /\.gml$/i],
['gams-icon', ['red', 'red'], /\.gms$/i, , false, , /\.gams(?:-lst)?$/i, /^GAMS$/i],
['gap-icon', ['yellow', 'yellow'], /\.gap$/i, , false, /^gap$/, /\.gap$/i, /^gap$/i],
['gap-icon', ['blue', 'blue'], /\.gi$/i],
['gap-icon', ['orange', 'orange'], /\.tst$/i],
['gdb-icon', ['green', 'green'], /\.gdb$/i, , false, /^gdb$/, /\.gdb$/i, /^gdb$/i],
['gdb-icon', ['cyan', 'cyan'], /gdbinit$/i],
['godot-icon', ['blue', 'blue'], /\.gd$/i, , false, , /\.gdscript$/i, /^GDScript$/i],
['gear-icon', ['red', 'red'], /^\.htaccess$|\.yardopts$/i],
['gear-icon', ['orange', 'orange'], /^\.htpasswd$/i],
['gear-icon', ['green', 'green'], /^\.env\.|\.pairs$/i],
['gear-icon', ['yellow', 'yellow'], /^\.lesshintrc$/i],
['gear-icon', ['yellow', 'yellow'], /^\.csscomb\.json$|\.csslintrc$|\.jsbeautifyrc$|\.jshintrc$|\.jscsrc$/i],
['gear-icon', ['maroon', 'maroon'], /\.coffeelintignore$|\.codoopts$/i],
['gear-icon', ['blue', 'blue'], /\.module$/i],
['gear-icon', ['blue', 'blue'], /\.arcconfig$|\.python-version$/i],
['gear-icon', ['orange', 'orange'], /\.lintstagedrc$/i],
['gears-icon', ['orange', 'orange'], /\.dll$/i, , false, , , , /^PMOCCMOC/],
['code-icon', ['blue', 'blue'], /\.xml$|\.config$|\.4th$|\.cocci$|\.dyl$|\.dylan$|\.ecl$|\.forth$|\.launch$|\.manifest$|\.menu$|\.srdf$|\.st$|\.ui$|\.wsf$|\.x3d$|\.xaml$/i, , false, , , , /^<\?xml /],
['code-icon', ['red', 'red'], /\.rdf$|\.capnp$|\.dotsettings$|\.flex$|\.fsh$|\.fsproj$|\.prw$|\.xproj$/i, , false, , /\.capnp$/i],
['code-icon', ['blue', 'blue'], /^_service$/],
['code-icon', ['red', 'red'], /^configure\.ac$|\.ML$/],
['code-icon', ['green', 'green'], /^Settings\.StyleCop$/],
['code-icon', ['green', 'green'], /\.abnf$|\.ditaval$|\.storyboard$|\.xmi$|\.yacc$/i, , false, /^abnf$/, /\.abnf$/i, /^abnf$/i],
['code-icon', ['purple', 'purple'], /\.aepx$|\.dita$|\.grace$|\.lid$|\.nproj$/i],
['code-icon', ['cyan', 'cyan'], /\.agda$|\.plist$|\.wisp$|\.xlf$|\.xslt$/i, , false, , /\.plist$/i],
['code-icon', ['orange', 'orange'], /\.appxmanifest$|\.befunge$|\.fun$|\.muf$|\.xul$/i],
['code-icon', ['cyan', 'cyan'], /\.ash$|\.asn1?$|\.lagda$|\.lex$|\.props$|\.resx$|\.smt2$|\.vsh$|\.xsl$|\.yy$/i, , false, /^xsl$/, /\.xsl$/i],
['code-icon', ['blue', 'blue'], /\.axml$|\.bmx$|\.brs$|\.ccxml$|\.clixml$|\.fth$|\.intr$|\.mdpolicy$|\.mtml$|\.myt$|\.xsd$/i, , false, /^brightscript$/, /\.brightscript$/i],
['code-icon', ['maroon', 'maroon'], /\.bnf$|\.cbl$|\.cob$|\.cobol$|\.fxml$/i, , false, /^bnf$/, /\.bnf$/i, /^bnf$/i],
['code-icon', ['maroon', 'maroon'], /\.ccp$|\.cpy$|\.mxml$/i],
['code-icon', ['red', 'red'], /\.ch$|\.cw$|\.ebnf$|\.iml$|\.jflex$|\.m4$|\.mask$|\.mumps$|\.prg$|\.pt$|\.rl$|\.sml$|\.targets$|\.webidl$|\.wsdl$|\.xacro$|\.xliff$/i, , false, /^ebnf$/, /\.ebnf$/i],
['code-icon', ['pink', 'pink'], /\.ct$|\.zcml$/i],
['code-icon', ['green', 'green'], /\.cy$|\.eclxml$|\.ivy$|\.sed$|\.tml$|\.y$/i],
['code-icon', ['purple', 'purple'], /\.ditamap$|\.frt$|\.lp$|\.omgrofl$|\.osm$|\.wxs$|\.xib$/i],
['code-icon', ['pink', 'pink'], /\.filters$|\.lol$|\.pig$/i],
['code-icon', ['orange', 'orange'], /\.grxml$|\.urdf$/i],
['code-icon', ['yellow', 'yellow'], /\.jelly$/i],
['code-icon', ['yellow', 'yellow'], /\.jsproj$|\.ohm$|\.sgml?$/i, , false, /^ohm$/, /\.ohm$/i],
['code-icon', ['blue', 'blue'], /\.mq[45h]$/i, , false, , /(?:^|\.)mq[45](?=\.|$)/i],
['code-icon', ['green', 'green'], /\.odd$/i],
['code-icon', ['blue', 'blue'], /\.psc1$|\.smt$/i, , false, /boolector|cvc4|mathsat5|opensmt|smtinterpol|smt-rat|stp|verit|yices2|z3/, /\.smt$/i],
['code-icon', ['cyan', 'cyan'], /\.scxml$/i],
['code-icon', ['maroon', 'maroon'], /\.sig$|\.wxl$/i],
['code-icon', ['orange', 'orange'], /\.ux$|\.wxi$/i],
['code-icon', ['purple', 'purple'], /\.vxml$/i],
['genshi-icon', ['red', 'red'], /\.kid$/i, , false, , /\.genshi$/i, /^Genshi$|^xml\+(?:genshi|kid)$/i],
['gentoo-icon', ['cyan', 'cyan'], /\.ebuild$/i, , false, , /\.ebuild$/i, /^Gentoo$/i],
['gentoo-icon', ['blue', 'blue'], /\.eclass$/i],
['git-icon', ['red', 'red'], /^\.git|^\.keep$|\.mailmap$/i, , false, , /\.git-(?:commit|config|rebase)$/i, /^Git$/i],
['git-commit-icon', ['red', 'red'], /^COMMIT_EDITMSG$/],
['git-merge-icon', ['red', 'red'], /^MERGE_(?:HEAD|MODE|MSG)$/],
['glade-icon', ['green', 'green'], /\.glade$/i],
['pointwise-icon', ['blue', 'blue'], /\.glf$/i],
['glyphs-icon', ['green', 'green'], /\.glyphs$/i],
['gn-icon', ['blue', 'blue'], /\.gn$/i, , false, /^gn$/, /\.gn$/i, /^gn$/i],
['gn-icon', ['blue', 'blue'], /\.gni$/i],
['gnu-icon', ['red', 'red'], /\.(?:gnu|gplv[23])$/i],
['graph-icon', ['red', 'red'], /\.(?:gp|plo?t|gnuplot)$/i, , false, /^gnuplot$/, /\.gnuplot$/i, /^Gnuplot$/i],
['go-icon', ['blue', 'blue'], /\.go$/i, , false, , /\.go(?:template)?$/i, /^Go$/i],
['golo-icon', ['orange', 'orange'], /\.golo$/i, , false, , /\.golo$/i, /^Golo$/i],
['gosu-icon', ['blue', 'blue'], /\.gs$/i, , false, , /\.gosu(?:\.\d+)?$/i, /^Gosu$/i],
['gosu-icon', ['green', 'green'], /\.gst$/i],
['gosu-icon', ['green', 'green'], /\.gsx$/i],
['gosu-icon', ['blue', 'blue'], /\.vark$/i],
['gradle-icon', ['blue', 'blue'], /\.gradle$/i, , false, , /\.gradle$/i, /^Gradle$/i],
['gradle-icon', ['purple', 'purple'], /gradlew$/i],
['gf-icon', ['red', 'red'], /\.gf$/i],
['graphql-icon', ['pink', 'pink'], /\.graphql$/i, , false, , /\.graphql$/i, /^GraphQL$/i],
['graphql-icon', ['purple', 'purple'], /\.gql$/i],
['graphviz-icon', ['blue', 'blue'], /\.gv$/i, , false, , /\.dot$/i, /^Graphviz$/i],
['graphviz-icon', ['cyan', 'cyan'], /\.dot$/i],
['groovy-icon', ['blue', 'blue'], /\.(?:groovy|grt|gtpl|gsp|gvy)$/i, , false, /^groovy$/, /\.groovy$/i, /^Groovy$|^gsp$/i],
['hack-icon', ['orange', 'orange'], /\.hh$/i, , false, , /\.hack$/i, /^Hack$/i],
['haml-icon', ['yellow', 'yellow'], /\.haml$/i, , false, /^haml$/, /\.haml$/i, /^haml$/i],
['haml-icon', ['maroon', 'maroon'], /\.hamlc$/i, , false, /^hamlc$/, /\.hamlc$/i, /^Haml$|^hamlc$/i],
['harbour-icon', ['blue', 'blue'], /\.hb$/i, , false, , /\.harbour$/i, /^Harbour$/i],
['hashicorp-icon', ['purple', 'purple'], /\.hcl$/i, , false, , /(?:^|\.)(?:hcl|hashicorp)(?:\.|$)/i, /^Hashicorp Configuration Language$/i],
['haskell-icon', ['purple', 'purple'], /\.hs$/i, , false, /^runhaskell$/, /\.source\.haskell$/i, /^Haskell$/i],
['haskell-icon', ['blue', 'blue'], /\.hsc$/i, , false, , /\.hsc2hs$/i, /^Haskell$/i],
['haskell-icon', ['purple', 'purple'], /\.c2hs$/i, , false, , /\.c2hs$/i, /^Haskell$|^C2hs(?:\s*Haskell)?$/i],
['haskell-icon', ['blue', 'blue'], /\.lhs$/i, , false, , /\.latex\.haskell$/i, /^Haskell$|^(?:lhaskell|lhs|Literate\s*Haskell)$/i],
['haxe-icon', ['orange', 'orange'], /\.hx(?:[sm]l|)?$/, , false, , /(?:^|\.)haxe(?:\.\d+)?$/i, /^Haxe$/i],
['heroku-icon', ['purple', 'purple'], /^Procfile$/],
['heroku-icon', ['purple', 'purple'], /\.buildpacks$/i],
['heroku-icon', ['purple', 'purple'], /^\.vendor_urls$/],
['html5-icon', ['orange', 'orange'], /\.x?html?$/i, , false, , /\.html\.basic$/i, /^HTML$|^(?:xhtml|htm)$/i],
['html5-icon', ['red', 'red'], /\.cshtml$|\.latte$/i, , false, /^latte$/, /\.latte$/i],
['html5-icon', ['green', 'green'], /\.ejs$|\.kit$|\.swig$/i, , false, /^swig$/, /\.swig$/i],
['html5-icon', ['blue', 'blue'], /\.gohtml$|\.phtml$/i, , false, /^gohtml$/, /\.gohtml$/i, /^HTML$|^g[0o]html$/i],
['html5-icon', ['purple', 'purple'], /\.html\.eex$|\.jsp$/i, , false, , /\.jsp$/i],
['html5-icon', ['cyan', 'cyan'], /\.shtml$/i],
['html5-icon', ['red', 'red'], /\.scaml$/i, , false, /^scaml$/, /\.scaml$/i, /^HTML$|^scaml$/i],
['html5-icon', ['red', 'red'], /\.vash$/i, , false, /^vash$/, /\.vash$/i, /^HTML$|^vash$/i],
['html5-icon', ['blue', 'blue'], /\.dtml$/i, , false, /^dtml$/, /\.dtml$/i, /^HTML$|^dtml$/i],
['hy-icon', ['blue', 'blue'], /\.hy$/i, , false, , /\.hy$/i, /^Hy$|^hylang$/i],
['idl-icon', ['blue', 'blue'], /\.dlm$/i, , false, , /\.idl$/i, /^IDL$/i],
['idris-icon', ['red', 'red'], /\.idr$/i, , false, , /\.(?:idris|ipkg)$/i, /^Idris$/i],
['idris-icon', ['maroon', 'maroon'], /\.lidr$/i],
['igorpro-icon', ['red', 'red'], /\.ipf$/i],
['image-icon', ['orange', 'orange'], /\.a?png$|\.svgz$/i, , false, , , , /^.PNG\r\n\x1A\n/],
['image-icon', ['yellow', 'yellow'], /\.gif$|\.ora$|\.sgi$/i, , false, , , , /^GIF8[97]a/],
['image-icon', ['green', 'green'], /\.jpg$/i, , false, , , , /^\xFF\xD8\xFF[\xDB\xE0\xE1]|(?:JFIF|Exif)\0|^\xCF\x84\x01|^\xFF\xD8.+\xFF\xD9$/],
['image-icon', ['blue', 'blue'], /\.ico$/i, , false, , , , /^\0{2}\x01\0/],
['image-icon', ['blue', 'blue'], /\.webp$|\.iff$|\.lbm$|\.liff$|\.nrrd$|\.pcx$|\.vsdx?$/i, , false, , , , /^RIFF.{4}WEBPVP8/],
['image-icon', ['red', 'red'], /\.bmp$/i, , false, , , , /^BM/],
['image-icon', ['red', 'red'], /\.bpg$/i, , false, , , , /^BPG\xFB/],
['image-icon', ['orange', 'orange'], /\.cin$/i, , false, , , , /^\x80\x2A\x5F\xD7/],
['image-icon', ['green', 'green'], /\.cd5$/i, , false, , , , /^_CD5\x10\0/],
['image-icon', ['yellow', 'yellow'], /\.cpc$/i],
['image-icon', ['orange', 'orange'], /\.cr2$/i, , false, , , , /^II\*\0\x10\0{3}CR/],
['image-icon', ['pink', 'pink'], /\.dcm$|\.mpo$|\.pbm$/i, , false, , , , /^.{128}DICM/],
['image-icon', ['green', 'green'], /\.dds$/i, , false, , , , /^DDS \|\0{3}/],
['image-icon', ['purple', 'purple'], /\.djvu?$|\.pxr$/i, , false, , , , /^AT&TFORM/],
['image-icon', ['orange', 'orange'], /\.dpx$|\.raw$/i, , false, , , , /^(?:SDPX|XPDS)/],
['image-icon', ['blue', 'blue'], /\.ecw$|\.sct$/i],
['image-icon', ['yellow', 'yellow'], /\.exr$/i, , false, , , , /^v\/1\x01/],
['image-icon', ['cyan', 'cyan'], /\.fits?$|\.fts$/i, , false, , , , /^SIMPLE =/],
['image-icon', ['red', 'red'], /\.flif$|\.hdp$|\.heic$|\.heif$|\.jxr$|\.wdp$/i, , false, , , , /^FLIF/],
['image-icon', ['blue', 'blue'], /\.hdr$/i, , false, , , , /^#\?RADIANCE\n/],
['image-icon', ['pink', 'pink'], /\.icns$/i, , false, , , , /^icns/],
['image-icon', ['green', 'green'], /\.(?:jp[f2xm]|j2c|mj2)$/i, , false, , , , /^\0{3}\fjP {2}/],
['image-icon', ['cyan', 'cyan'], /\.jps$/i],
['image-icon', ['orange', 'orange'], /\.mng$/i, , false, , , , /^.MNG\r\n\x1A\n/],