diff --git a/Makefile.am b/Makefile.am
index 9353495a..b83d1050 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -32,6 +32,7 @@ sources = \
src/core/vectors.cpp \
src/dirnode.cpp \
src/file.cpp \
+ src/file_colours.cpp \
src/formats/apache.cpp \
src/formats/bzr.cpp \
src/formats/commitlog.cpp \
diff --git a/gource.pro b/gource.pro
index 9ce74162..75cb95f4 100644
--- a/gource.pro
+++ b/gource.pro
@@ -36,6 +36,7 @@ SOURCES += \
caption.cpp \
dirnode.cpp \
file.cpp \
+ file_colours.cpp \
gource.cpp \
gource_settings.cpp \
gource_shell.cpp \
@@ -92,6 +93,7 @@ HEADERS += \
caption.h \
dirnode.h \
file.h \
+ file_colours.h \
gource.h \
gource_settings.h \
gource_shell.h \
diff --git a/src/file.cpp b/src/file.cpp
index 9f81f291..957dd00e 100644
--- a/src/file.cpp
+++ b/src/file.cpp
@@ -16,6 +16,7 @@
*/
#include "file.h"
+#include "file_colours.h"
float gGourceFileDiameter = 8.0;
@@ -134,7 +135,7 @@ void RFile::setFilename(const std::string& abs_file_path) {
}
void RFile::colourize() {
- file_colour = ext.size() ? colourHash(ext) : vec3(1.0f, 1.0f, 1.0f);
+ file_colour = gRFileColours.find(ext);
}
const vec3& RFile::getNameColour() const{
diff --git a/src/file_colours.cpp b/src/file_colours.cpp
new file mode 100644
index 00000000..92072f8c
--- /dev/null
+++ b/src/file_colours.cpp
@@ -0,0 +1,1284 @@
+/*
+ Copyright (C) 2009 Andrew Caudwell (acaudwell@gmail.com)
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version
+ 3 of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+*/
+
+#include "file_colours.h"
+
+RFileColours gRFileColours;
+
+vec3 RFileColours::find(std::string ext) {
+ auto it = colours.find(ext);
+ if(it != colours.end()) {
+ return it->second;
+ }
+
+ return vec3(1.0, 1.0, 1.0);
+}
+
+void RFileColours::init() {
+ // TODO: Find a way to de-duplicate map keys.
+ colours = {
+ {"1", vec3(0.925490, 0.870588, 0.745098)},
+ {"1", vec3(0.925490, 0.870588, 0.745098)},
+ {"1in", vec3(0.925490, 0.870588, 0.745098)},
+ {"1in", vec3(0.925490, 0.870588, 0.745098)},
+ {"1m", vec3(0.925490, 0.870588, 0.745098)},
+ {"1m", vec3(0.925490, 0.870588, 0.745098)},
+ {"1x", vec3(0.925490, 0.870588, 0.745098)},
+ {"1x", vec3(0.925490, 0.870588, 0.745098)},
+ {"2", vec3(0.925490, 0.870588, 0.745098)},
+ {"2", vec3(0.925490, 0.870588, 0.745098)},
+ {"2da", vec3(0.219608, 0.462745, 0.113725)},
+ {"3", vec3(0.925490, 0.870588, 0.745098)},
+ {"3", vec3(0.925490, 0.870588, 0.745098)},
+ {"3in", vec3(0.925490, 0.870588, 0.745098)},
+ {"3in", vec3(0.925490, 0.870588, 0.745098)},
+ {"3m", vec3(0.925490, 0.870588, 0.745098)},
+ {"3m", vec3(0.925490, 0.870588, 0.745098)},
+ {"3p", vec3(0.925490, 0.870588, 0.745098)},
+ {"3p", vec3(0.925490, 0.870588, 0.745098)},
+ {"3pm", vec3(0.925490, 0.870588, 0.745098)},
+ {"3pm", vec3(0.925490, 0.870588, 0.745098)},
+ {"3qt", vec3(0.925490, 0.870588, 0.745098)},
+ {"3qt", vec3(0.925490, 0.870588, 0.745098)},
+ {"3x", vec3(0.925490, 0.870588, 0.745098)},
+ {"3x", vec3(0.925490, 0.870588, 0.745098)},
+ {"4", vec3(0.925490, 0.870588, 0.745098)},
+ {"4", vec3(0.925490, 0.870588, 0.745098)},
+ {"4dm", vec3(0.000000, 0.258824, 0.537255)},
+ {"4th", vec3(0.203922, 0.090196, 0.031373)},
+ {"5", vec3(0.925490, 0.870588, 0.745098)},
+ {"5", vec3(0.925490, 0.870588, 0.745098)},
+ {"6", vec3(0.925490, 0.870588, 0.745098)},
+ {"6", vec3(0.925490, 0.870588, 0.745098)},
+ {"6pl", vec3(0.000000, 0.000000, 0.984314)},
+ {"6pm", vec3(0.000000, 0.000000, 0.984314)},
+ {"7", vec3(0.925490, 0.870588, 0.745098)},
+ {"7", vec3(0.925490, 0.870588, 0.745098)},
+ {"8", vec3(0.925490, 0.870588, 0.745098)},
+ {"8", vec3(0.925490, 0.870588, 0.745098)},
+ {"8xk", vec3(0.627451, 0.666667, 0.529412)},
+ {"8xk.txt", vec3(0.627451, 0.666667, 0.529412)},
+ {"8xp", vec3(0.627451, 0.666667, 0.529412)},
+ {"8xp.txt", vec3(0.627451, 0.666667, 0.529412)},
+ {"9", vec3(0.925490, 0.870588, 0.745098)},
+ {"9", vec3(0.925490, 0.870588, 0.745098)},
+ {"JSON-tmLanguage", vec3(0.160784, 0.160784, 0.160784)},
+ {"OutJob", vec3(0.658824, 0.588235, 0.388235)},
+ {"PcbDoc", vec3(0.658824, 0.588235, 0.388235)},
+ {"PrjPCB", vec3(0.658824, 0.588235, 0.388235)},
+ {"SchDoc", vec3(0.658824, 0.588235, 0.388235)},
+ {"_coffee", vec3(0.141176, 0.278431, 0.462745)},
+ {"_js", vec3(0.945098, 0.878431, 0.352941)},
+ {"_ls", vec3(0.286275, 0.596078, 0.525490)},
+ {"a51", vec3(0.431373, 0.298039, 0.074510)},
+ {"abap", vec3(0.909804, 0.152941, 0.294118)},
+ {"ada", vec3(0.007843, 0.972549, 0.549020)},
+ {"adb", vec3(0.007843, 0.972549, 0.549020)},
+ {"adml", vec3(0.000000, 0.376471, 0.674510)},
+ {"admx", vec3(0.000000, 0.376471, 0.674510)},
+ {"ado", vec3(0.101961, 0.372549, 0.568627)},
+ {"adoc", vec3(0.450980, 0.627451, 0.772549)},
+ {"adp", vec3(0.894118, 0.800000, 0.596078)},
+ {"ads", vec3(0.007843, 0.972549, 0.549020)},
+ {"afm", vec3(0.980392, 0.058824, 0.000000)},
+ {"agc", vec3(0.043137, 0.239216, 0.568627)},
+ {"agda", vec3(0.192157, 0.337255, 0.396078)},
+ {"ahk", vec3(0.396078, 0.580392, 0.725490)},
+ {"ahkl", vec3(0.396078, 0.580392, 0.725490)},
+ {"aidl", vec3(0.203922, 0.921569, 0.419608)},
+ {"aj", vec3(0.662745, 0.341176, 0.690196)},
+ {"al", vec3(0.227451, 0.635294, 0.709804)},
+ {"al", vec3(0.007843, 0.596078, 0.764706)},
+ {"als", vec3(0.392157, 0.784314, 0.000000)},
+ {"ampl", vec3(0.901961, 0.937255, 0.733333)},
+ {"angelscript", vec3(0.780392, 0.843137, 0.862745)},
+ {"anim", vec3(0.133333, 0.172549, 0.215686)},
+ {"ant", vec3(0.000000, 0.376471, 0.674510)},
+ {"apacheconf", vec3(0.819608, 0.129412, 0.152941)},
+ {"apib", vec3(0.164706, 0.800000, 0.658824)},
+ {"apl", vec3(0.352941, 0.505882, 0.392157)},
+ {"app.src", vec3(0.721569, 0.223529, 0.596078)},
+ {"applescript", vec3(0.062745, 0.121569, 0.121569)},
+ {"arc", vec3(0.666667, 0.164706, 0.996078)},
+ {"as", vec3(0.533333, 0.168627, 0.058824)},
+ {"as", vec3(0.780392, 0.843137, 0.862745)},
+ {"asax", vec3(0.580392, 0.000000, 1.000000)},
+ {"asc", vec3(0.450980, 0.627451, 0.772549)},
+ {"asc", vec3(0.725490, 0.850980, 1.000000)},
+ {"asciidoc", vec3(0.450980, 0.627451, 0.772549)},
+ {"ascx", vec3(0.580392, 0.000000, 1.000000)},
+ {"asd", vec3(0.247059, 0.713725, 0.545098)},
+ {"asddls", vec3(0.333333, 0.368627, 0.145098)},
+ {"ash", vec3(0.725490, 0.850980, 1.000000)},
+ {"ashx", vec3(0.580392, 0.000000, 1.000000)},
+ {"asm", vec3(0.431373, 0.298039, 0.074510)},
+ {"asm", vec3(0.000000, 0.364706, 0.666667)},
+ {"asmx", vec3(0.580392, 0.000000, 1.000000)},
+ {"asp", vec3(0.415686, 0.250980, 0.992157)},
+ {"aspx", vec3(0.580392, 0.000000, 1.000000)},
+ {"asset", vec3(0.133333, 0.172549, 0.215686)},
+ {"astro", vec3(1.000000, 0.352941, 0.011765)},
+ {"asy", vec3(1.000000, 0.000000, 0.000000)},
+ {"au3", vec3(0.109804, 0.207843, 0.321569)},
+ {"aug", vec3(0.611765, 0.756863, 0.203922)},
+ {"auk", vec3(0.764706, 0.054902, 0.607843)},
+ {"aux", vec3(0.239216, 0.380392, 0.090196)},
+ {"avdl", vec3(0.000000, 0.250980, 1.000000)},
+ {"avsc", vec3(0.160784, 0.160784, 0.160784)},
+ {"aw", vec3(0.309804, 0.364706, 0.584314)},
+ {"awk", vec3(0.764706, 0.054902, 0.607843)},
+ {"axaml", vec3(0.000000, 0.376471, 0.674510)},
+ {"axd", vec3(0.580392, 0.000000, 1.000000)},
+ {"axi", vec3(0.039216, 0.627451, 1.000000)},
+ {"axi.erb", vec3(0.454902, 0.498039, 0.666667)},
+ {"axml", vec3(0.000000, 0.376471, 0.674510)},
+ {"axs", vec3(0.039216, 0.627451, 1.000000)},
+ {"axs.erb", vec3(0.454902, 0.498039, 0.666667)},
+ {"b", vec3(0.184314, 0.145098, 0.188235)},
+ {"bal", vec3(1.000000, 0.313725, 0.000000)},
+ {"bas", vec3(0.525490, 0.490196, 0.694118)},
+ {"bas", vec3(0.525490, 0.490196, 0.694118)},
+ {"bas", vec3(1.000000, 0.000000, 0.000000)},
+ {"bash", vec3(0.537255, 0.878431, 0.317647)},
+ {"bat", vec3(0.756863, 0.945098, 0.180392)},
+ {"bats", vec3(0.537255, 0.878431, 0.317647)},
+ {"bb", vec3(0.000000, 1.000000, 0.682353)},
+ {"bb", vec3(0.000000, 0.737255, 0.894118)},
+ {"bbx", vec3(0.239216, 0.380392, 0.090196)},
+ {"bdy", vec3(0.854902, 0.847059, 0.847059)},
+ {"bf", vec3(0.184314, 0.145098, 0.188235)},
+ {"bf", vec3(0.647059, 0.184314, 0.305882)},
+ {"bi", vec3(0.525490, 0.490196, 0.694118)},
+ {"bib", vec3(0.466667, 0.533333, 0.600000)},
+ {"bibtex", vec3(0.466667, 0.533333, 0.600000)},
+ {"bicep", vec3(0.317647, 0.603922, 0.729412)},
+ {"bison", vec3(0.415686, 0.274510, 0.247059)},
+ {"blade", vec3(0.968627, 0.321569, 0.247059)},
+ {"blade.php", vec3(0.968627, 0.321569, 0.247059)},
+ {"bmx", vec3(0.803922, 0.392157, 0.000000)},
+ {"bones", vec3(0.945098, 0.878431, 0.352941)},
+ {"boo", vec3(0.831373, 0.745098, 0.756863)},
+ {"boot", vec3(0.858824, 0.345098, 0.333333)},
+ {"bpl", vec3(0.784314, 0.058824, 0.627451)},
+ {"brd", vec3(0.184314, 0.290196, 0.670588)},
+ {"brs", vec3(0.400000, 0.176471, 0.568627)},
+ {"bsl", vec3(0.505882, 0.298039, 0.800000)},
+ {"bsv", vec3(0.070588, 0.133333, 0.235294)},
+ {"builder", vec3(0.439216, 0.082353, 0.086275)},
+ {"builds", vec3(0.000000, 0.376471, 0.674510)},
+ {"bzl", vec3(0.462745, 0.823529, 0.458824)},
+ {"c", vec3(0.333333, 0.333333, 0.333333)},
+ {"c++", vec3(0.952941, 0.294118, 0.490196)},
+ {"cabal", vec3(0.282353, 0.203922, 0.396078)},
+ {"cairo", vec3(1.000000, 0.290196, 0.282353)},
+ {"cake", vec3(0.090196, 0.525490, 0.000000)},
+ {"cake", vec3(0.141176, 0.278431, 0.462745)},
+ {"capnp", vec3(0.768627, 0.152941, 0.152941)},
+ {"cats", vec3(0.333333, 0.333333, 0.333333)},
+ {"cbx", vec3(0.239216, 0.380392, 0.090196)},
+ {"cc", vec3(0.952941, 0.294118, 0.490196)},
+ {"ccproj", vec3(0.000000, 0.376471, 0.674510)},
+ {"ccxml", vec3(0.000000, 0.376471, 0.674510)},
+ {"cdf", vec3(0.866667, 0.066667, 0.000000)},
+ {"ceylon", vec3(0.874510, 0.647059, 0.207843)},
+ {"cfc", vec3(0.929412, 0.172549, 0.839216)},
+ {"cfg", vec3(0.062745, 0.427451, 0.662745)},
+ {"cfg", vec3(0.819608, 0.858824, 0.878431)},
+ {"cfm", vec3(0.929412, 0.172549, 0.839216)},
+ {"cfml", vec3(0.929412, 0.172549, 0.839216)},
+ {"cgi", vec3(0.537255, 0.878431, 0.317647)},
+ {"cgi", vec3(0.207843, 0.447059, 0.647059)},
+ {"cgi", vec3(0.007843, 0.596078, 0.764706)},
+ {"cginc", vec3(0.666667, 0.807843, 0.376471)},
+ {"ch", vec3(0.250980, 0.227451, 0.250980)},
+ {"chpl", vec3(0.552941, 0.776471, 0.247059)},
+ {"cirru", vec3(0.800000, 0.800000, 1.000000)},
+ {"cjs", vec3(0.945098, 0.878431, 0.352941)},
+ {"cjsx", vec3(0.141176, 0.278431, 0.462745)},
+ {"ck", vec3(0.247059, 0.501961, 0.000000)},
+ {"cl", vec3(0.247059, 0.713725, 0.545098)},
+ {"cl", vec3(0.929412, 0.180392, 0.176471)},
+ {"cl2", vec3(0.858824, 0.345098, 0.333333)},
+ {"clar", vec3(0.333333, 0.274510, 1.000000)},
+ {"click", vec3(0.894118, 0.901961, 0.952941)},
+ {"clixml", vec3(0.000000, 0.376471, 0.674510)},
+ {"clj", vec3(0.858824, 0.345098, 0.333333)},
+ {"cljc", vec3(0.858824, 0.345098, 0.333333)},
+ {"cljs", vec3(0.858824, 0.345098, 0.333333)},
+ {"cljs.hl", vec3(0.858824, 0.345098, 0.333333)},
+ {"cljscm", vec3(0.858824, 0.345098, 0.333333)},
+ {"cljx", vec3(0.858824, 0.345098, 0.333333)},
+ {"clp", vec3(0.000000, 0.639216, 0.000000)},
+ {"cls", vec3(0.090196, 0.592157, 0.752941)},
+ {"cls", vec3(0.239216, 0.380392, 0.090196)},
+ {"cls", vec3(0.360784, 0.901961, 0.000000)},
+ {"cls", vec3(0.525490, 0.490196, 0.694118)},
+ {"cls", vec3(0.258824, 0.282353, 0.576471)},
+ {"clw", vec3(0.858824, 0.564706, 0.117647)},
+ {"cmake", vec3(0.854902, 0.203922, 0.203922)},
+ {"cmake.in", vec3(0.854902, 0.203922, 0.203922)},
+ {"cmd", vec3(0.756863, 0.945098, 0.180392)},
+ {"cmp", vec3(0.823529, 0.043137, 0.000000)},
+ {"cnc", vec3(0.815686, 0.549020, 0.949020)},
+ {"cocci", vec3(0.788235, 0.286275, 0.286275)},
+ {"code-snippets", vec3(0.160784, 0.160784, 0.160784)},
+ {"coffee", vec3(0.141176, 0.278431, 0.462745)},
+ {"coffee.md", vec3(0.141176, 0.278431, 0.462745)},
+ {"command", vec3(0.537255, 0.878431, 0.317647)},
+ {"coq", vec3(0.815686, 0.713725, 0.549020)},
+ {"cp", vec3(0.952941, 0.294118, 0.490196)},
+ {"cp", vec3(0.690196, 0.807843, 0.305882)},
+ {"cpp", vec3(0.952941, 0.294118, 0.490196)},
+ {"cproject", vec3(0.000000, 0.376471, 0.674510)},
+ {"cps", vec3(0.690196, 0.807843, 0.305882)},
+ {"cql", vec3(0.890196, 0.549020, 0.000000)},
+ {"cr", vec3(0.000000, 0.003922, 0.000000)},
+ {"cs", vec3(0.349020, 0.403922, 0.023529)},
+ {"cs", vec3(0.090196, 0.525490, 0.000000)},
+ {"csc", vec3(1.000000, 0.407843, 0.000000)},
+ {"cscfg", vec3(0.000000, 0.376471, 0.674510)},
+ {"csd", vec3(0.101961, 0.101961, 0.101961)},
+ {"csdef", vec3(0.000000, 0.376471, 0.674510)},
+ {"cshtml", vec3(0.317647, 0.168627, 0.894118)},
+ {"csl", vec3(0.000000, 0.376471, 0.674510)},
+ {"cson", vec3(0.141176, 0.278431, 0.462745)},
+ {"csproj", vec3(0.000000, 0.376471, 0.674510)},
+ {"css", vec3(0.337255, 0.239216, 0.486275)},
+ {"csv", vec3(0.137255, 0.450980, 0.274510)},
+ {"csx", vec3(0.090196, 0.525490, 0.000000)},
+ {"ct", vec3(0.000000, 0.376471, 0.674510)},
+ {"ctp", vec3(0.309804, 0.364706, 0.584314)},
+ {"cu", vec3(0.227451, 0.305882, 0.227451)},
+ {"cue", vec3(0.345098, 0.525490, 0.882353)},
+ {"cuh", vec3(0.227451, 0.305882, 0.227451)},
+ {"curry", vec3(0.325490, 0.070588, 0.258824)},
+ {"cwl", vec3(0.709804, 0.192157, 0.298039)},
+ {"cxx", vec3(0.952941, 0.294118, 0.490196)},
+ {"d", vec3(0.258824, 0.470588, 0.098039)},
+ {"d", vec3(0.729412, 0.349020, 0.368627)},
+ {"dae", vec3(0.945098, 0.643137, 0.168627)},
+ {"darcspatch", vec3(0.556863, 1.000000, 0.137255)},
+ {"dart", vec3(0.000000, 0.705882, 0.670588)},
+ {"dats", vec3(0.101961, 0.776471, 0.125490)},
+ {"db2", vec3(0.890196, 0.549020, 0.000000)},
+ {"dcl", vec3(0.247059, 0.521569, 0.686275)},
+ {"ddl", vec3(0.854902, 0.847059, 0.847059)},
+ {"ddl", vec3(0.890196, 0.549020, 0.000000)},
+ {"decls", vec3(0.000000, 1.000000, 0.682353)},
+ {"depproj", vec3(0.000000, 0.376471, 0.674510)},
+ {"dfm", vec3(0.890196, 0.945098, 0.443137)},
+ {"dfy", vec3(1.000000, 0.925490, 0.145098)},
+ {"dhall", vec3(0.874510, 0.686275, 1.000000)},
+ {"di", vec3(0.729412, 0.349020, 0.368627)},
+ {"dita", vec3(0.000000, 0.376471, 0.674510)},
+ {"ditamap", vec3(0.000000, 0.376471, 0.674510)},
+ {"ditaval", vec3(0.000000, 0.376471, 0.674510)},
+ {"djs", vec3(0.800000, 0.654902, 0.376471)},
+ {"dll.config", vec3(0.000000, 0.376471, 0.674510)},
+ {"dlm", vec3(0.639216, 0.321569, 0.184314)},
+ {"dm", vec3(0.266667, 0.447059, 0.396078)},
+ {"do", vec3(0.101961, 0.372549, 0.568627)},
+ {"dockerfile", vec3(0.219608, 0.301961, 0.329412)},
+ {"dof", vec3(0.819608, 0.858824, 0.878431)},
+ {"doh", vec3(0.101961, 0.372549, 0.568627)},
+ {"dot", vec3(0.145098, 0.588235, 0.745098)},
+ {"dotsettings", vec3(0.000000, 0.376471, 0.674510)},
+ {"dpatch", vec3(0.556863, 1.000000, 0.137255)},
+ {"dpr", vec3(0.890196, 0.945098, 0.443137)},
+ {"druby", vec3(0.780392, 0.662745, 0.219608)},
+ {"dsc", vec3(0.843137, 0.027451, 0.317647)},
+ {"dsc", vec3(0.984314, 0.933333, 0.588235)},
+ {"dsp", vec3(0.764706, 0.447059, 0.250980)},
+ {"dtx", vec3(0.239216, 0.380392, 0.090196)},
+ {"duby", vec3(0.780392, 0.662745, 0.219608)},
+ {"dwl", vec3(0.000000, 0.227451, 0.321569)},
+ {"dyalog", vec3(0.352941, 0.505882, 0.392157)},
+ {"dyl", vec3(0.423529, 0.380392, 0.431373)},
+ {"dylan", vec3(0.423529, 0.380392, 0.431373)},
+ {"e", vec3(1.000000, 0.474510, 0.043137)},
+ {"e", vec3(0.301961, 0.411765, 0.466667)},
+ {"e", vec3(0.800000, 0.807843, 0.207843)},
+ {"eb", vec3(0.023529, 0.580392, 0.023529)},
+ {"ebuild", vec3(0.580392, 0.000000, 1.000000)},
+ {"ec", vec3(0.568627, 0.223529, 0.376471)},
+ {"ecl", vec3(0.541176, 0.070588, 0.403922)},
+ {"ecl", vec3(0.000000, 0.113725, 0.615686)},
+ {"eclass", vec3(0.580392, 0.000000, 1.000000)},
+ {"eclxml", vec3(0.541176, 0.070588, 0.403922)},
+ {"ecr", vec3(0.180392, 0.062745, 0.321569)},
+ {"ect", vec3(0.662745, 0.117647, 0.313725)},
+ {"eex", vec3(0.431373, 0.290196, 0.494118)},
+ {"eh", vec3(0.568627, 0.223529, 0.376471)},
+ {"ejs", vec3(0.662745, 0.117647, 0.313725)},
+ {"ejs.t", vec3(0.662745, 0.117647, 0.313725)},
+ {"el", vec3(0.752941, 0.396078, 0.858824)},
+ {"eliom", vec3(0.231373, 0.882353, 0.200000)},
+ {"eliomi", vec3(0.231373, 0.882353, 0.200000)},
+ {"elm", vec3(0.376471, 0.709804, 0.800000)},
+ {"em", vec3(1.000000, 0.956863, 0.952941)},
+ {"emacs", vec3(0.752941, 0.396078, 0.858824)},
+ {"emacs.desktop", vec3(0.752941, 0.396078, 0.858824)},
+ {"emberscript", vec3(1.000000, 0.956863, 0.952941)},
+ {"env", vec3(0.537255, 0.878431, 0.317647)},
+ {"epj", vec3(0.568627, 0.223529, 0.376471)},
+ {"eps", vec3(0.854902, 0.160784, 0.109804)},
+ {"epsi", vec3(0.854902, 0.160784, 0.109804)},
+ {"eq", vec3(0.654902, 0.525490, 0.286275)},
+ {"erb", vec3(0.439216, 0.082353, 0.086275)},
+ {"erb.deface", vec3(0.439216, 0.082353, 0.086275)},
+ {"erl", vec3(0.721569, 0.223529, 0.596078)},
+ {"es", vec3(0.945098, 0.878431, 0.352941)},
+ {"es", vec3(0.721569, 0.223529, 0.596078)},
+ {"es6", vec3(0.945098, 0.878431, 0.352941)},
+ {"escript", vec3(0.721569, 0.223529, 0.596078)},
+ {"ex", vec3(1.000000, 0.474510, 0.043137)},
+ {"ex", vec3(0.431373, 0.290196, 0.494118)},
+ {"exs", vec3(0.431373, 0.290196, 0.494118)},
+ {"eye", vec3(0.439216, 0.082353, 0.086275)},
+ {"f", vec3(0.964706, 0.725490, 0.000000)},
+ {"f", vec3(0.203922, 0.090196, 0.031373)},
+ {"f", vec3(0.301961, 0.254902, 0.694118)},
+ {"f03", vec3(0.301961, 0.254902, 0.694118)},
+ {"f08", vec3(0.301961, 0.254902, 0.694118)},
+ {"f77", vec3(0.301961, 0.254902, 0.694118)},
+ {"f90", vec3(0.301961, 0.254902, 0.694118)},
+ {"f95", vec3(0.301961, 0.254902, 0.694118)},
+ {"factor", vec3(0.388235, 0.403922, 0.274510)},
+ {"fan", vec3(0.078431, 0.145098, 0.235294)},
+ {"fancypack", vec3(0.482353, 0.615686, 0.705882)},
+ {"fcgi", vec3(0.309804, 0.364706, 0.584314)},
+ {"fcgi", vec3(0.439216, 0.082353, 0.086275)},
+ {"fcgi", vec3(0.537255, 0.878431, 0.317647)},
+ {"fcgi", vec3(0.207843, 0.447059, 0.647059)},
+ {"fcgi", vec3(0.000000, 0.000000, 0.501961)},
+ {"fcgi", vec3(0.007843, 0.596078, 0.764706)},
+ {"feature", vec3(0.356863, 0.125490, 0.388235)},
+ {"filters", vec3(0.000000, 0.376471, 0.674510)},
+ {"fish", vec3(0.290196, 0.682353, 0.278431)},
+ {"flex", vec3(0.858824, 0.792157, 0.000000)},
+ {"flf", vec3(1.000000, 0.866667, 0.733333)},
+ {"flux", vec3(0.533333, 0.800000, 1.000000)},
+ {"fnc", vec3(0.854902, 0.847059, 0.847059)},
+ {"fnl", vec3(1.000000, 0.952941, 0.843137)},
+ {"for", vec3(0.301961, 0.254902, 0.694118)},
+ {"for", vec3(0.203922, 0.090196, 0.031373)},
+ {"forth", vec3(0.203922, 0.090196, 0.031373)},
+ {"fp", vec3(0.337255, 0.525490, 0.647059)},
+ {"fpp", vec3(0.301961, 0.254902, 0.694118)},
+ {"fr", vec3(0.000000, 0.792157, 0.996078)},
+ {"fr", vec3(0.203922, 0.090196, 0.031373)},
+ {"frag", vec3(0.337255, 0.525490, 0.647059)},
+ {"frag", vec3(0.945098, 0.878431, 0.352941)},
+ {"frg", vec3(0.337255, 0.525490, 0.647059)},
+ {"frm", vec3(0.525490, 0.490196, 0.694118)},
+ {"frt", vec3(0.203922, 0.090196, 0.031373)},
+ {"frx", vec3(0.525490, 0.490196, 0.694118)},
+ {"fs", vec3(0.203922, 0.090196, 0.031373)},
+ {"fs", vec3(0.721569, 0.270588, 0.988235)},
+ {"fs", vec3(0.337255, 0.525490, 0.647059)},
+ {"fsh", vec3(0.337255, 0.525490, 0.647059)},
+ {"fshader", vec3(0.337255, 0.525490, 0.647059)},
+ {"fsi", vec3(0.721569, 0.270588, 0.988235)},
+ {"fsproj", vec3(0.000000, 0.376471, 0.674510)},
+ {"fst", vec3(0.341176, 0.180392, 0.188235)},
+ {"fsx", vec3(0.721569, 0.270588, 0.988235)},
+ {"fth", vec3(0.203922, 0.090196, 0.031373)},
+ {"ftl", vec3(1.000000, 0.800000, 0.200000)},
+ {"ftl", vec3(0.000000, 0.313725, 0.698039)},
+ {"fun", vec3(0.862745, 0.337255, 0.427451)},
+ {"fut", vec3(0.372549, 0.007843, 0.121569)},
+ {"fx", vec3(0.666667, 0.807843, 0.376471)},
+ {"fx", vec3(0.533333, 0.800000, 1.000000)},
+ {"fxh", vec3(0.666667, 0.807843, 0.376471)},
+ {"fxml", vec3(0.000000, 0.376471, 0.674510)},
+ {"fy", vec3(0.482353, 0.615686, 0.705882)},
+ {"g", vec3(0.815686, 0.549020, 0.949020)},
+ {"g", vec3(0.000000, 0.000000, 0.800000)},
+ {"g4", vec3(0.615686, 0.764706, 1.000000)},
+ {"gaml", vec3(1.000000, 0.780392, 0.400000)},
+ {"gap", vec3(0.000000, 0.000000, 0.800000)},
+ {"gawk", vec3(0.764706, 0.054902, 0.607843)},
+ {"gbl", vec3(0.823529, 0.043137, 0.000000)},
+ {"gbo", vec3(0.823529, 0.043137, 0.000000)},
+ {"gbp", vec3(0.823529, 0.043137, 0.000000)},
+ {"gbr", vec3(0.823529, 0.043137, 0.000000)},
+ {"gbs", vec3(0.823529, 0.043137, 0.000000)},
+ {"gco", vec3(0.815686, 0.549020, 0.949020)},
+ {"gcode", vec3(0.815686, 0.549020, 0.949020)},
+ {"gd", vec3(0.207843, 0.333333, 0.439216)},
+ {"gd", vec3(0.000000, 0.000000, 0.800000)},
+ {"ged", vec3(0.000000, 0.188235, 0.345098)},
+ {"gemspec", vec3(0.439216, 0.082353, 0.086275)},
+ {"geo", vec3(0.337255, 0.525490, 0.647059)},
+ {"geojson", vec3(0.160784, 0.160784, 0.160784)},
+ {"geom", vec3(0.337255, 0.525490, 0.647059)},
+ {"gf", vec3(1.000000, 0.000000, 0.000000)},
+ {"gi", vec3(0.000000, 0.000000, 0.800000)},
+ {"gitconfig", vec3(0.956863, 0.301961, 0.152941)},
+ {"gko", vec3(0.823529, 0.043137, 0.000000)},
+ {"glade", vec3(0.000000, 0.376471, 0.674510)},
+ {"gleam", vec3(1.000000, 0.686275, 0.952941)},
+ {"glf", vec3(0.756863, 0.674510, 0.498039)},
+ {"glsl", vec3(0.337255, 0.525490, 0.647059)},
+ {"glslf", vec3(0.337255, 0.525490, 0.647059)},
+ {"glslv", vec3(0.337255, 0.525490, 0.647059)},
+ {"gltf", vec3(0.160784, 0.160784, 0.160784)},
+ {"gml", vec3(0.443137, 0.705882, 0.090196)},
+ {"gml", vec3(0.000000, 0.376471, 0.674510)},
+ {"gml", vec3(0.823529, 0.043137, 0.000000)},
+ {"gms", vec3(0.956863, 0.603922, 0.133333)},
+ {"gmx", vec3(0.000000, 0.376471, 0.674510)},
+ {"gnu", vec3(0.941176, 0.662745, 0.941176)},
+ {"gnuplot", vec3(0.941176, 0.662745, 0.941176)},
+ {"go", vec3(0.000000, 0.678431, 0.847059)},
+ {"god", vec3(0.439216, 0.082353, 0.086275)},
+ {"golo", vec3(0.533333, 0.337255, 0.164706)},
+ {"gp", vec3(0.941176, 0.662745, 0.941176)},
+ {"gpb", vec3(0.823529, 0.043137, 0.000000)},
+ {"gpt", vec3(0.823529, 0.043137, 0.000000)},
+ {"gql", vec3(0.882353, 0.000000, 0.596078)},
+ {"grace", vec3(0.380392, 0.372549, 0.545098)},
+ {"gradle", vec3(0.007843, 0.188235, 0.227451)},
+ {"graphql", vec3(0.882353, 0.000000, 0.596078)},
+ {"graphqls", vec3(0.882353, 0.000000, 0.596078)},
+ {"groovy", vec3(0.258824, 0.596078, 0.721569)},
+ {"grt", vec3(0.258824, 0.596078, 0.721569)},
+ {"grxml", vec3(0.000000, 0.376471, 0.674510)},
+ {"gs", vec3(0.945098, 0.878431, 0.352941)},
+ {"gs", vec3(0.509804, 0.576471, 0.498039)},
+ {"gs", vec3(0.337255, 0.525490, 0.647059)},
+ {"gs", vec3(0.984314, 0.521569, 0.364706)},
+ {"gsc", vec3(1.000000, 0.407843, 0.000000)},
+ {"gsh", vec3(1.000000, 0.407843, 0.000000)},
+ {"gshader", vec3(0.337255, 0.525490, 0.647059)},
+ {"gsp", vec3(0.258824, 0.596078, 0.721569)},
+ {"gst", vec3(0.509804, 0.576471, 0.498039)},
+ {"gst", vec3(0.000000, 0.376471, 0.674510)},
+ {"gsx", vec3(0.509804, 0.576471, 0.498039)},
+ {"gtl", vec3(0.823529, 0.043137, 0.000000)},
+ {"gto", vec3(0.823529, 0.043137, 0.000000)},
+ {"gtp", vec3(0.823529, 0.043137, 0.000000)},
+ {"gtpl", vec3(0.258824, 0.596078, 0.721569)},
+ {"gts", vec3(0.823529, 0.043137, 0.000000)},
+ {"gv", vec3(0.145098, 0.588235, 0.745098)},
+ {"gvy", vec3(0.258824, 0.596078, 0.721569)},
+ {"gyp", vec3(0.207843, 0.447059, 0.647059)},
+ {"gypi", vec3(0.207843, 0.447059, 0.647059)},
+ {"h", vec3(0.333333, 0.333333, 0.333333)},
+ {"h", vec3(0.952941, 0.294118, 0.490196)},
+ {"h", vec3(0.262745, 0.556863, 1.000000)},
+ {"h++", vec3(0.952941, 0.294118, 0.490196)},
+ {"hack", vec3(0.529412, 0.529412, 0.529412)},
+ {"haml", vec3(0.925490, 0.886275, 0.662745)},
+ {"haml.deface", vec3(0.925490, 0.886275, 0.662745)},
+ {"handlebars", vec3(0.968627, 0.576471, 0.117647)},
+ {"har", vec3(0.160784, 0.160784, 0.160784)},
+ {"hats", vec3(0.101961, 0.776471, 0.125490)},
+ {"hb", vec3(0.054902, 0.376471, 0.890196)},
+ {"hbs", vec3(0.968627, 0.576471, 0.117647)},
+ {"hc", vec3(1.000000, 0.937255, 0.686275)},
+ {"hh", vec3(0.952941, 0.294118, 0.490196)},
+ {"hh", vec3(0.529412, 0.529412, 0.529412)},
+ {"hhi", vec3(0.529412, 0.529412, 0.529412)},
+ {"hic", vec3(0.858824, 0.345098, 0.333333)},
+ {"hlsl", vec3(0.666667, 0.807843, 0.376471)},
+ {"hlsli", vec3(0.666667, 0.807843, 0.376471)},
+ {"hoon", vec3(0.000000, 0.694118, 0.443137)},
+ {"hpp", vec3(0.952941, 0.294118, 0.490196)},
+ {"hqf", vec3(0.247059, 0.247059, 0.247059)},
+ {"hql", vec3(0.862745, 0.886275, 0.000000)},
+ {"hrl", vec3(0.721569, 0.223529, 0.596078)},
+ {"hs", vec3(0.368627, 0.313725, 0.525490)},
+ {"hs-boot", vec3(0.368627, 0.313725, 0.525490)},
+ {"hsc", vec3(0.368627, 0.313725, 0.525490)},
+ {"hta", vec3(0.890196, 0.298039, 0.149020)},
+ {"htm", vec3(0.890196, 0.298039, 0.149020)},
+ {"html", vec3(0.890196, 0.298039, 0.149020)},
+ {"html.heex", vec3(0.431373, 0.290196, 0.494118)},
+ {"html.hl", vec3(0.890196, 0.298039, 0.149020)},
+ {"html.leex", vec3(0.431373, 0.290196, 0.494118)},
+ {"http", vec3(0.000000, 0.360784, 0.611765)},
+ {"hx", vec3(0.874510, 0.474510, 0.000000)},
+ {"hxml", vec3(0.964706, 0.529412, 0.070588)},
+ {"hxsl", vec3(0.874510, 0.474510, 0.000000)},
+ {"hxx", vec3(0.952941, 0.294118, 0.490196)},
+ {"hy", vec3(0.466667, 0.564706, 0.698039)},
+ {"hzp", vec3(0.000000, 0.376471, 0.674510)},
+ {"i", vec3(0.431373, 0.298039, 0.074510)},
+ {"i", vec3(0.000000, 0.364706, 0.666667)},
+ {"i3", vec3(0.133333, 0.200000, 0.533333)},
+ {"ice", vec3(0.160784, 0.160784, 0.160784)},
+ {"ice", vec3(0.000000, 0.247059, 0.635294)},
+ {"iced", vec3(0.141176, 0.278431, 0.462745)},
+ {"icl", vec3(0.247059, 0.521569, 0.686275)},
+ {"idc", vec3(0.333333, 0.333333, 0.333333)},
+ {"idr", vec3(0.701961, 0.000000, 0.000000)},
+ {"ig", vec3(0.133333, 0.200000, 0.533333)},
+ {"ihlp", vec3(0.101961, 0.372549, 0.568627)},
+ {"ijm", vec3(0.600000, 0.666667, 1.000000)},
+ {"ijs", vec3(0.619608, 0.929412, 1.000000)},
+ {"ik", vec3(0.027451, 0.505882, 0.576471)},
+ {"ily", vec3(0.611765, 0.800000, 0.486275)},
+ {"iml", vec3(0.000000, 0.376471, 0.674510)},
+ {"inc", vec3(0.890196, 0.549020, 0.000000)},
+ {"inc", vec3(0.890196, 0.298039, 0.149020)},
+ {"inc", vec3(0.890196, 0.945098, 0.443137)},
+ {"inc", vec3(0.000000, 0.364706, 0.666667)},
+ {"inc", vec3(0.419608, 0.674510, 0.396078)},
+ {"inc", vec3(0.964706, 0.619608, 0.113725)},
+ {"inc", vec3(0.858824, 0.698039, 0.517647)},
+ {"inc", vec3(0.309804, 0.364706, 0.584314)},
+ {"inc", vec3(0.431373, 0.298039, 0.074510)},
+ {"inc", vec3(0.952941, 0.294118, 0.490196)},
+ {"ini", vec3(0.819608, 0.858824, 0.878431)},
+ {"inl", vec3(0.952941, 0.294118, 0.490196)},
+ {"ino", vec3(0.952941, 0.294118, 0.490196)},
+ {"ins", vec3(0.239216, 0.380392, 0.090196)},
+ {"intr", vec3(0.423529, 0.380392, 0.431373)},
+ {"io", vec3(0.662745, 0.094118, 0.552941)},
+ {"iol", vec3(0.517647, 0.192157, 0.474510)},
+ {"ipf", vec3(0.000000, 0.000000, 0.800000)},
+ {"ipp", vec3(0.952941, 0.294118, 0.490196)},
+ {"ipynb", vec3(0.854902, 0.356863, 0.043137)},
+ {"isl", vec3(0.149020, 0.294118, 0.600000)},
+ {"iss", vec3(0.149020, 0.294118, 0.600000)},
+ {"ivy", vec3(0.000000, 0.376471, 0.674510)},
+ {"ixx", vec3(0.952941, 0.294118, 0.490196)},
+ {"j", vec3(1.000000, 0.047059, 0.352941)},
+ {"j", vec3(0.815686, 0.211765, 0.000000)},
+ {"j2", vec3(0.647059, 0.164706, 0.133333)},
+ {"jade", vec3(0.658824, 0.392157, 0.329412)},
+ {"jake", vec3(0.945098, 0.878431, 0.352941)},
+ {"janet", vec3(0.031373, 0.525490, 0.647059)},
+ {"jav", vec3(0.690196, 0.447059, 0.098039)},
+ {"java", vec3(0.690196, 0.447059, 0.098039)},
+ {"javascript", vec3(0.945098, 0.878431, 0.352941)},
+ {"jbuilder", vec3(0.439216, 0.082353, 0.086275)},
+ {"jelly", vec3(0.000000, 0.376471, 0.674510)},
+ {"jflex", vec3(0.858824, 0.792157, 0.000000)},
+ {"jinja", vec3(0.647059, 0.164706, 0.133333)},
+ {"jinja2", vec3(0.647059, 0.164706, 0.133333)},
+ {"jison", vec3(0.337255, 0.701961, 0.796078)},
+ {"jisonlex", vec3(0.337255, 0.701961, 0.796078)},
+ {"jl", vec3(0.635294, 0.439216, 0.729412)},
+ {"jq", vec3(0.250980, 0.831373, 0.494118)},
+ {"jq", vec3(0.780392, 0.145098, 0.305882)},
+ {"js", vec3(0.945098, 0.878431, 0.352941)},
+ {"js.erb", vec3(0.945098, 0.878431, 0.352941)},
+ {"jsb", vec3(0.945098, 0.878431, 0.352941)},
+ {"jscad", vec3(0.945098, 0.878431, 0.352941)},
+ {"jsfl", vec3(0.945098, 0.878431, 0.352941)},
+ {"jsm", vec3(0.945098, 0.878431, 0.352941)},
+ {"json", vec3(0.160784, 0.160784, 0.160784)},
+ {"json5", vec3(0.149020, 0.486275, 0.725490)},
+ {"jsonc", vec3(0.160784, 0.160784, 0.160784)},
+ {"jsonl", vec3(0.160784, 0.160784, 0.160784)},
+ {"jsonld", vec3(0.047059, 0.278431, 0.611765)},
+ {"jsonnet", vec3(0.000000, 0.392157, 0.741176)},
+ {"jsp", vec3(0.164706, 0.384314, 0.466667)},
+ {"jsproj", vec3(0.000000, 0.376471, 0.674510)},
+ {"jss", vec3(0.945098, 0.878431, 0.352941)},
+ {"jst", vec3(0.662745, 0.117647, 0.313725)},
+ {"jsx", vec3(0.945098, 0.878431, 0.352941)},
+ {"kak", vec3(0.435294, 0.501961, 0.258824)},
+ {"kicad_mod", vec3(0.184314, 0.290196, 0.670588)},
+ {"kicad_pcb", vec3(0.184314, 0.290196, 0.670588)},
+ {"kicad_wks", vec3(0.184314, 0.290196, 0.670588)},
+ {"kid", vec3(0.584314, 0.082353, 0.192157)},
+ {"kml", vec3(0.000000, 0.376471, 0.674510)},
+ {"kojo", vec3(0.760784, 0.176471, 0.250980)},
+ {"krl", vec3(0.156863, 0.262745, 0.039216)},
+ {"ksh", vec3(0.537255, 0.878431, 0.317647)},
+ {"ksy", vec3(0.466667, 0.231373, 0.215686)},
+ {"kt", vec3(0.662745, 0.482353, 1.000000)},
+ {"ktm", vec3(0.662745, 0.482353, 1.000000)},
+ {"kts", vec3(0.662745, 0.482353, 1.000000)},
+ {"kv", vec3(0.113725, 0.650980, 0.878431)},
+ {"l", vec3(0.376471, 0.403922, 0.686275)},
+ {"l", vec3(0.858824, 0.792157, 0.000000)},
+ {"l", vec3(0.925490, 0.870588, 0.745098)},
+ {"l", vec3(0.247059, 0.713725, 0.545098)},
+ {"lagda", vec3(0.192157, 0.337255, 0.396078)},
+ {"lark", vec3(0.160784, 0.501961, 0.725490)},
+ {"las", vec3(0.600000, 0.600000, 0.600000)},
+ {"lasso", vec3(0.600000, 0.600000, 0.600000)},
+ {"lasso8", vec3(0.600000, 0.600000, 0.600000)},
+ {"lasso9", vec3(0.600000, 0.600000, 0.600000)},
+ {"latte", vec3(0.949020, 0.647059, 0.258824)},
+ {"launch", vec3(0.000000, 0.376471, 0.674510)},
+ {"lbx", vec3(0.239216, 0.380392, 0.090196)},
+ {"lektorproject", vec3(0.819608, 0.858824, 0.878431)},
+ {"less", vec3(0.113725, 0.211765, 0.364706)},
+ {"lex", vec3(0.858824, 0.792157, 0.000000)},
+ {"lfe", vec3(0.298039, 0.188235, 0.137255)},
+ {"lgt", vec3(0.160784, 0.356863, 0.603922)},
+ {"lhs", vec3(0.368627, 0.313725, 0.525490)},
+ {"libsonnet", vec3(0.000000, 0.392157, 0.741176)},
+ {"lid", vec3(0.423529, 0.380392, 0.431373)},
+ {"lidr", vec3(0.701961, 0.000000, 0.000000)},
+ {"linq", vec3(0.090196, 0.525490, 0.000000)},
+ {"liquid", vec3(0.403922, 0.721569, 0.870588)},
+ {"lisp", vec3(0.529412, 0.682353, 0.843137)},
+ {"lisp", vec3(0.247059, 0.713725, 0.545098)},
+ {"litcoffee", vec3(0.141176, 0.278431, 0.462745)},
+ {"ll", vec3(0.094118, 0.337255, 0.098039)},
+ {"lmi", vec3(0.207843, 0.447059, 0.647059)},
+ {"logtalk", vec3(0.160784, 0.356863, 0.603922)},
+ {"lol", vec3(0.800000, 0.600000, 0.000000)},
+ {"lookml", vec3(0.396078, 0.168627, 0.505882)},
+ {"lpr", vec3(0.890196, 0.945098, 0.443137)},
+ {"ls", vec3(0.286275, 0.596078, 0.525490)},
+ {"lsl", vec3(0.239216, 0.600000, 0.439216)},
+ {"lslp", vec3(0.239216, 0.600000, 0.439216)},
+ {"lsp", vec3(0.529412, 0.682353, 0.843137)},
+ {"lsp", vec3(0.247059, 0.713725, 0.545098)},
+ {"ltx", vec3(0.239216, 0.380392, 0.090196)},
+ {"lua", vec3(0.000000, 0.000000, 0.501961)},
+ {"lvlib", vec3(0.996078, 0.870588, 0.023529)},
+ {"lvproj", vec3(0.996078, 0.870588, 0.023529)},
+ {"ly", vec3(0.611765, 0.800000, 0.486275)},
+ {"m", vec3(0.866667, 0.066667, 0.000000)},
+ {"m", vec3(0.262745, 0.556863, 1.000000)},
+ {"m", vec3(0.882353, 0.403922, 0.215686)},
+ {"m", vec3(1.000000, 0.168627, 0.168627)},
+ {"m2", vec3(0.847059, 1.000000, 1.000000)},
+ {"m3", vec3(0.133333, 0.200000, 0.533333)},
+ {"ma", vec3(0.866667, 0.066667, 0.000000)},
+ {"mak", vec3(0.258824, 0.470588, 0.098039)},
+ {"make", vec3(0.258824, 0.470588, 0.098039)},
+ {"makefile", vec3(0.258824, 0.470588, 0.098039)},
+ {"mako", vec3(0.494118, 0.521569, 0.552941)},
+ {"man", vec3(0.925490, 0.870588, 0.745098)},
+ {"man", vec3(0.925490, 0.870588, 0.745098)},
+ {"mao", vec3(0.494118, 0.521569, 0.552941)},
+ {"markdown", vec3(0.031373, 0.247059, 0.631373)},
+ {"marko", vec3(0.258824, 0.749020, 0.949020)},
+ {"mask", vec3(0.976471, 0.466667, 0.196078)},
+ {"mask", vec3(0.133333, 0.172549, 0.215686)},
+ {"mat", vec3(0.133333, 0.172549, 0.215686)},
+ {"mata", vec3(0.101961, 0.372549, 0.568627)},
+ {"matah", vec3(0.101961, 0.372549, 0.568627)},
+ {"mathematica", vec3(0.866667, 0.066667, 0.000000)},
+ {"matlab", vec3(0.882353, 0.403922, 0.215686)},
+ {"mawk", vec3(0.764706, 0.054902, 0.607843)},
+ {"maxhelp", vec3(0.768627, 0.654902, 0.611765)},
+ {"maxpat", vec3(0.768627, 0.654902, 0.611765)},
+ {"maxproj", vec3(0.768627, 0.654902, 0.611765)},
+ {"mcfunction", vec3(0.886275, 0.156863, 0.215686)},
+ {"mcmeta", vec3(0.160784, 0.160784, 0.160784)},
+ {"mcr", vec3(0.000000, 0.650980, 0.650980)},
+ {"md", vec3(0.031373, 0.247059, 0.631373)},
+ {"md", vec3(1.000000, 0.811765, 0.670588)},
+ {"mdoc", vec3(0.925490, 0.870588, 0.745098)},
+ {"mdoc", vec3(0.925490, 0.870588, 0.745098)},
+ {"mdown", vec3(0.031373, 0.247059, 0.631373)},
+ {"mdpolicy", vec3(0.000000, 0.376471, 0.674510)},
+ {"mdwn", vec3(0.031373, 0.247059, 0.631373)},
+ {"mdx", vec3(0.031373, 0.247059, 0.631373)},
+ {"me", vec3(0.925490, 0.870588, 0.745098)},
+ {"mediawiki", vec3(0.988235, 0.341176, 0.341176)},
+ {"meta", vec3(0.133333, 0.172549, 0.215686)},
+ {"metal", vec3(0.560784, 0.078431, 0.913725)},
+ {"mg", vec3(0.133333, 0.200000, 0.533333)},
+ {"mint", vec3(0.007843, 0.690196, 0.274510)},
+ {"mir", vec3(0.796078, 0.090196, 0.117647)},
+ {"mirah", vec3(0.780392, 0.662745, 0.219608)},
+ {"mjml", vec3(0.000000, 0.376471, 0.674510)},
+ {"mjs", vec3(0.945098, 0.878431, 0.352941)},
+ {"mk", vec3(0.258824, 0.470588, 0.098039)},
+ {"mkd", vec3(0.031373, 0.247059, 0.631373)},
+ {"mkdn", vec3(0.031373, 0.247059, 0.631373)},
+ {"mkdown", vec3(0.031373, 0.247059, 0.631373)},
+ {"mkfile", vec3(0.258824, 0.470588, 0.098039)},
+ {"mkii", vec3(0.239216, 0.380392, 0.090196)},
+ {"mkiv", vec3(0.239216, 0.380392, 0.090196)},
+ {"mkvi", vec3(0.239216, 0.380392, 0.090196)},
+ {"ml", vec3(0.862745, 0.337255, 0.427451)},
+ {"ml", vec3(0.231373, 0.882353, 0.200000)},
+ {"ml4", vec3(0.231373, 0.882353, 0.200000)},
+ {"mli", vec3(0.231373, 0.882353, 0.200000)},
+ {"mlir", vec3(0.368627, 0.784314, 0.858824)},
+ {"mll", vec3(0.231373, 0.882353, 0.200000)},
+ {"mly", vec3(0.231373, 0.882353, 0.200000)},
+ {"mm", vec3(0.407843, 0.400000, 0.984314)},
+ {"mm", vec3(0.000000, 0.376471, 0.674510)},
+ {"mo", vec3(0.870588, 0.113725, 0.192157)},
+ {"mo", vec3(0.984314, 0.690196, 0.231373)},
+ {"mod", vec3(0.062745, 0.145098, 0.247059)},
+ {"mod", vec3(0.000000, 0.376471, 0.674510)},
+ {"mod", vec3(0.901961, 0.937255, 0.733333)},
+ {"model.lkml", vec3(0.396078, 0.168627, 0.505882)},
+ {"moo", vec3(1.000000, 0.168627, 0.168627)},
+ {"moon", vec3(1.000000, 0.270588, 0.521569)},
+ {"mq4", vec3(0.384314, 0.658824, 0.839216)},
+ {"mq5", vec3(0.290196, 0.462745, 0.721569)},
+ {"mqh", vec3(0.290196, 0.462745, 0.721569)},
+ {"mqh", vec3(0.384314, 0.658824, 0.839216)},
+ {"mrc", vec3(0.239216, 0.341176, 0.764706)},
+ {"ms", vec3(0.000000, 0.650980, 0.650980)},
+ {"ms", vec3(0.925490, 0.870588, 0.745098)},
+ {"mspec", vec3(0.439216, 0.082353, 0.086275)},
+ {"mt", vec3(0.866667, 0.066667, 0.000000)},
+ {"mtml", vec3(0.717647, 0.882353, 0.956863)},
+ {"mu", vec3(0.141176, 0.286275, 0.388235)},
+ {"mud", vec3(0.862745, 0.458824, 0.898039)},
+ {"mustache", vec3(0.447059, 0.294118, 0.231373)},
+ {"mxml", vec3(0.000000, 0.376471, 0.674510)},
+ {"mxt", vec3(0.768627, 0.654902, 0.611765)},
+ {"mysql", vec3(0.890196, 0.549020, 0.000000)},
+ {"n", vec3(0.925490, 0.870588, 0.745098)},
+ {"n", vec3(0.239216, 0.235294, 0.431373)},
+ {"nanorc", vec3(0.176471, 0.000000, 0.301961)},
+ {"nasm", vec3(0.431373, 0.298039, 0.074510)},
+ {"natvis", vec3(0.000000, 0.376471, 0.674510)},
+ {"nawk", vec3(0.764706, 0.054902, 0.607843)},
+ {"nb", vec3(0.866667, 0.066667, 0.000000)},
+ {"nbp", vec3(0.866667, 0.066667, 0.000000)},
+ {"nc", vec3(0.580392, 0.690196, 0.780392)},
+ {"ncl", vec3(0.156863, 0.262745, 0.121569)},
+ {"ncl", vec3(0.000000, 0.376471, 0.674510)},
+ {"ncl", vec3(0.823529, 0.043137, 0.000000)},
+ {"ndproj", vec3(0.000000, 0.376471, 0.674510)},
+ {"ne", vec3(0.600000, 0.000000, 0.000000)},
+ {"nearley", vec3(0.600000, 0.000000, 0.000000)},
+ {"nf", vec3(0.227451, 0.768627, 0.525490)},
+ {"nginx", vec3(0.000000, 0.588235, 0.223529)},
+ {"nginxconf", vec3(0.000000, 0.588235, 0.223529)},
+ {"nim", vec3(1.000000, 0.760784, 0.000000)},
+ {"nim.cfg", vec3(1.000000, 0.760784, 0.000000)},
+ {"nimble", vec3(1.000000, 0.760784, 0.000000)},
+ {"nimrod", vec3(1.000000, 0.760784, 0.000000)},
+ {"nims", vec3(1.000000, 0.760784, 0.000000)},
+ {"nit", vec3(0.000000, 0.600000, 0.090196)},
+ {"nix", vec3(0.494118, 0.494118, 1.000000)},
+ {"njk", vec3(0.239216, 0.505882, 0.215686)},
+ {"njs", vec3(0.945098, 0.878431, 0.352941)},
+ {"nl", vec3(0.529412, 0.682353, 0.843137)},
+ {"nlogo", vec3(1.000000, 0.388235, 0.458824)},
+ {"nproj", vec3(0.000000, 0.376471, 0.674510)},
+ {"nqp", vec3(0.000000, 0.000000, 0.984314)},
+ {"nr", vec3(0.925490, 0.870588, 0.745098)},
+ {"nse", vec3(0.000000, 0.000000, 0.501961)},
+ {"nss", vec3(0.066667, 0.082353, 0.133333)},
+ {"nu", vec3(0.788235, 0.874510, 0.250980)},
+ {"numpy", vec3(0.611765, 0.541176, 0.976471)},
+ {"numpyw", vec3(0.611765, 0.541176, 0.976471)},
+ {"numsc", vec3(0.611765, 0.541176, 0.976471)},
+ {"nuspec", vec3(0.000000, 0.376471, 0.674510)},
+ {"nut", vec3(0.501961, 0.000000, 0.000000)},
+ {"ny", vec3(0.247059, 0.713725, 0.545098)},
+ {"odd", vec3(0.000000, 0.376471, 0.674510)},
+ {"odin", vec3(0.376471, 0.686275, 0.996078)},
+ {"ol", vec3(0.517647, 0.192157, 0.474510)},
+ {"omgrofl", vec3(0.792157, 0.733333, 1.000000)},
+ {"ooc", vec3(0.690196, 0.717647, 0.494118)},
+ {"opal", vec3(0.968627, 0.929412, 0.878431)},
+ {"opencl", vec3(0.929412, 0.180392, 0.176471)},
+ {"orc", vec3(0.101961, 0.101961, 0.101961)},
+ {"org", vec3(0.466667, 0.666667, 0.600000)},
+ {"os", vec3(0.505882, 0.298039, 0.800000)},
+ {"osm", vec3(0.000000, 0.376471, 0.674510)},
+ {"owl", vec3(0.356863, 0.439216, 0.741176)},
+ {"oxygene", vec3(0.803922, 0.815686, 0.890196)},
+ {"oz", vec3(0.980392, 0.717647, 0.219608)},
+ {"p", vec3(0.360784, 0.901961, 0.000000)},
+ {"p", vec3(0.941176, 0.662745, 0.941176)},
+ {"p4", vec3(0.439216, 0.333333, 0.709804)},
+ {"p6", vec3(0.000000, 0.000000, 0.984314)},
+ {"p6l", vec3(0.000000, 0.000000, 0.984314)},
+ {"p6m", vec3(0.000000, 0.000000, 0.984314)},
+ {"p8", vec3(0.000000, 0.000000, 0.501961)},
+ {"pac", vec3(0.945098, 0.878431, 0.352941)},
+ {"pan", vec3(0.800000, 0.000000, 0.000000)},
+ {"parrot", vec3(0.952941, 0.792157, 0.039216)},
+ {"pas", vec3(0.890196, 0.945098, 0.443137)},
+ {"pascal", vec3(0.890196, 0.945098, 0.443137)},
+ {"pat", vec3(0.768627, 0.654902, 0.611765)},
+ {"pb", vec3(0.352941, 0.411765, 0.525490)},
+ {"pbi", vec3(0.352941, 0.411765, 0.525490)},
+ {"pbt", vec3(0.560784, 0.058824, 0.552941)},
+ {"pck", vec3(0.854902, 0.847059, 0.847059)},
+ {"pcss", vec3(0.862745, 0.227451, 0.047059)},
+ {"pd_lua", vec3(0.000000, 0.000000, 0.501961)},
+ {"pde", vec3(0.000000, 0.588235, 0.847059)},
+ {"pegjs", vec3(0.137255, 0.301961, 0.419608)},
+ {"pep", vec3(0.780392, 0.435294, 0.356863)},
+ {"perl", vec3(0.007843, 0.596078, 0.764706)},
+ {"pfa", vec3(0.854902, 0.160784, 0.109804)},
+ {"pgsql", vec3(0.200000, 0.403922, 0.564706)},
+ {"ph", vec3(0.007843, 0.596078, 0.764706)},
+ {"php", vec3(0.309804, 0.364706, 0.584314)},
+ {"php", vec3(0.529412, 0.529412, 0.529412)},
+ {"php3", vec3(0.309804, 0.364706, 0.584314)},
+ {"php4", vec3(0.309804, 0.364706, 0.584314)},
+ {"php5", vec3(0.309804, 0.364706, 0.584314)},
+ {"phps", vec3(0.309804, 0.364706, 0.584314)},
+ {"phpt", vec3(0.309804, 0.364706, 0.584314)},
+ {"phtml", vec3(0.309804, 0.364706, 0.584314)},
+ {"pig", vec3(0.988235, 0.843137, 0.870588)},
+ {"pike", vec3(0.000000, 0.325490, 0.564706)},
+ {"pkb", vec3(0.854902, 0.847059, 0.847059)},
+ {"pkgproj", vec3(0.000000, 0.376471, 0.674510)},
+ {"pks", vec3(0.854902, 0.847059, 0.847059)},
+ {"pl", vec3(0.000000, 0.000000, 0.984314)},
+ {"pl", vec3(0.454902, 0.156863, 0.235294)},
+ {"pl", vec3(0.007843, 0.596078, 0.764706)},
+ {"pl6", vec3(0.000000, 0.000000, 0.984314)},
+ {"plb", vec3(0.854902, 0.847059, 0.847059)},
+ {"plist", vec3(0.000000, 0.376471, 0.674510)},
+ {"plot", vec3(0.941176, 0.662745, 0.941176)},
+ {"pls", vec3(0.854902, 0.847059, 0.847059)},
+ {"plsql", vec3(0.854902, 0.847059, 0.847059)},
+ {"plt", vec3(0.941176, 0.662745, 0.941176)},
+ {"pluginspec", vec3(0.439216, 0.082353, 0.086275)},
+ {"pluginspec", vec3(0.000000, 0.376471, 0.674510)},
+ {"plx", vec3(0.007843, 0.596078, 0.764706)},
+ {"pm", vec3(0.007843, 0.596078, 0.764706)},
+ {"pm", vec3(0.000000, 0.000000, 0.984314)},
+ {"pm6", vec3(0.000000, 0.000000, 0.984314)},
+ {"pml", vec3(0.870588, 0.000000, 0.000000)},
+ {"pmod", vec3(0.000000, 0.325490, 0.564706)},
+ {"podsl", vec3(0.247059, 0.713725, 0.545098)},
+ {"podspec", vec3(0.439216, 0.082353, 0.086275)},
+ {"pogo", vec3(0.847059, 0.000000, 0.454902)},
+ {"postcss", vec3(0.862745, 0.227451, 0.047059)},
+ {"pov", vec3(0.419608, 0.674510, 0.396078)},
+ {"pp", vec3(0.890196, 0.945098, 0.443137)},
+ {"pp", vec3(0.188235, 0.168627, 0.427451)},
+ {"pprx", vec3(0.850980, 0.054902, 0.035294)},
+ {"prawn", vec3(0.439216, 0.082353, 0.086275)},
+ {"prc", vec3(0.854902, 0.847059, 0.847059)},
+ {"prc", vec3(0.890196, 0.549020, 0.000000)},
+ {"prefab", vec3(0.133333, 0.172549, 0.215686)},
+ {"prefs", vec3(0.819608, 0.858824, 0.878431)},
+ {"prg", vec3(0.250980, 0.227451, 0.250980)},
+ {"prisma", vec3(0.047059, 0.203922, 0.294118)},
+ {"pro", vec3(0.819608, 0.858824, 0.878431)},
+ {"pro", vec3(0.639216, 0.321569, 0.184314)},
+ {"pro", vec3(0.454902, 0.156863, 0.235294)},
+ {"proj", vec3(0.000000, 0.376471, 0.674510)},
+ {"prolog", vec3(0.454902, 0.156863, 0.235294)},
+ {"properties", vec3(0.164706, 0.384314, 0.466667)},
+ {"properties", vec3(0.819608, 0.858824, 0.878431)},
+ {"props", vec3(0.000000, 0.376471, 0.674510)},
+ {"prw", vec3(0.250980, 0.227451, 0.250980)},
+ {"ps", vec3(0.854902, 0.160784, 0.109804)},
+ {"ps1", vec3(0.003922, 0.141176, 0.337255)},
+ {"ps1xml", vec3(0.000000, 0.376471, 0.674510)},
+ {"psc", vec3(0.400000, 0.000000, 0.800000)},
+ {"psc1", vec3(0.000000, 0.376471, 0.674510)},
+ {"psd1", vec3(0.003922, 0.141176, 0.337255)},
+ {"psgi", vec3(0.007843, 0.596078, 0.764706)},
+ {"psm1", vec3(0.003922, 0.141176, 0.337255)},
+ {"pt", vec3(0.000000, 0.376471, 0.674510)},
+ {"pug", vec3(0.658824, 0.392157, 0.329412)},
+ {"purs", vec3(0.113725, 0.133333, 0.176471)},
+ {"pwn", vec3(0.858824, 0.698039, 0.517647)},
+ {"pxd", vec3(0.996078, 0.874510, 0.356863)},
+ {"pxi", vec3(0.996078, 0.874510, 0.356863)},
+ {"py", vec3(0.207843, 0.447059, 0.647059)},
+ {"py3", vec3(0.207843, 0.447059, 0.647059)},
+ {"pyde", vec3(0.207843, 0.447059, 0.647059)},
+ {"pyi", vec3(0.207843, 0.447059, 0.647059)},
+ {"pyp", vec3(0.207843, 0.447059, 0.647059)},
+ {"pyt", vec3(0.207843, 0.447059, 0.647059)},
+ {"pytb", vec3(0.207843, 0.447059, 0.647059)},
+ {"pyw", vec3(0.207843, 0.447059, 0.647059)},
+ {"pyx", vec3(0.996078, 0.874510, 0.356863)},
+ {"q", vec3(0.862745, 0.886275, 0.000000)},
+ {"q", vec3(0.000000, 0.250980, 0.803922)},
+ {"qasm", vec3(0.666667, 0.439216, 1.000000)},
+ {"qbs", vec3(0.266667, 0.647059, 0.109804)},
+ {"ql", vec3(0.078431, 0.058824, 0.274510)},
+ {"qll", vec3(0.078431, 0.058824, 0.274510)},
+ {"qml", vec3(0.266667, 0.647059, 0.109804)},
+ {"qs", vec3(0.000000, 0.721569, 0.254902)},
+ {"qs", vec3(0.996078, 0.839216, 0.349020)},
+ {"r", vec3(0.207843, 0.541176, 0.356863)},
+ {"r", vec3(0.098039, 0.549020, 0.905882)},
+ {"r2", vec3(0.207843, 0.541176, 0.356863)},
+ {"r3", vec3(0.207843, 0.541176, 0.356863)},
+ {"rabl", vec3(0.439216, 0.082353, 0.086275)},
+ {"rake", vec3(0.439216, 0.082353, 0.086275)},
+ {"raku", vec3(0.000000, 0.000000, 0.984314)},
+ {"rakumod", vec3(0.000000, 0.000000, 0.984314)},
+ {"raml", vec3(0.466667, 0.850980, 0.984314)},
+ {"razor", vec3(0.317647, 0.168627, 0.894118)},
+ {"rb", vec3(0.439216, 0.082353, 0.086275)},
+ {"rbi", vec3(0.439216, 0.082353, 0.086275)},
+ {"rbuild", vec3(0.439216, 0.082353, 0.086275)},
+ {"rbw", vec3(0.439216, 0.082353, 0.086275)},
+ {"rbx", vec3(0.439216, 0.082353, 0.086275)},
+ {"rbxs", vec3(0.000000, 0.000000, 0.501961)},
+ {"rchit", vec3(0.337255, 0.525490, 0.647059)},
+ {"rd", vec3(0.098039, 0.549020, 0.905882)},
+ {"rdf", vec3(0.000000, 0.376471, 0.674510)},
+ {"rdoc", vec3(0.439216, 0.082353, 0.086275)},
+ {"re", vec3(1.000000, 0.345098, 0.278431)},
+ {"re", vec3(0.952941, 0.294118, 0.490196)},
+ {"reb", vec3(0.207843, 0.541176, 0.356863)},
+ {"rebol", vec3(0.207843, 0.541176, 0.356863)},
+ {"red", vec3(0.960784, 0.000000, 0.000000)},
+ {"reds", vec3(0.960784, 0.000000, 0.000000)},
+ {"reek", vec3(0.796078, 0.090196, 0.117647)},
+ {"reg", vec3(0.321569, 0.835294, 1.000000)},
+ {"regex", vec3(0.000000, 0.603922, 0.000000)},
+ {"regexp", vec3(0.000000, 0.603922, 0.000000)},
+ {"rego", vec3(0.490196, 0.568627, 0.600000)},
+ {"rei", vec3(1.000000, 0.345098, 0.278431)},
+ {"res", vec3(0.000000, 0.376471, 0.674510)},
+ {"res", vec3(0.929412, 0.313725, 0.317647)},
+ {"rest", vec3(0.078431, 0.078431, 0.078431)},
+ {"rest.txt", vec3(0.078431, 0.078431, 0.078431)},
+ {"resx", vec3(0.000000, 0.376471, 0.674510)},
+ {"rex", vec3(0.850980, 0.054902, 0.035294)},
+ {"rexx", vec3(0.850980, 0.054902, 0.035294)},
+ {"rg", vec3(0.800000, 0.000000, 0.533333)},
+ {"rhtml", vec3(0.439216, 0.082353, 0.086275)},
+ {"ring", vec3(0.176471, 0.329412, 0.796078)},
+ {"riot", vec3(0.654902, 0.117647, 0.286275)},
+ {"rkt", vec3(0.235294, 0.360784, 0.666667)},
+ {"rktd", vec3(0.235294, 0.360784, 0.666667)},
+ {"rktl", vec3(0.235294, 0.360784, 0.666667)},
+ {"rl", vec3(0.615686, 0.321569, 0.000000)},
+ {"rmd", vec3(0.098039, 0.549020, 0.905882)},
+ {"rmiss", vec3(0.337255, 0.525490, 0.647059)},
+ {"rnh", vec3(0.400000, 0.352941, 0.305882)},
+ {"rno", vec3(0.400000, 0.352941, 0.305882)},
+ {"rno", vec3(0.925490, 0.870588, 0.745098)},
+ {"robot", vec3(0.000000, 0.752941, 0.709804)},
+ {"rockspec", vec3(0.000000, 0.000000, 0.501961)},
+ {"roff", vec3(0.925490, 0.870588, 0.745098)},
+ {"ronn", vec3(0.031373, 0.247059, 0.631373)},
+ {"rpgle", vec3(0.168627, 0.870588, 0.129412)},
+ {"rpy", vec3(1.000000, 0.498039, 0.498039)},
+ {"rpy", vec3(0.207843, 0.447059, 0.647059)},
+ {"rq", vec3(0.047059, 0.270588, 0.592157)},
+ {"rs", vec3(0.000000, 0.376471, 0.674510)},
+ {"rs", vec3(0.870588, 0.647059, 0.517647)},
+ {"rs.in", vec3(0.870588, 0.647059, 0.517647)},
+ {"rsc", vec3(1.000000, 0.980392, 0.627451)},
+ {"rss", vec3(0.000000, 0.376471, 0.674510)},
+ {"rst", vec3(0.078431, 0.078431, 0.078431)},
+ {"rst.txt", vec3(0.078431, 0.078431, 0.078431)},
+ {"rsx", vec3(0.098039, 0.549020, 0.905882)},
+ {"ru", vec3(0.439216, 0.082353, 0.086275)},
+ {"ruby", vec3(0.439216, 0.082353, 0.086275)},
+ {"rviz", vec3(0.796078, 0.090196, 0.117647)},
+ {"s", vec3(0.000000, 0.364706, 0.666667)},
+ {"sas", vec3(0.701961, 0.286275, 0.211765)},
+ {"sass", vec3(0.647059, 0.231373, 0.439216)},
+ {"sats", vec3(0.101961, 0.776471, 0.125490)},
+ {"sbt", vec3(0.760784, 0.176471, 0.250980)},
+ {"sc", vec3(0.760784, 0.176471, 0.250980)},
+ {"sc", vec3(0.274510, 0.223529, 0.043137)},
+ {"scad", vec3(0.898039, 0.803922, 0.270588)},
+ {"scala", vec3(0.760784, 0.176471, 0.250980)},
+ {"scaml", vec3(0.741176, 0.094118, 0.101961)},
+ {"scd", vec3(0.031373, 0.247059, 0.631373)},
+ {"scd", vec3(0.274510, 0.223529, 0.043137)},
+ {"sce", vec3(0.792157, 0.058824, 0.129412)},
+ {"sch", vec3(0.000000, 0.376471, 0.674510)},
+ {"sch", vec3(0.184314, 0.290196, 0.670588)},
+ {"sch", vec3(0.117647, 0.290196, 0.925490)},
+ {"sci", vec3(0.792157, 0.058824, 0.129412)},
+ {"scm", vec3(0.117647, 0.290196, 0.925490)},
+ {"sco", vec3(0.101961, 0.101961, 0.101961)},
+ {"scpt", vec3(0.062745, 0.121569, 0.121569)},
+ {"scrbl", vec3(0.235294, 0.360784, 0.666667)},
+ {"scss", vec3(0.776471, 0.325490, 0.549020)},
+ {"scxml", vec3(0.000000, 0.376471, 0.674510)},
+ {"sed", vec3(0.392157, 0.725490, 0.439216)},
+ {"self", vec3(0.019608, 0.474510, 0.666667)},
+ {"sexp", vec3(0.247059, 0.713725, 0.545098)},
+ {"sfproj", vec3(0.000000, 0.376471, 0.674510)},
+ {"sh", vec3(0.537255, 0.878431, 0.317647)},
+ {"sh.in", vec3(0.537255, 0.878431, 0.317647)},
+ {"shader", vec3(0.133333, 0.172549, 0.215686)},
+ {"shader", vec3(0.337255, 0.525490, 0.647059)},
+ {"shen", vec3(0.070588, 0.058824, 0.078431)},
+ {"shproj", vec3(0.000000, 0.376471, 0.674510)},
+ {"sig", vec3(0.862745, 0.337255, 0.427451)},
+ {"sj", vec3(1.000000, 0.047059, 0.352941)},
+ {"sjs", vec3(0.945098, 0.878431, 0.352941)},
+ {"sl", vec3(0.000000, 0.494118, 1.000000)},
+ {"sld", vec3(0.117647, 0.290196, 0.925490)},
+ {"slim", vec3(0.168627, 0.168627, 0.168627)},
+ {"sls", vec3(0.117647, 0.290196, 0.925490)},
+ {"sls", vec3(0.392157, 0.392157, 0.392157)},
+ {"sma", vec3(0.858824, 0.698039, 0.517647)},
+ {"smk", vec3(0.207843, 0.447059, 0.647059)},
+ {"sml", vec3(0.862745, 0.337255, 0.427451)},
+ {"snap", vec3(0.082353, 0.760784, 0.074510)},
+ {"snip", vec3(0.098039, 0.623529, 0.294118)},
+ {"snippet", vec3(0.098039, 0.623529, 0.294118)},
+ {"snippets", vec3(0.098039, 0.623529, 0.294118)},
+ {"sol", vec3(0.666667, 0.403922, 0.274510)},
+ {"sol", vec3(0.823529, 0.043137, 0.000000)},
+ {"soy", vec3(0.050980, 0.580392, 0.560784)},
+ {"sp", vec3(0.964706, 0.619608, 0.113725)},
+ {"sparql", vec3(0.047059, 0.270588, 0.592157)},
+ {"spc", vec3(0.854902, 0.847059, 0.847059)},
+ {"spec", vec3(0.207843, 0.447059, 0.647059)},
+ {"spec", vec3(0.439216, 0.082353, 0.086275)},
+ {"spin", vec3(0.498039, 0.635294, 0.654902)},
+ {"sps", vec3(0.117647, 0.290196, 0.925490)},
+ {"sqf", vec3(0.247059, 0.247059, 0.247059)},
+ {"sql", vec3(0.890196, 0.549020, 0.000000)},
+ {"sql", vec3(0.200000, 0.403922, 0.564706)},
+ {"sql", vec3(0.890196, 0.549020, 0.000000)},
+ {"sql", vec3(0.890196, 0.549020, 0.000000)},
+ {"sql", vec3(0.854902, 0.847059, 0.847059)},
+ {"sqlrpgle", vec3(0.168627, 0.870588, 0.129412)},
+ {"sra", vec3(0.560784, 0.058824, 0.552941)},
+ {"srdf", vec3(0.000000, 0.376471, 0.674510)},
+ {"srt", vec3(0.619608, 0.003922, 0.003922)},
+ {"srt", vec3(0.203922, 0.541176, 0.203922)},
+ {"sru", vec3(0.560784, 0.058824, 0.552941)},
+ {"srw", vec3(0.560784, 0.058824, 0.552941)},
+ {"ss", vec3(0.117647, 0.290196, 0.925490)},
+ {"ssjs", vec3(0.945098, 0.878431, 0.352941)},
+ {"sss", vec3(0.184314, 0.800000, 0.623529)},
+ {"st", vec3(0.247059, 0.701961, 0.309804)},
+ {"st", vec3(0.349020, 0.403922, 0.023529)},
+ {"stTheme", vec3(0.000000, 0.376471, 0.674510)},
+ {"stan", vec3(0.698039, 0.003922, 0.113725)},
+ {"sthlp", vec3(0.101961, 0.372549, 0.568627)},
+ {"story", vec3(0.356863, 0.125490, 0.388235)},
+ {"storyboard", vec3(0.000000, 0.376471, 0.674510)},
+ {"sty", vec3(0.239216, 0.380392, 0.090196)},
+ {"styl", vec3(1.000000, 0.388235, 0.278431)},
+ {"sublime-build", vec3(0.160784, 0.160784, 0.160784)},
+ {"sublime-commands", vec3(0.160784, 0.160784, 0.160784)},
+ {"sublime-completions", vec3(0.160784, 0.160784, 0.160784)},
+ {"sublime-keymap", vec3(0.160784, 0.160784, 0.160784)},
+ {"sublime-macro", vec3(0.160784, 0.160784, 0.160784)},
+ {"sublime-menu", vec3(0.160784, 0.160784, 0.160784)},
+ {"sublime-mousemap", vec3(0.160784, 0.160784, 0.160784)},
+ {"sublime-project", vec3(0.160784, 0.160784, 0.160784)},
+ {"sublime-settings", vec3(0.160784, 0.160784, 0.160784)},
+ {"sublime-snippet", vec3(0.000000, 0.376471, 0.674510)},
+ {"sublime-syntax", vec3(0.796078, 0.090196, 0.117647)},
+ {"sublime-theme", vec3(0.160784, 0.160784, 0.160784)},
+ {"sublime-workspace", vec3(0.160784, 0.160784, 0.160784)},
+ {"sublime_metrics", vec3(0.160784, 0.160784, 0.160784)},
+ {"sublime_session", vec3(0.160784, 0.160784, 0.160784)},
+ {"sv", vec3(0.854902, 0.882353, 0.760784)},
+ {"svelte", vec3(1.000000, 0.243137, 0.000000)},
+ {"svg", vec3(1.000000, 0.600000, 0.000000)},
+ {"svh", vec3(0.854902, 0.882353, 0.760784)},
+ {"swift", vec3(0.941176, 0.317647, 0.219608)},
+ {"syntax", vec3(0.796078, 0.090196, 0.117647)},
+ {"t", vec3(0.000000, 0.000000, 0.984314)},
+ {"t", vec3(0.811765, 0.078431, 0.168627)},
+ {"t", vec3(0.007843, 0.596078, 0.764706)},
+ {"t", vec3(0.000000, 0.000000, 0.298039)},
+ {"tab", vec3(0.890196, 0.549020, 0.000000)},
+ {"tac", vec3(0.207843, 0.447059, 0.647059)},
+ {"targets", vec3(0.000000, 0.376471, 0.674510)},
+ {"tcc", vec3(0.952941, 0.294118, 0.490196)},
+ {"tcl", vec3(0.894118, 0.800000, 0.596078)},
+ {"tcl.in", vec3(0.894118, 0.800000, 0.596078)},
+ {"tesc", vec3(0.337255, 0.525490, 0.647059)},
+ {"tese", vec3(0.337255, 0.525490, 0.647059)},
+ {"tex", vec3(0.239216, 0.380392, 0.090196)},
+ {"textile", vec3(1.000000, 0.905882, 0.674510)},
+ {"tfstate", vec3(0.160784, 0.160784, 0.160784)},
+ {"tfstate.backup", vec3(0.160784, 0.160784, 0.160784)},
+ {"thor", vec3(0.439216, 0.082353, 0.086275)},
+ {"thrift", vec3(0.819608, 0.129412, 0.152941)},
+ {"thy", vec3(0.996078, 0.996078, 0.000000)},
+ {"tla", vec3(0.294118, 0.000000, 0.474510)},
+ {"tm", vec3(0.894118, 0.800000, 0.596078)},
+ {"tmCommand", vec3(0.000000, 0.376471, 0.674510)},
+ {"tmLanguage", vec3(0.000000, 0.376471, 0.674510)},
+ {"tmPreferences", vec3(0.000000, 0.376471, 0.674510)},
+ {"tmSnippet", vec3(0.000000, 0.376471, 0.674510)},
+ {"tmTheme", vec3(0.000000, 0.376471, 0.674510)},
+ {"tmac", vec3(0.925490, 0.870588, 0.745098)},
+ {"tml", vec3(0.000000, 0.376471, 0.674510)},
+ {"tmux", vec3(0.537255, 0.878431, 0.317647)},
+ {"toc", vec3(0.239216, 0.380392, 0.090196)},
+ {"toc", vec3(0.968627, 0.894118, 0.247059)},
+ {"toml", vec3(0.611765, 0.258824, 0.129412)},
+ {"tool", vec3(0.537255, 0.878431, 0.317647)},
+ {"topojson", vec3(0.160784, 0.160784, 0.160784)},
+ {"tpb", vec3(0.854902, 0.847059, 0.847059)},
+ {"tpl", vec3(0.941176, 0.752941, 0.250980)},
+ {"tpp", vec3(0.952941, 0.294118, 0.490196)},
+ {"tps", vec3(0.854902, 0.847059, 0.847059)},
+ {"trg", vec3(0.854902, 0.847059, 0.847059)},
+ {"ts", vec3(0.000000, 0.376471, 0.674510)},
+ {"ts", vec3(0.168627, 0.454902, 0.537255)},
+ {"tst", vec3(0.000000, 0.000000, 0.800000)},
+ {"tst", vec3(0.792157, 0.058824, 0.129412)},
+ {"tsv", vec3(0.137255, 0.450980, 0.274510)},
+ {"tsx", vec3(0.000000, 0.376471, 0.674510)},
+ {"tsx", vec3(0.168627, 0.454902, 0.537255)},
+ {"tu", vec3(0.811765, 0.078431, 0.168627)},
+ {"twig", vec3(0.756863, 0.815686, 0.149020)},
+ {"txl", vec3(0.003922, 0.470588, 0.721569)},
+ {"txt", vec3(0.098039, 0.623529, 0.294118)},
+ {"uc", vec3(0.647059, 0.298039, 0.301961)},
+ {"udf", vec3(0.890196, 0.549020, 0.000000)},
+ {"udo", vec3(0.101961, 0.101961, 0.101961)},
+ {"ui", vec3(0.000000, 0.376471, 0.674510)},
+ {"unity", vec3(0.133333, 0.172549, 0.215686)},
+ {"uno", vec3(0.600000, 0.200000, 0.800000)},
+ {"upc", vec3(0.305882, 0.211765, 0.090196)},
+ {"ur", vec3(0.800000, 0.800000, 0.933333)},
+ {"urdf", vec3(0.000000, 0.376471, 0.674510)},
+ {"urs", vec3(0.800000, 0.800000, 0.933333)},
+ {"ux", vec3(0.000000, 0.376471, 0.674510)},
+ {"v", vec3(0.698039, 0.717647, 0.972549)},
+ {"v", vec3(0.309804, 0.529412, 0.768627)},
+ {"v", vec3(0.815686, 0.713725, 0.549020)},
+ {"vala", vec3(0.984314, 0.898039, 0.803922)},
+ {"vapi", vec3(0.984314, 0.898039, 0.803922)},
+ {"vark", vec3(0.509804, 0.576471, 0.498039)},
+ {"vb", vec3(0.580392, 0.364706, 0.717647)},
+ {"vba", vec3(0.098039, 0.623529, 0.294118)},
+ {"vba", vec3(0.525490, 0.490196, 0.694118)},
+ {"vbhtml", vec3(0.580392, 0.364706, 0.717647)},
+ {"vbproj", vec3(0.000000, 0.376471, 0.674510)},
+ {"vbs", vec3(0.082353, 0.862745, 0.862745)},
+ {"vcl", vec3(0.078431, 0.541176, 0.658824)},
+ {"vcxproj", vec3(0.000000, 0.376471, 0.674510)},
+ {"vdf", vec3(0.949020, 0.376471, 0.145098)},
+ {"veo", vec3(0.698039, 0.717647, 0.972549)},
+ {"vert", vec3(0.337255, 0.525490, 0.647059)},
+ {"vh", vec3(0.854902, 0.882353, 0.760784)},
+ {"vhd", vec3(0.678431, 0.698039, 0.796078)},
+ {"vhdl", vec3(0.678431, 0.698039, 0.796078)},
+ {"vhf", vec3(0.678431, 0.698039, 0.796078)},
+ {"vhi", vec3(0.678431, 0.698039, 0.796078)},
+ {"vho", vec3(0.678431, 0.698039, 0.796078)},
+ {"vhost", vec3(0.000000, 0.588235, 0.223529)},
+ {"vhost", vec3(0.819608, 0.129412, 0.152941)},
+ {"vhs", vec3(0.678431, 0.698039, 0.796078)},
+ {"vht", vec3(0.678431, 0.698039, 0.796078)},
+ {"vhw", vec3(0.678431, 0.698039, 0.796078)},
+ {"view.lkml", vec3(0.396078, 0.168627, 0.505882)},
+ {"vim", vec3(0.098039, 0.623529, 0.294118)},
+ {"vimrc", vec3(0.098039, 0.623529, 0.294118)},
+ {"viw", vec3(0.890196, 0.549020, 0.000000)},
+ {"vmb", vec3(0.098039, 0.623529, 0.294118)},
+ {"volt", vec3(0.121569, 0.121569, 0.121569)},
+ {"vrx", vec3(0.337255, 0.525490, 0.647059)},
+ {"vsh", vec3(0.337255, 0.525490, 0.647059)},
+ {"vshader", vec3(0.337255, 0.525490, 0.647059)},
+ {"vsixmanifest", vec3(0.000000, 0.376471, 0.674510)},
+ {"vssettings", vec3(0.000000, 0.376471, 0.674510)},
+ {"vstemplate", vec3(0.000000, 0.376471, 0.674510)},
+ {"vue", vec3(0.254902, 0.721569, 0.513725)},
+ {"vw", vec3(0.854902, 0.847059, 0.847059)},
+ {"vxml", vec3(0.000000, 0.376471, 0.674510)},
+ {"vy", vec3(0.160784, 0.501961, 0.725490)},
+ {"w", vec3(0.000000, 0.000000, 0.478431)},
+ {"w", vec3(0.360784, 0.901961, 0.000000)},
+ {"wast", vec3(0.015686, 0.074510, 0.231373)},
+ {"wat", vec3(0.015686, 0.074510, 0.231373)},
+ {"watchr", vec3(0.439216, 0.082353, 0.086275)},
+ {"wdl", vec3(0.258824, 0.945098, 0.956863)},
+ {"webapp", vec3(0.160784, 0.160784, 0.160784)},
+ {"webmanifest", vec3(0.160784, 0.160784, 0.160784)},
+ {"wiki", vec3(0.988235, 0.341176, 0.341176)},
+ {"wikitext", vec3(0.988235, 0.341176, 0.341176)},
+ {"wisp", vec3(0.458824, 0.509804, 0.819608)},
+ {"wixproj", vec3(0.000000, 0.376471, 0.674510)},
+ {"wl", vec3(0.866667, 0.066667, 0.000000)},
+ {"wlk", vec3(0.635294, 0.215686, 0.219608)},
+ {"wlt", vec3(0.866667, 0.066667, 0.000000)},
+ {"wlua", vec3(0.000000, 0.000000, 0.501961)},
+ {"workbook", vec3(0.031373, 0.247059, 0.631373)},
+ {"workflow", vec3(0.000000, 0.376471, 0.674510)},
+ {"ws", vec3(1.000000, 0.000000, 0.000000)},
+ {"wsdl", vec3(0.000000, 0.376471, 0.674510)},
+ {"wsf", vec3(0.000000, 0.376471, 0.674510)},
+ {"wsgi", vec3(0.207843, 0.447059, 0.647059)},
+ {"wxi", vec3(0.000000, 0.376471, 0.674510)},
+ {"wxl", vec3(0.000000, 0.376471, 0.674510)},
+ {"wxs", vec3(0.000000, 0.376471, 0.674510)},
+ {"x", vec3(0.666667, 0.807843, 0.376471)},
+ {"x10", vec3(0.294118, 0.419608, 0.937255)},
+ {"x3d", vec3(0.000000, 0.376471, 0.674510)},
+ {"x68", vec3(0.000000, 0.364706, 0.666667)},
+ {"xacro", vec3(0.000000, 0.376471, 0.674510)},
+ {"xaml", vec3(0.000000, 0.376471, 0.674510)},
+ {"xc", vec3(0.600000, 0.854902, 0.027451)},
+ {"xht", vec3(0.890196, 0.298039, 0.149020)},
+ {"xhtml", vec3(0.890196, 0.298039, 0.149020)},
+ {"xib", vec3(0.000000, 0.376471, 0.674510)},
+ {"xlf", vec3(0.000000, 0.376471, 0.674510)},
+ {"xliff", vec3(0.000000, 0.376471, 0.674510)},
+ {"xmi", vec3(0.000000, 0.376471, 0.674510)},
+ {"xml", vec3(0.000000, 0.376471, 0.674510)},
+ {"xml.dist", vec3(0.000000, 0.376471, 0.674510)},
+ {"xmp", vec3(0.000000, 0.376471, 0.674510)},
+ {"xojo_code", vec3(0.505882, 0.741176, 0.254902)},
+ {"xojo_menu", vec3(0.505882, 0.741176, 0.254902)},
+ {"xojo_report", vec3(0.505882, 0.741176, 0.254902)},
+ {"xojo_script", vec3(0.505882, 0.741176, 0.254902)},
+ {"xojo_toolbar", vec3(0.505882, 0.741176, 0.254902)},
+ {"xojo_window", vec3(0.505882, 0.741176, 0.254902)},
+ {"xproj", vec3(0.000000, 0.376471, 0.674510)},
+ {"xpy", vec3(0.207843, 0.447059, 0.647059)},
+ {"xq", vec3(0.321569, 0.196078, 0.905882)},
+ {"xql", vec3(0.321569, 0.196078, 0.905882)},
+ {"xqm", vec3(0.321569, 0.196078, 0.905882)},
+ {"xquery", vec3(0.321569, 0.196078, 0.905882)},
+ {"xqy", vec3(0.321569, 0.196078, 0.905882)},
+ {"xrl", vec3(0.721569, 0.223529, 0.596078)},
+ {"xsd", vec3(0.000000, 0.376471, 0.674510)},
+ {"xsh", vec3(0.156863, 0.368627, 0.937255)},
+ {"xsjs", vec3(0.945098, 0.878431, 0.352941)},
+ {"xsjslib", vec3(0.945098, 0.878431, 0.352941)},
+ {"xsl", vec3(0.921569, 0.549020, 0.921569)},
+ {"xslt", vec3(0.921569, 0.549020, 0.921569)},
+ {"xspec", vec3(0.000000, 0.376471, 0.674510)},
+ {"xtend", vec3(0.141176, 0.145098, 0.364706)},
+ {"xul", vec3(0.000000, 0.376471, 0.674510)},
+ {"xzap", vec3(0.050980, 0.400000, 0.368627)},
+ {"y", vec3(0.294118, 0.423529, 0.294118)},
+ {"yacc", vec3(0.294118, 0.423529, 0.294118)},
+ {"yaml", vec3(1.000000, 0.066667, 0.066667)},
+ {"yaml", vec3(0.796078, 0.090196, 0.117647)},
+ {"yaml-tmlanguage", vec3(0.796078, 0.090196, 0.117647)},
+ {"yaml.sed", vec3(0.796078, 0.090196, 0.117647)},
+ {"yap", vec3(0.454902, 0.156863, 0.235294)},
+ {"yar", vec3(0.133333, 0.000000, 0.000000)},
+ {"yara", vec3(0.133333, 0.000000, 0.000000)},
+ {"yasnippet", vec3(0.196078, 0.670588, 0.564706)},
+ {"yml", vec3(0.796078, 0.090196, 0.117647)},
+ {"yml.mysql", vec3(0.796078, 0.090196, 0.117647)},
+ {"yrl", vec3(0.721569, 0.223529, 0.596078)},
+ {"yy", vec3(0.294118, 0.423529, 0.294118)},
+ {"yy", vec3(0.160784, 0.160784, 0.160784)},
+ {"yyp", vec3(0.160784, 0.160784, 0.160784)},
+ {"zap", vec3(0.050980, 0.400000, 0.368627)},
+ {"zcml", vec3(0.000000, 0.376471, 0.674510)},
+ {"zep", vec3(0.066667, 0.560784, 0.619608)},
+ {"zig", vec3(0.925490, 0.568627, 0.360784)},
+ {"zil", vec3(0.862745, 0.458824, 0.898039)},
+ {"zimpl", vec3(0.839216, 0.466667, 0.066667)},
+ {"zmpl", vec3(0.839216, 0.466667, 0.066667)},
+ {"zpl", vec3(0.839216, 0.466667, 0.066667)},
+ {"zs", vec3(0.000000, 0.737255, 0.819608)},
+ {"zsh", vec3(0.537255, 0.878431, 0.317647)},
+ {"zsh-theme", vec3(0.537255, 0.878431, 0.317647)},
+ };
+}
diff --git a/src/file_colours.h b/src/file_colours.h
new file mode 100644
index 00000000..b8fdc5c8
--- /dev/null
+++ b/src/file_colours.h
@@ -0,0 +1,35 @@
+/*
+ Copyright (C) 2009 Andrew Caudwell (acaudwell@gmail.com)
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version
+ 3 of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+*/
+
+#ifndef FILE_COLOURS_H_
+#define FILE_COLOURS_H_
+
+#include "core/vectors.h"
+#include