diff --git a/package.json b/package.json index 2edd708f4bb2a..ed7a9ae2fa489 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ "test": "jest --coverage", "test:watch": "jest --watch", "theme-readme-gen": "node scripts/generate-theme-doc", - "preview-theme": "node scripts/preview-theme" + "preview-theme": "node scripts/preview-theme", + "generate-langs-json": "node scripts/generate-langs-json" }, "author": "Anurag Hazra", "license": "MIT", @@ -22,6 +23,7 @@ "hjson": "^3.2.2", "husky": "^4.2.5", "jest": "^26.1.0", + "js-yaml": "^4.1.0", "lodash.snakecase": "^4.1.1", "parse-diff": "^0.7.0", "prettier": "^2.1.2" diff --git a/scripts/generate-langs-json.js b/scripts/generate-langs-json.js new file mode 100644 index 0000000000000..0705080d9c47d --- /dev/null +++ b/scripts/generate-langs-json.js @@ -0,0 +1,26 @@ +const fs = require('fs'); +const jsYaml = require('js-yaml'); +const axios = require('axios'); + +const LANGS_FILEPATH = "./src/common/languageColors.json" + +//Retrieve languages from github linguist repository yaml file +//@ts-ignore +axios.get("https://raw.githubusercontent.com/github/linguist/master/lib/linguist/languages.yml") +.then((response) => { + + //and convert them to a JS Object + const languages = jsYaml.load(response.data); + + const languageColors = {}; + + //Filter only language colors from the whole file + Object.keys(languages).forEach((lang) => { + languageColors[lang] = languages[lang].color; + }); + + //Debug Print + //console.dir(languageColors); + fs.writeFileSync(LANGS_FILEPATH, JSON.stringify(languageColors, null, ' ')); + +}); diff --git a/src/common/languageColors.json b/src/common/languageColors.json index ed7e17f8786e9..12c85bd52f1ad 100644 --- a/src/common/languageColors.json +++ b/src/common/languageColors.json @@ -1,430 +1,502 @@ { "1C Enterprise": "#814CCC", - "4D": null, + "2-Dimensional Array": "#38761D", + "4D": "#004289", "ABAP": "#E8274B", - "ActionScript": "#882B0F", - "Ada": "#02f88c", - "Agda": "#315665", + "ABAP CDS": "#555e25", "AGS Script": "#B9D9FF", + "AIDL": "#34EB6B", "AL": "#3AA2B5", - "Alloy": "#64C800", - "Alpine Abuild": null, "AMPL": "#E6EFBB", - "AngelScript": "#C7D7DC", "ANTLR": "#9DC3FF", - "Apex": "#1797c0", "API Blueprint": "#2ACCA8", "APL": "#5A8164", + "ASP.NET": "#9400ff", + "ATS": "#1ac620", + "ActionScript": "#882B0F", + "Ada": "#02f88c", + "Adobe Font Metrics": "#fa0f00", + "Agda": "#315665", + "Alloy": "#64C800", + "Alpine Abuild": "#0D597F", + "Altium Designer": "#A89663", + "AngelScript": "#C7D7DC", + "Ant Build System": "#A9157E", + "ApacheConf": "#d12127", + "Apex": "#1797c0", "Apollo Guidance Computer": "#0B3D91", "AppleScript": "#101F1F", "Arc": "#aa2afe", - "ASL": null, - "ASP.NET": "#9400ff", + "AsciiDoc": "#73a0c5", "AspectJ": "#a957b0", "Assembly": "#6E4C13", + "Astro": "#ff5a03", "Asymptote": "#ff0000", - "ATS": "#1ac620", - "Augeas": null, + "Augeas": "#9CC134", "AutoHotkey": "#6594b9", "AutoIt": "#1C3552", - "Awk": null, + "Avro IDL": "#0040FF", + "Awk": "#c30e9b", + "BASIC": "#ff0000", "Ballerina": "#FF5000", "Batchfile": "#C1F12E", - "Befunge": null, + "Beef": "#a52f4e", + "BibTeX": "#778899", + "Bicep": "#519aba", "Bison": "#6A463F", - "BitBake": null, + "BitBake": "#00bce4", "Blade": "#f7523f", - "BlitzBasic": null, + "BlitzBasic": "#00FFAE", "BlitzMax": "#cd6400", - "Bluespec": null, + "Bluespec": "#12223c", "Boo": "#d4bec1", + "Boogie": "#c80fa0", "Brainfuck": "#2F2530", - "Brightscript": null, + "Brightscript": "#662D91", + "Browserslist": "#ffd539", "C": "#555555", "C#": "#178600", "C++": "#f34b7d", - "C2hs Haskell": null, - "Cap'n Proto": null, - "CartoCSS": null, + "CLIPS": "#00A300", + "CMake": "#DA3434", + "COLLADA": "#F1A42B", + "CSON": "#244776", + "CSS": "#563d7c", + "CSV": "#237346", + "CUE": "#5886E1", + "CWeb": "#00007a", + "Cabal Config": "#483465", + "Cairo": "#ff4a48", + "Cap'n Proto": "#c42727", "Ceylon": "#dfa535", "Chapel": "#8dc63f", - "Charity": null, - "ChucK": null, + "ChucK": "#3f8000", "Cirru": "#ccccff", "Clarion": "#db901e", + "Clarity": "#5546ff", "Classic ASP": "#6a40fd", "Clean": "#3F85AF", "Click": "#E4E6F3", - "CLIPS": null, "Clojure": "#db5855", - "CMake": null, - "COBOL": null, - "CodeQL": null, + "Closure Templates": "#0d948f", + "Cloud Firestore Security Rules": "#FFA000", + "CodeQL": "#140f46", "CoffeeScript": "#244776", "ColdFusion": "#ed2cd6", "ColdFusion CFC": "#ed2cd6", "Common Lisp": "#3fb68b", "Common Workflow Language": "#B5314C", "Component Pascal": "#B0CE4E", - "Cool": null, - "Coq": null, + "Coq": "#d0b68c", "Crystal": "#000100", - "CSON": "#244776", - "Csound": null, - "Csound Document": null, - "Csound Score": null, - "CSS": "#563d7c", + "Csound": "#1a1a1a", + "Csound Document": "#1a1a1a", + "Csound Score": "#1a1a1a", "Cuda": "#3A4E3A", - "CWeb": null, - "Cycript": null, - "Cython": null, + "Curry": "#531242", + "Cython": "#fedf5b", "D": "#ba595e", + "DM": "#447265", "Dafny": "#FFEC25", + "Darcs Patch": "#8eff23", "Dart": "#00B4AB", "DataWeave": "#003a52", + "Debian Package Control File": "#D70751", + "DenizenScript": "#FBEE96", "Dhall": "#dfafff", - "DIGITAL Command Language": null, - "DM": "#447265", + "DirectX 3D File": "#aace60", "Dockerfile": "#384d54", "Dogescript": "#cca760", - "DTrace": null, "Dylan": "#6c616e", "E": "#ccce35", - "eC": "#913960", "ECL": "#8a1267", - "ECLiPSe": null, - "Eiffel": "#4d6977", + "ECLiPSe": "#001d9d", "EJS": "#a91e50", + "EQ": "#a78649", + "Earthly": "#2af0ff", + "Easybuild": "#069406", + "Ecere Projects": "#913960", + "EditorConfig": "#fff1f2", + "Eiffel": "#4d6977", "Elixir": "#6e4a7e", "Elm": "#60B5CC", "Emacs Lisp": "#c065db", "EmberScript": "#FFF4F3", - "EQ": "#a78649", "Erlang": "#B83998", + "Euphoria": "#FF790B", "F#": "#b845fc", "F*": "#572e30", + "FIGlet Font": "#FFDDBB", + "FLUX": "#88ccff", "Factor": "#636746", "Fancy": "#7b9db4", "Fantom": "#14253c", "Faust": "#c37240", - "Filebench WML": null, - "Filterscript": null, - "fish": null, - "FLUX": "#88ccff", + "Fennel": "#fff3d7", + "Filebench WML": "#F6B900", + "Fluent": "#ffcc33", "Forth": "#341708", "Fortran": "#4d41b1", - "Fortran Free Form": null, + "Fortran Free Form": "#4d41b1", + "FreeBasic": "#867db1", "FreeMarker": "#0050b2", "Frege": "#00cafe", "Futhark": "#5f021f", "G-code": "#D08CF2", - "Game Maker Language": "#71b417", "GAML": "#FFC766", - "GAMS": null, - "GAP": null, - "GCC Machine Description": null, - "GDB": null, + "GAMS": "#f49a22", + "GAP": "#0000cc", + "GCC Machine Description": "#FFCFAB", "GDScript": "#355570", + "GEDCOM": "#003058", + "GLSL": "#5686a5", + "GSC": "#FF6800", + "Game Maker Language": "#71b417", + "Gemfile.lock": "#701516", "Genie": "#fb855d", - "Genshi": null, - "Gentoo Ebuild": null, - "Gentoo Eclass": null, + "Genshi": "#951531", + "Gentoo Ebuild": "#9400ff", + "Gentoo Eclass": "#9400ff", + "Gerber Image": "#d20b00", "Gherkin": "#5B2063", - "GLSL": null, + "Git Attributes": "#F44D27", + "Git Config": "#F44D27", + "Gleam": "#ffaff3", "Glyph": "#c1ac7f", "Gnuplot": "#f0a9f0", "Go": "#00ADD8", + "Go Checksums": "#00ADD8", + "Go Module": "#00ADD8", "Golo": "#88562A", "Gosu": "#82937f", - "Grace": null, + "Grace": "#615f8b", + "Gradle": "#02303a", "Grammatical Framework": "#ff0000", "GraphQL": "#e10098", - "Groovy": "#e69f56", - "Groovy Server Pages": null, + "Graphviz (DOT)": "#2596be", + "Groovy": "#4298b8", + "Groovy Server Pages": "#4298b8", + "HAProxy": "#106da9", + "HLSL": "#aace60", + "HTML": "#e34c26", + "HTML+ECR": "#2e1052", + "HTML+EEX": "#6e4a7e", + "HTML+ERB": "#701516", + "HTML+PHP": "#4f5d95", + "HTML+Razor": "#512be4", + "HTTP": "#005C9C", + "HXML": "#f68712", "Hack": "#878787", "Haml": "#ece2a9", "Handlebars": "#f7931e", "Harbour": "#0e60e3", "Haskell": "#5e5086", "Haxe": "#df7900", - "HCL": null, "HiveQL": "#dce200", - "HLSL": null, "HolyC": "#ffefaf", - "HTML": "#e34c26", "Hy": "#7790B2", - "HyPhy": null, "IDL": "#a3522f", - "Idris": "#b30000", "IGOR Pro": "#0000cc", - "Inform 7": null, - "Inno Setup": null, + "INI": "#d1dbe0", + "Idris": "#b30000", + "Ignore List": "#000000", + "ImageJ Macro": "#99AAFF", + "Inno Setup": "#264b99", "Io": "#a9188d", "Ioke": "#078193", "Isabelle": "#FEFE00", - "Isabelle ROOT": null, + "Isabelle ROOT": "#FEFE00", "J": "#9EEDFF", - "Jasmin": null, + "JAR Manifest": "#b07219", + "JFlex": "#DBCA00", + "JSON": "#292929", + "JSON with Comments": "#292929", + "JSON5": "#267CB9", + "JSONLD": "#0c479c", + "JSONiq": "#40d47e", + "Janet": "#0886a5", + "Jasmin": "#d03600", "Java": "#b07219", - "Java Server Pages": null, + "Java Properties": "#2A6277", + "Java Server Pages": "#2A6277", "JavaScript": "#f1e05a", - "JavaScript+ERB": null, - "JFlex": "#DBCA00", - "Jison": null, - "Jison Lex": null, + "JavaScript+ERB": "#f1e05a", + "Jest Snapshot": "#15c213", + "Jinja": "#a52a22", + "Jison": "#56b3cb", + "Jison Lex": "#56b3cb", "Jolie": "#843179", - "JSONiq": "#40d47e", "Jsonnet": "#0064bd", - "JSX": null, "Julia": "#a270ba", "Jupyter Notebook": "#DA5B0B", + "KRL": "#28430A", "Kaitai Struct": "#773b37", + "KakouneScript": "#6f8042", + "KiCad Layout": "#2f4aab", + "KiCad Legacy Layout": "#2f4aab", + "KiCad Schematic": "#2f4aab", "Kotlin": "#A97BFF", - "KRL": "#28430A", - "LabVIEW": null, + "LFE": "#4C3023", + "LLVM": "#185619", + "LOLCODE": "#cc9900", + "LSL": "#3d9970", + "LabVIEW": "#fede06", + "Lark": "#2980B9", "Lasso": "#999999", "Latte": "#f2a542", - "Lean": null, "Less": "#1d365d", "Lex": "#DBCA00", - "LFE": "#4C3023", - "LilyPond": null, - "Limbo": null, - "Literate Agda": null, - "Literate CoffeeScript": null, - "Literate Haskell": null, + "LilyPond": "#9ccc7c", + "Liquid": "#67b8de", + "Literate Agda": "#315665", + "Literate CoffeeScript": "#244776", + "Literate Haskell": "#5e5086", "LiveScript": "#499886", - "LLVM": "#185619", - "Logos": null, - "Logtalk": null, - "LOLCODE": "#cc9900", + "Logtalk": "#295b9a", "LookML": "#652B81", - "LoomScript": null, - "LSL": "#3d9970", "Lua": "#000080", - "M": null, - "M4": null, - "M4Sugar": null, + "MATLAB": "#e16737", + "MAXScript": "#00a6a6", + "MLIR": "#5EC8DB", + "MQL4": "#62A8D6", + "MQL5": "#4A76B8", + "MTML": "#b7e1f4", "Macaulay2": "#d8ffff", "Makefile": "#427819", - "Mako": null, + "Mako": "#7e858d", "Markdown": "#083fa1", "Marko": "#42bff2", "Mask": "#f97732", - "Mathematica": null, - "MATLAB": "#e16737", + "Mathematica": "#dd1100", "Max": "#c4a79c", - "MAXScript": "#00a6a6", - "mcfunction": "#E22837", "Mercury": "#ff2b2b", "Meson": "#007800", "Metal": "#8f14e9", - "MiniD": null, + "MiniYAML": "#ff1111", + "Mint": "#02b046", "Mirah": "#c7a938", - "mIRC Script": "#3d57c3", - "MLIR": "#5EC8DB", - "Modelica": null, - "Modula-2": null, + "Modelica": "#de1d31", + "Modula-2": "#10253f", "Modula-3": "#223388", - "Module Management System": null, - "Monkey": null, - "Moocode": null, - "MoonScript": null, - "Motorola 68K Assembly": null, - "MQL4": "#62A8D6", - "MQL5": "#4A76B8", - "MTML": "#b7e1f4", - "MUF": null, - "mupad": null, - "Myghty": null, - "NASL": null, + "MoonScript": "#ff4585", + "Motoko": "#fbb03b", + "Motorola 68K Assembly": "#005daa", + "Mustache": "#724b3b", "NCL": "#28431f", + "NPM Config": "#cb3837", + "NWScript": "#111522", "Nearley": "#990000", "Nemerle": "#3d3c6e", - "nesC": "#94B0C7", "NetLinx": "#0aa0ff", "NetLinx+ERB": "#747faa", "NetLogo": "#ff6375", "NewLisp": "#87AED7", "Nextflow": "#3ac486", + "Nginx": "#009639", "Nim": "#ffc200", "Nit": "#009917", "Nix": "#7e7eff", - "NSIS": null, "Nu": "#c9df40", "NumPy": "#9C8AF9", + "Nunjucks": "#3d8137", + "OCaml": "#3be133", + "ObjectScript": "#424893", "Objective-C": "#438eff", "Objective-C++": "#6866fb", "Objective-J": "#ff0c5a", - "ObjectScript": "#424893", - "OCaml": "#3be133", "Odin": "#60AFFE", "Omgrofl": "#cabbff", - "ooc": "#b0b77e", - "Opa": null, "Opal": "#f7ede0", - "Open Policy Agent": null, - "OpenCL": null, - "OpenEdge ABL": null, + "Open Policy Agent": "#7d9199", + "OpenCL": "#ed2e2d", + "OpenEdge ABL": "#5ce600", "OpenQASM": "#AA70FF", - "OpenRC runscript": null, - "OpenSCAD": null, - "Ox": null, + "OpenSCAD": "#e5cd45", + "Org": "#77aa99", "Oxygene": "#cdd0e3", "Oz": "#fab738", "P4": "#7055b5", + "PEG.js": "#234d6b", + "PHP": "#4F5D95", + "PLSQL": "#dad8d8", + "PLpgSQL": "#336790", + "POV-Ray SDL": "#6bac65", "Pan": "#cc0000", "Papyrus": "#6600cc", "Parrot": "#f3ca0a", - "Parrot Assembly": null, - "Parrot Internal Representation": null, "Pascal": "#E3F171", "Pawn": "#dbb284", "Pep8": "#C76F5B", "Perl": "#0298c3", - "PHP": "#4F5D95", - "PicoLisp": null, + "PicoLisp": "#6067af", "PigLatin": "#fcd7de", "Pike": "#005390", - "PLpgSQL": null, - "PLSQL": "#dad8d8", "PogoScript": "#d80074", - "Pony": null, + "PostCSS": "#dc3a0c", "PostScript": "#da291c", - "POV-Ray SDL": null, "PowerBuilder": "#8f0f8d", "PowerShell": "#012456", "Prisma": "#0c344b", "Processing": "#0096D8", + "Procfile": "#3B2F63", "Prolog": "#74283c", + "Promela": "#de0000", "Propeller Spin": "#7fa2a7", "Pug": "#a86454", "Puppet": "#302B6D", "PureBasic": "#5a6986", "PureScript": "#1D222D", "Python": "#3572A5", - "Python console": null, - "q": "#0040cd", + "Python console": "#3572A5", + "Python traceback": "#3572A5", "Q#": "#fed659", - "QMake": null, "QML": "#44a51c", "Qt Script": "#00b841", "Quake": "#882233", "R": "#198CE7", + "RAML": "#77d9fb", + "RDoc": "#701516", + "REXX": "#d90e09", + "RMarkdown": "#198ce7", + "RPGLE": "#2BDE21", + "RUNOFF": "#665a4e", "Racket": "#3c5caa", "Ragel": "#9d5200", "Raku": "#0000fb", - "RAML": "#77d9fb", "Rascal": "#fffaa0", - "REALbasic": null, + "ReScript": "#ed5051", "Reason": "#ff5847", "Rebol": "#358a5b", + "Record Jar": "#0673ba", "Red": "#f50000", - "Redcode": null, + "Regular Expression": "#009a00", "Ren'Py": "#ff7f7f", - "RenderScript": null, - "REXX": null, "Ring": "#2D54CB", "Riot": "#A71E49", - "RobotFramework": null, + "RobotFramework": "#00c0b5", "Roff": "#ecdebe", + "Roff Manpage": "#ecdebe", "Rouge": "#cc0088", - "RPC": null, "Ruby": "#701516", - "RUNOFF": "#665a4e", "Rust": "#dea584", - "Sage": null, - "SaltStack": "#646464", "SAS": "#B34936", + "SCSS": "#c6538c", + "SPARQL": "#0C4597", + "SQF": "#3F3F3F", + "SQL": "#e38c00", + "SQLPL": "#e38c00", + "SRecode Template": "#348a34", + "SVG": "#ff9900", + "SaltStack": "#646464", "Sass": "#a53b70", "Scala": "#c22d40", + "Scaml": "#bd181a", "Scheme": "#1e4aec", - "Scilab": null, - "SCSS": "#c6538c", - "sed": "#64b970", + "Scilab": "#ca0f21", "Self": "#0579aa", - "ShaderLab": null, + "ShaderLab": "#222c37", "Shell": "#89e051", - "ShellSession": null, + "ShellCheck Config": "#cecfcb", "Shen": "#120F14", - "Sieve": null, + "Singularity": "#64E6AD", "Slash": "#007eff", "Slice": "#003fa2", "Slim": "#2b2b2b", - "Smali": null, - "Smalltalk": "#596706", - "Smarty": null, "SmPL": "#c94949", - "SMT": null, + "Smalltalk": "#596706", + "Smarty": "#f0c040", "Solidity": "#AA6746", "SourcePawn": "#f69e1d", - "SQF": "#3F3F3F", - "SQLPL": null, "Squirrel": "#800000", - "SRecode Template": "#348a34", "Stan": "#b2011d", "Standard ML": "#dc566d", "Starlark": "#76d275", - "Stata": null, + "Stata": "#1a5f91", + "StringTemplate": "#3fb34f", "Stylus": "#ff6347", + "SubRip Text": "#9e0101", + "SugarSS": "#2fcc9f", "SuperCollider": "#46390b", "Svelte": "#ff3e00", - "SVG": "#ff9900", - "Swift": "#ffac45", - "SWIG": null, + "Swift": "#F05138", "SystemVerilog": "#DAE1C2", + "TI Program": "#A0AA87", + "TLA": "#4b0079", + "TOML": "#9c4221", + "TSQL": "#e38c00", + "TSV": "#237346", + "TSX": "#2b7489", + "TXL": "#0178b8", "Tcl": "#e4cc98", - "Tcsh": null, - "Terra": "#00004c", "TeX": "#3D6117", - "Thrift": null, - "TI Program": "#A0AA87", - "TLA": null, - "TSQL": null, - "TSX": null, + "Terra": "#00004c", + "TextMate Properties": "#df66e4", + "Textile": "#ffe7ac", + "Thrift": "#D12127", "Turing": "#cf142b", "Twig": "#c1d026", - "TXL": null, "TypeScript": "#2b7489", "Unified Parallel C": "#4e3617", - "Unix Assembly": null, + "Unity3D Asset": "#222c37", "Uno": "#9933cc", "UnrealScript": "#a54c4d", - "UrWeb": null, + "UrWeb": "#ccccee", "V": "#4f87c4", - "Vala": "#fbe5cd", "VBA": "#867db1", "VBScript": "#15dcdc", "VCL": "#148AA8", - "Verilog": "#b2b7f8", "VHDL": "#adb2cb", - "Vim script": "#199f4b", + "Vala": "#fbe5cd", + "Valve Data Format": "#f26025", + "Verilog": "#b2b7f8", + "Vim Help File": "#199f4b", + "Vim Script": "#199f4b", + "Vim Snippet": "#199f4b", "Visual Basic .NET": "#945db7", "Volt": "#1F1F1F", - "Vue": "#2c3e50", - "wdl": "#42f1f4", + "Vue": "#41b883", + "Vyper": "#2980b9", + "Web Ontology Language": "#5b70bd", "WebAssembly": "#04133b", - "WebIDL": null, - "wisp": "#7582D1", + "Wikitext": "#fc5757", + "Windows Registry Entries": "#52d5ff", + "Witcher Script": "#ff0000", "Wollok": "#a23738", + "World of Warcraft Addon Data": "#f7e43f", "X10": "#4B6BEF", - "xBase": "#403a40", "XC": "#99DA07", - "Xojo": null, - "XProc": null, + "XML": "#0060ac", + "XML Property List": "#0060ac", "XQuery": "#5232e7", - "XS": null, "XSLT": "#EB8CEB", - "Xtend": null, - "Yacc": "#4B6C4B", + "Xojo": "#81bd41", + "Xonsh": "#285EEF", + "Xtend": "#24255d", "YAML": "#cb171e", "YARA": "#220000", "YASnippet": "#32AB90", + "Yacc": "#4B6C4B", "ZAP": "#0d665e", - "Zeek": null, + "ZIL": "#dc75e5", "ZenScript": "#00BCD1", "Zephir": "#118f9e", "Zig": "#ec915c", - "ZIL": "#dc75e5", - "Zimpl": null + "Zimpl": "#d67711", + "eC": "#913960", + "fish": "#4aae47", + "hoon": "#00b171", + "jq": "#c7254e", + "kvlang": "#1da6e0", + "mIRC Script": "#3d57c3", + "mcfunction": "#E22837", + "mupad": "#244963", + "nanorc": "#2d004d", + "nesC": "#94B0C7", + "ooc": "#b0b77e", + "q": "#0040cd", + "reStructuredText": "#141414", + "sed": "#64b970", + "wdl": "#42f1f4", + "wisp": "#7582D1", + "xBase": "#403a40" } \ No newline at end of file