UNPKG

atheos-ide

Version:

Web-based IDE framework

838 lines (798 loc) 95.6 kB
/** * ╭─╮ ┬ ┬ ╭─╮ ┬ ╭─╮ ╭─╮ ╭╮╭ ╭─╮ * ├┤ │ │ ├┤ │ │ │ │ │││ ╰─╮ * ┴ ┴ ┴─╯ ╰─╯ ┴ ╰─╯ ╰─╯ ╯╰╯ ╰─╯ * 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/],