/**
 * Code language list.
 * Data source: linguist-languages
 *
 * ⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
 *   THIS FILE IS AUTOMATICALLY GENERATED BY A SCRIPT. DO NOT EDIT IT MANUALLY!
 *   Run `pnpm update:languages` to update this file.
 * ⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
 *
 */

type LanguageData = {
  type: string
  aliases?: string[]
  extensions?: string[]
}

export const codeLanguages: Record<string, LanguageData> = {
  '1C Enterprise': {
    type: 'programming',
    extensions: ['.bsl', '.os']
  },
  '2-Dimensional Array': {
    type: 'data',
    extensions: ['.2da']
  },
  '4D': {
    type: 'programming',
    extensions: ['.4dm']
  },
  ABAP: {
    type: 'programming',
    extensions: ['.abap']
  },
  'ABAP CDS': {
    type: 'programming',
    extensions: ['.asddls']
  },
  ABNF: {
    type: 'data',
    extensions: ['.abnf']
  },
  ActionScript: {
    type: 'programming',
    extensions: ['.as'],
    aliases: ['actionscript 3', 'actionscript3', 'as3']
  },
  Ada: {
    type: 'programming',
    extensions: ['.adb', '.ada', '.ads'],
    aliases: ['ada95', 'ada2005']
  },
  'Adblock Filter List': {
    type: 'data',
    extensions: ['.txt'],
    aliases: ['ad block filters', 'ad block', 'adb', 'adblock']
  },
  'Adobe Font Metrics': {
    type: 'data',
    extensions: ['.afm'],
    aliases: ['acfm', 'adobe composite font metrics', 'adobe multiple font metrics', 'amfm']
  },
  Agda: {
    type: 'programming',
    extensions: ['.agda']
  },
  'AGS Script': {
    type: 'programming',
    extensions: ['.asc', '.ash'],
    aliases: ['ags']
  },
  AIDL: {
    type: 'programming',
    extensions: ['.aidl']
  },
  Aiken: {
    type: 'programming',
    extensions: ['.ak']
  },
  AL: {
    type: 'programming',
    extensions: ['.al']
  },
  Alloy: {
    type: 'programming',
    extensions: ['.als']
  },
  'Alpine Abuild': {
    type: 'programming',
    aliases: ['abuild', 'apkbuild']
  },
  'Altium Designer': {
    type: 'data',
    extensions: ['.OutJob', '.PcbDoc', '.PrjPCB', '.SchDoc'],
    aliases: ['altium']
  },
  AMPL: {
    type: 'programming',
    extensions: ['.ampl', '.mod']
  },
  AngelScript: {
    type: 'programming',
    extensions: ['.as', '.angelscript']
  },
  'Answer Set Programming': {
    type: 'programming',
    extensions: ['.lp']
  },
  Antlers: {
    type: 'markup',
    extensions: ['.antlers.html', '.antlers.php', '.antlers.xml']
  },
  ANTLR: {
    type: 'programming',
    extensions: ['.g4']
  },
  ApacheConf: {
    type: 'data',
    extensions: ['.apacheconf', '.vhost'],
    aliases: ['aconf', 'apache']
  },
  Apex: {
    type: 'programming',
    extensions: ['.cls', '.apex', '.trigger']
  },
  'API Blueprint': {
    type: 'markup',
    extensions: ['.apib']
  },
  APL: {
    type: 'programming',
    extensions: ['.apl', '.dyalog']
  },
  'Apollo Guidance Computer': {
    type: 'programming',
    extensions: ['.agc']
  },
  AppleScript: {
    type: 'programming',
    extensions: ['.applescript', '.scpt'],
    aliases: ['osascript']
  },
  Arc: {
    type: 'programming',
    extensions: ['.arc']
  },
  AsciiDoc: {
    type: 'prose',
    extensions: ['.asciidoc', '.adoc', '.asc']
  },
  ASL: {
    type: 'programming',
    extensions: ['.asl', '.dsl']
  },
  'ASN.1': {
    type: 'data',
    extensions: ['.asn', '.asn1']
  },
  'ASP.NET': {
    type: 'programming',
    extensions: ['.asax', '.ascx', '.ashx', '.asmx', '.aspx', '.axd'],
    aliases: ['aspx', 'aspx-vb']
  },
  AspectJ: {
    type: 'programming',
    extensions: ['.aj']
  },
  Assembly: {
    type: 'programming',
    extensions: ['.asm', '.a51', '.i', '.inc', '.nas', '.nasm', '.s'],
    aliases: ['asm', 'nasm']
  },
  Astro: {
    type: 'markup',
    extensions: ['.astro']
  },
  Asymptote: {
    type: 'programming',
    extensions: ['.asy']
  },
  ATS: {
    type: 'programming',
    extensions: ['.dats', '.hats', '.sats'],
    aliases: ['ats2']
  },
  Augeas: {
    type: 'programming',
    extensions: ['.aug']
  },
  AutoHotkey: {
    type: 'programming',
    extensions: ['.ahk', '.ahkl'],
    aliases: ['ahk']
  },
  AutoIt: {
    type: 'programming',
    extensions: ['.au3'],
    aliases: ['au3', 'AutoIt3', 'AutoItScript']
  },
  'Avro IDL': {
    type: 'data',
    extensions: ['.avdl']
  },
  Awk: {
    type: 'programming',
    extensions: ['.awk', '.auk', '.gawk', '.mawk', '.nawk']
  },
  B4X: {
    type: 'programming',
    extensions: ['.bas'],
    aliases: ['basic for android']
  },
  Ballerina: {
    type: 'programming',
    extensions: ['.bal']
  },
  BASIC: {
    type: 'programming',
    extensions: ['.bas']
  },
  Batchfile: {
    type: 'programming',
    extensions: ['.bat', '.cmd'],
    aliases: ['bat', 'batch', 'dosbatch', 'winbatch']
  },
  Beef: {
    type: 'programming',
    extensions: ['.bf']
  },
  Befunge: {
    type: 'programming',
    extensions: ['.befunge', '.bf']
  },
  Berry: {
    type: 'programming',
    extensions: ['.be'],
    aliases: ['be']
  },
  BibTeX: {
    type: 'markup',
    extensions: ['.bib', '.bibtex']
  },
  'BibTeX Style': {
    type: 'programming',
    extensions: ['.bst']
  },
  Bicep: {
    type: 'programming',
    extensions: ['.bicep', '.bicepparam']
  },
  Bikeshed: {
    type: 'markup',
    extensions: ['.bs']
  },
  Bison: {
    type: 'programming',
    extensions: ['.bison']
  },
  BitBake: {
    type: 'programming',
    extensions: ['.bb', '.bbappend', '.bbclass', '.inc']
  },
  Blade: {
    type: 'markup',
    extensions: ['.blade', '.blade.php']
  },
  BlitzBasic: {
    type: 'programming',
    extensions: ['.bb', '.decls'],
    aliases: ['b3d', 'blitz3d', 'blitzplus', 'bplus']
  },
  BlitzMax: {
    type: 'programming',
    extensions: ['.bmx'],
    aliases: ['bmax']
  },
  Bluespec: {
    type: 'programming',
    extensions: ['.bsv'],
    aliases: ['bluespec bsv', 'bsv']
  },
  'Bluespec BH': {
    type: 'programming',
    extensions: ['.bs'],
    aliases: ['bh', 'bluespec classic']
  },
  Boo: {
    type: 'programming',
    extensions: ['.boo']
  },
  Boogie: {
    type: 'programming',
    extensions: ['.bpl']
  },
  BQN: {
    type: 'programming',
    extensions: ['.bqn']
  },
  Brainfuck: {
    type: 'programming',
    extensions: ['.b', '.bf']
  },
  BrighterScript: {
    type: 'programming',
    extensions: ['.bs']
  },
  Brightscript: {
    type: 'programming',
    extensions: ['.brs']
  },
  BuildStream: {
    type: 'data',
    extensions: ['.bst']
  },
  C: {
    type: 'programming',
    extensions: ['.c', '.cats', '.h', '.h.in', '.idc']
  },
  'C-ObjDump': {
    type: 'data',
    extensions: ['.c-objdump']
  },
  'C#': {
    type: 'programming',
    extensions: ['.cs', '.cake', '.cs.pp', '.csx', '.linq'],
    aliases: ['csharp', 'cake', 'cakescript']
  },
  'C++': {
    type: 'programming',
    extensions: [
      '.cpp',
      '.c++',
      '.cc',
      '.cp',
      '.cppm',
      '.cxx',
      '.h',
      '.h++',
      '.hh',
      '.hpp',
      '.hxx',
      '.inc',
      '.inl',
      '.ino',
      '.ipp',
      '.ixx',
      '.re',
      '.tcc',
      '.tpp',
      '.txx'
    ],
    aliases: ['cpp']
  },
  'C2hs Haskell': {
    type: 'programming',
    extensions: ['.chs'],
    aliases: ['c2hs']
  },
  'Cabal Config': {
    type: 'data',
    extensions: ['.cabal'],
    aliases: ['Cabal']
  },
  Caddyfile: {
    type: 'data',
    extensions: ['.caddyfile'],
    aliases: ['Caddy']
  },
  Cadence: {
    type: 'programming',
    extensions: ['.cdc']
  },
  Cairo: {
    type: 'programming',
    extensions: ['.cairo']
  },
  'Cairo Zero': {
    type: 'programming',
    extensions: ['.cairo']
  },
  CameLIGO: {
    type: 'programming',
    extensions: ['.mligo']
  },
  'CAP CDS': {
    type: 'programming',
    extensions: ['.cds'],
    aliases: ['cds']
  },
  "Cap'n Proto": {
    type: 'programming',
    extensions: ['.capnp']
  },
  Carbon: {
    type: 'programming',
    extensions: ['.carbon']
  },
  CartoCSS: {
    type: 'programming',
    extensions: ['.mss'],
    aliases: ['Carto']
  },
  Ceylon: {
    type: 'programming',
    extensions: ['.ceylon']
  },
  Chapel: {
    type: 'programming',
    extensions: ['.chpl'],
    aliases: ['chpl']
  },
  Charity: {
    type: 'programming',
    extensions: ['.ch']
  },
  Checksums: {
    type: 'data',
    extensions: [
      '.crc32',
      '.md2',
      '.md4',
      '.md5',
      '.sha1',
      '.sha2',
      '.sha224',
      '.sha256',
      '.sha256sum',
      '.sha3',
      '.sha384',
      '.sha512'
    ],
    aliases: ['checksum', 'hash', 'hashes', 'sum', 'sums']
  },
  ChucK: {
    type: 'programming',
    extensions: ['.ck']
  },
  CIL: {
    type: 'data',
    extensions: ['.cil']
  },
  Circom: {
    type: 'programming',
    extensions: ['.circom']
  },
  Cirru: {
    type: 'programming',
    extensions: ['.cirru']
  },
  Clarion: {
    type: 'programming',
    extensions: ['.clw']
  },
  Clarity: {
    type: 'programming',
    extensions: ['.clar']
  },
  'Classic ASP': {
    type: 'programming',
    extensions: ['.asp'],
    aliases: ['asp']
  },
  Clean: {
    type: 'programming',
    extensions: ['.icl', '.dcl']
  },
  Click: {
    type: 'programming',
    extensions: ['.click']
  },
  CLIPS: {
    type: 'programming',
    extensions: ['.clp']
  },
  Clojure: {
    type: 'programming',
    extensions: ['.clj', '.bb', '.boot', '.cl2', '.cljc', '.cljs', '.cljs.hl', '.cljscm', '.cljx', '.hic']
  },
  'Closure Templates': {
    type: 'markup',
    extensions: ['.soy'],
    aliases: ['soy']
  },
  Clue: {
    type: 'programming',
    extensions: ['.clue']
  },
  CMake: {
    type: 'programming',
    extensions: ['.cmake', '.cmake.in']
  },
  COBOL: {
    type: 'programming',
    extensions: ['.cob', '.cbl', '.ccp', '.cobol', '.cpy']
  },
  CodeQL: {
    type: 'programming',
    extensions: ['.ql', '.qll'],
    aliases: ['ql']
  },
  CoffeeScript: {
    type: 'programming',
    extensions: ['.coffee', '._coffee', '.cake', '.cjsx', '.iced'],
    aliases: ['coffee', 'coffee-script']
  },
  ColdFusion: {
    type: 'programming',
    extensions: ['.cfm', '.cfml'],
    aliases: ['cfm', 'cfml', 'coldfusion html']
  },
  'ColdFusion CFC': {
    type: 'programming',
    extensions: ['.cfc'],
    aliases: ['cfc']
  },
  COLLADA: {
    type: 'data',
    extensions: ['.dae']
  },
  'Common Lisp': {
    type: 'programming',
    extensions: ['.lisp', '.asd', '.cl', '.l', '.lsp', '.ny', '.podsl', '.sexp'],
    aliases: ['lisp']
  },
  'Common Workflow Language': {
    type: 'programming',
    extensions: ['.cwl'],
    aliases: ['cwl']
  },
  'Component Pascal': {
    type: 'programming',
    extensions: ['.cp', '.cps']
  },
  'CoNLL-U': {
    type: 'data',
    extensions: ['.conllu', '.conll'],
    aliases: ['CoNLL', 'CoNLL-X']
  },
  Cool: {
    type: 'programming',
    extensions: ['.cl']
  },
  'Cpp-ObjDump': {
    type: 'data',
    extensions: ['.cppobjdump', '.c++-objdump', '.c++objdump', '.cpp-objdump', '.cxx-objdump'],
    aliases: ['c++-objdump']
  },
  Creole: {
    type: 'prose',
    extensions: ['.creole']
  },
  crontab: {
    type: 'data',
    aliases: ['cron', 'cron table']
  },
  Crystal: {
    type: 'programming',
    extensions: ['.cr']
  },
  CSON: {
    type: 'data',
    extensions: ['.cson']
  },
  Csound: {
    type: 'programming',
    extensions: ['.orc', '.udo'],
    aliases: ['csound-orc']
  },
  'Csound Document': {
    type: 'programming',
    extensions: ['.csd'],
    aliases: ['csound-csd']
  },
  'Csound Score': {
    type: 'programming',
    extensions: ['.sco'],
    aliases: ['csound-sco']
  },
  CSS: {
    type: 'markup',
    extensions: ['.css']
  },
  CSV: {
    type: 'data',
    extensions: ['.csv']
  },
  Cuda: {
    type: 'programming',
    extensions: ['.cu', '.cuh']
  },
  CUE: {
    type: 'programming',
    extensions: ['.cue']
  },
  'Cue Sheet': {
    type: 'data',
    extensions: ['.cue']
  },
  'cURL Config': {
    type: 'data',
    aliases: ['curlrc']
  },
  Curry: {
    type: 'programming',
    extensions: ['.curry']
  },
  CWeb: {
    type: 'programming',
    extensions: ['.w']
  },
  Cycript: {
    type: 'programming',
    extensions: ['.cy']
  },
  Cylc: {
    type: 'data',
    extensions: ['.cylc']
  },
  Cypher: {
    type: 'programming',
    extensions: ['.cyp', '.cypher']
  },
  Cython: {
    type: 'programming',
    extensions: ['.pyx', '.pxd', '.pxi'],
    aliases: ['pyrex']
  },
  D: {
    type: 'programming',
    extensions: ['.d', '.di'],
    aliases: ['Dlang']
  },
  'D-ObjDump': {
    type: 'data',
    extensions: ['.d-objdump']
  },
  D2: {
    type: 'markup',
    extensions: ['.d2'],
    aliases: ['d2lang']
  },
  Dafny: {
    type: 'programming',
    extensions: ['.dfy']
  },
  'Darcs Patch': {
    type: 'data',
    extensions: ['.darcspatch', '.dpatch'],
    aliases: ['dpatch']
  },
  Dart: {
    type: 'programming',
    extensions: ['.dart']
  },
  Daslang: {
    type: 'programming',
    extensions: ['.das']
  },
  DataWeave: {
    type: 'programming',
    extensions: ['.dwl']
  },
  'Debian Package Control File': {
    type: 'data',
    extensions: ['.dsc']
  },
  DenizenScript: {
    type: 'programming',
    extensions: ['.dsc']
  },
  desktop: {
    type: 'data',
    extensions: ['.desktop', '.desktop.in', '.service']
  },
  Dhall: {
    type: 'programming',
    extensions: ['.dhall']
  },
  Diff: {
    type: 'data',
    extensions: ['.diff', '.patch'],
    aliases: ['udiff']
  },
  'DIGITAL Command Language': {
    type: 'programming',
    extensions: ['.com'],
    aliases: ['dcl']
  },
  dircolors: {
    type: 'data',
    extensions: ['.dircolors']
  },
  'DirectX 3D File': {
    type: 'data',
    extensions: ['.x']
  },
  DM: {
    type: 'programming',
    extensions: ['.dm'],
    aliases: ['byond']
  },
  'DNS Zone': {
    type: 'data',
    extensions: ['.zone', '.arpa']
  },
  Dockerfile: {
    type: 'programming',
    extensions: ['.dockerfile', '.containerfile'],
    aliases: ['Containerfile']
  },
  Dogescript: {
    type: 'programming',
    extensions: ['.djs']
  },
  Dotenv: {
    type: 'data',
    extensions: ['.env']
  },
  DTrace: {
    type: 'programming',
    extensions: ['.d'],
    aliases: ['dtrace-script']
  },
  Dylan: {
    type: 'programming',
    extensions: ['.dylan', '.dyl', '.intr', '.lid']
  },
  E: {
    type: 'programming',
    extensions: ['.e']
  },
  'E-mail': {
    type: 'data',
    extensions: ['.eml', '.mbox'],
    aliases: ['email', 'eml', 'mail', 'mbox']
  },
  Eagle: {
    type: 'data',
    extensions: ['.sch', '.brd']
  },
  Earthly: {
    type: 'programming',
    aliases: ['Earthfile']
  },
  Easybuild: {
    type: 'data',
    extensions: ['.eb']
  },
  EBNF: {
    type: 'data',
    extensions: ['.ebnf']
  },
  eC: {
    type: 'programming',
    extensions: ['.ec', '.eh']
  },
  'Ecere Projects': {
    type: 'data',
    extensions: ['.epj']
  },
  ECL: {
    type: 'programming',
    extensions: ['.ecl', '.eclxml']
  },
  ECLiPSe: {
    type: 'programming',
    extensions: ['.ecl']
  },
  Ecmarkup: {
    type: 'markup',
    extensions: ['.html'],
    aliases: ['ecmarkdown']
  },
  Edge: {
    type: 'markup',
    extensions: ['.edge']
  },
  EdgeQL: {
    type: 'programming',
    extensions: ['.edgeql', '.esdl'],
    aliases: ['esdl']
  },
  EditorConfig: {
    type: 'data',
    extensions: ['.editorconfig'],
    aliases: ['editor-config']
  },
  'Edje Data Collection': {
    type: 'data',
    extensions: ['.edc']
  },
  edn: {
    type: 'data',
    extensions: ['.edn']
  },
  Eiffel: {
    type: 'programming',
    extensions: ['.e']
  },
  EJS: {
    type: 'markup',
    extensions: ['.ejs', '.ect', '.ejs.t', '.jst']
  },
  Elixir: {
    type: 'programming',
    extensions: ['.ex', '.exs']
  },
  Elm: {
    type: 'programming',
    extensions: ['.elm']
  },
  Elvish: {
    type: 'programming',
    extensions: ['.elv']
  },
  'Emacs Lisp': {
    type: 'programming',
    extensions: ['.el', '.emacs', '.emacs.desktop'],
    aliases: ['elisp', 'emacs']
  },
  EmberScript: {
    type: 'programming',
    extensions: ['.em', '.emberscript']
  },
  EQ: {
    type: 'programming',
    extensions: ['.eq']
  },
  Erlang: {
    type: 'programming',
    extensions: ['.erl', '.app', '.app.src', '.es', '.escript', '.hrl', '.xrl', '.yrl']
  },
  Euphoria: {
    type: 'programming',
    extensions: ['.e', '.ex']
  },
  'F*': {
    type: 'programming',
    extensions: ['.fst', '.fsti'],
    aliases: ['fstar']
  },
  'F#': {
    type: 'programming',
    extensions: ['.fs', '.fsi', '.fsx'],
    aliases: ['fsharp']
  },
  Factor: {
    type: 'programming',
    extensions: ['.factor']
  },
  Fancy: {
    type: 'programming',
    extensions: ['.fy', '.fancypack']
  },
  Fantom: {
    type: 'programming',
    extensions: ['.fan']
  },
  Faust: {
    type: 'programming',
    extensions: ['.dsp']
  },
  Fennel: {
    type: 'programming',
    extensions: ['.fnl']
  },
  'FIGlet Font': {
    type: 'data',
    extensions: ['.flf'],
    aliases: ['FIGfont']
  },
  'Filebench WML': {
    type: 'programming',
    extensions: ['.f']
  },
  Filterscript: {
    type: 'programming',
    extensions: ['.fs']
  },
  FIRRTL: {
    type: 'programming',
    extensions: ['.fir']
  },
  fish: {
    type: 'programming',
    extensions: ['.fish']
  },
  Fluent: {
    type: 'programming',
    extensions: ['.ftl']
  },
  FLUX: {
    type: 'programming',
    extensions: ['.fx', '.flux']
  },
  Formatted: {
    type: 'data',
    extensions: ['.for', '.eam.fs']
  },
  Forth: {
    type: 'programming',
    extensions: ['.fth', '.4th', '.f', '.for', '.forth', '.fr', '.frt', '.fs']
  },
  Fortran: {
    type: 'programming',
    extensions: ['.f', '.f77', '.for', '.fpp']
  },
  'Fortran Free Form': {
    type: 'programming',
    extensions: ['.f90', '.f03', '.f08', '.f95']
  },
  FreeBASIC: {
    type: 'programming',
    extensions: ['.bi', '.bas'],
    aliases: ['fb']
  },
  FreeMarker: {
    type: 'programming',
    extensions: ['.ftl'],
    aliases: ['ftl']
  },
  Frege: {
    type: 'programming',
    extensions: ['.fr']
  },
  Futhark: {
    type: 'programming',
    extensions: ['.fut']
  },
  'G-code': {
    type: 'programming',
    extensions: ['.g', '.cnc', '.gco', '.gcode']
  },
  'Game Maker Language': {
    type: 'programming',
    extensions: ['.gml']
  },
  GAML: {
    type: 'programming',
    extensions: ['.gaml']
  },
  GAMS: {
    type: 'programming',
    extensions: ['.gms']
  },
  GAP: {
    type: 'programming',
    extensions: ['.g', '.gap', '.gd', '.gi', '.tst']
  },
  'GCC Machine Description': {
    type: 'programming',
    extensions: ['.md']
  },
  GDB: {
    type: 'programming',
    extensions: ['.gdb', '.gdbinit']
  },
  GDScript: {
    type: 'programming',
    extensions: ['.gd']
  },
  GDShader: {
    type: 'programming',
    extensions: ['.gdshader', '.gdshaderinc']
  },
  GEDCOM: {
    type: 'data',
    extensions: ['.ged']
  },
  Gemini: {
    type: 'prose',
    extensions: ['.gmi'],
    aliases: ['gemtext']
  },
  'Genero 4gl': {
    type: 'programming',
    extensions: ['.4gl']
  },
  'Genero per': {
    type: 'markup',
    extensions: ['.per']
  },
  Genie: {
    type: 'programming',
    extensions: ['.gs']
  },
  Genshi: {
    type: 'programming',
    extensions: ['.kid'],
    aliases: ['xml+genshi', 'xml+kid']
  },
  'Gentoo Ebuild': {
    type: 'programming',
    extensions: ['.ebuild']
  },
  'Gentoo Eclass': {
    type: 'programming',
    extensions: ['.eclass']
  },
  'Gerber Image': {
    type: 'data',
    extensions: [
      '.gbr',
      '.cmp',
      '.gbl',
      '.gbo',
      '.gbp',
      '.gbs',
      '.gko',
      '.gml',
      '.gpb',
      '.gpt',
      '.gtl',
      '.gto',
      '.gtp',
      '.gts',
      '.ncl',
      '.sol'
    ],
    aliases: ['rs-274x']
  },
  'Gettext Catalog': {
    type: 'prose',
    extensions: ['.po', '.pot'],
    aliases: ['pot']
  },
  Gherkin: {
    type: 'programming',
    extensions: ['.feature', '.story'],
    aliases: ['cucumber']
  },
  'Git Attributes': {
    type: 'data',
    aliases: ['gitattributes']
  },
  'Git Config': {
    type: 'data',
    extensions: ['.gitconfig'],
    aliases: ['gitconfig', 'gitmodules']
  },
  'Git Revision List': {
    type: 'data',
    aliases: ['Git Blame Ignore Revs']
  },
  Gleam: {
    type: 'programming',
    extensions: ['.gleam']
  },
  'Glimmer JS': {
    type: 'programming',
    extensions: ['.gjs']
  },
  'Glimmer TS': {
    type: 'programming',
    extensions: ['.gts']
  },
  GLSL: {
    type: 'programming',
    extensions: [
      '.glsl',
      '.fp',
      '.frag',
      '.frg',
      '.fs',
      '.fsh',
      '.fshader',
      '.geo',
      '.geom',
      '.glslf',
      '.glslv',
      '.gs',
      '.gshader',
      '.rchit',
      '.rmiss',
      '.shader',
      '.tesc',
      '.tese',
      '.vert',
      '.vrx',
      '.vs',
      '.vsh',
      '.vshader'
    ]
  },
  Glyph: {
    type: 'programming',
    extensions: ['.glf']
  },
  'Glyph Bitmap Distribution Format': {
    type: 'data',
    extensions: ['.bdf']
  },
  GN: {
    type: 'data',
    extensions: ['.gn', '.gni']
  },
  Gnuplot: {
    type: 'programming',
    extensions: ['.gp', '.gnu', '.gnuplot', '.p', '.plot', '.plt']
  },
  Go: {
    type: 'programming',
    extensions: ['.go'],
    aliases: ['golang']
  },
  'Go Checksums': {
    type: 'data',
    aliases: ['go.sum', 'go sum', 'go.work.sum', 'go work sum']
  },
  'Go Module': {
    type: 'data',
    aliases: ['go.mod', 'go mod']
  },
  'Go Workspace': {
    type: 'data',
    aliases: ['go.work', 'go work']
  },
  'Godot Resource': {
    type: 'data',
    extensions: ['.gdnlib', '.gdns', '.tres', '.tscn']
  },
  Golo: {
    type: 'programming',
    extensions: ['.golo']
  },
  Gosu: {
    type: 'programming',
    extensions: ['.gs', '.gst', '.gsx', '.vark']
  },
  Grace: {
    type: 'programming',
    extensions: ['.grace']
  },
  Gradle: {
    type: 'data',
    extensions: ['.gradle']
  },
  'Gradle Kotlin DSL': {
    type: 'data',
    extensions: ['.gradle.kts']
  },
  'Grammatical Framework': {
    type: 'programming',
    extensions: ['.gf'],
    aliases: ['gf']
  },
  'Graph Modeling Language': {
    type: 'data',
    extensions: ['.gml']
  },
  GraphQL: {
    type: 'data',
    extensions: ['.graphql', '.gql', '.graphqls']
  },
  'Graphviz (DOT)': {
    type: 'data',
    extensions: ['.dot', '.gv']
  },
  Groovy: {
    type: 'programming',
    extensions: ['.groovy', '.grt', '.gtpl', '.gvy']
  },
  'Groovy Server Pages': {
    type: 'programming',
    extensions: ['.gsp'],
    aliases: ['gsp', 'java server page']
  },
  GSC: {
    type: 'programming',
    extensions: ['.gsc', '.csc', '.gsh']
  },
  Hack: {
    type: 'programming',
    extensions: ['.hack', '.hh', '.hhi', '.php']
  },
  Haml: {
    type: 'markup',
    extensions: ['.haml', '.haml.deface']
  },
  Handlebars: {
    type: 'markup',
    extensions: ['.handlebars', '.hbs'],
    aliases: ['hbs', 'htmlbars']
  },
  HAProxy: {
    type: 'data',
    extensions: ['.cfg']
  },
  Harbour: {
    type: 'programming',
    extensions: ['.hb']
  },
  Hare: {
    type: 'programming',
    extensions: ['.ha']
  },
  Haskell: {
    type: 'programming',
    extensions: ['.hs', '.hs-boot', '.hsc']
  },
  Haxe: {
    type: 'programming',
    extensions: ['.hx', '.hxsl']
  },
  HCL: {
    type: 'programming',
    extensions: ['.hcl', '.nomad', '.tf', '.tfvars', '.workflow'],
    aliases: ['HashiCorp Configuration Language', 'terraform']
  },
  HIP: {
    type: 'programming',
    extensions: ['.hip']
  },
  HiveQL: {
    type: 'programming',
    extensions: ['.q', '.hql']
  },
  HLSL: {
    type: 'programming',
    extensions: ['.hlsl', '.cginc', '.fx', '.fxh', '.hlsli']
  },
  HOCON: {
    type: 'data',
    extensions: ['.hocon']
  },
  HolyC: {
    type: 'programming',
    extensions: ['.hc']
  },
  hoon: {
    type: 'programming',
    extensions: ['.hoon']
  },
  'Hosts File': {
    type: 'data',
    aliases: ['hosts']
  },
  HTML: {
    type: 'markup',
    extensions: ['.html', '.hta', '.htm', '.html.hl', '.inc', '.xht', '.xhtml'],
    aliases: ['xhtml']
  },
  'HTML+ECR': {
    type: 'markup',
    extensions: ['.ecr'],
    aliases: ['ecr']
  },
  'HTML+EEX': {
    type: 'markup',
    extensions: ['.html.eex', '.heex', '.leex'],
    aliases: ['eex', 'heex', 'leex']
  },
  'HTML+ERB': {
    type: 'markup',
    extensions: ['.erb', '.erb.deface', '.rhtml'],
    aliases: ['erb', 'rhtml', 'html+ruby']
  },
  'HTML+PHP': {
    type: 'markup',
    extensions: ['.phtml']
  },
  'HTML+Razor': {
    type: 'markup',
    extensions: ['.cshtml', '.razor'],
    aliases: ['razor']
  },
  HTTP: {
    type: 'data',
    extensions: ['.http']
  },
  HXML: {
    type: 'data',
    extensions: ['.hxml']
  },
  Hy: {
    type: 'programming',
    extensions: ['.hy'],
    aliases: ['hylang']
  },
  HyPhy: {
    type: 'programming',
    extensions: ['.bf']
  },
  iCalendar: {
    type: 'data',
    extensions: ['.ics', '.ical'],
    aliases: ['iCal']
  },
  IDL: {
    type: 'programming',
    extensions: ['.pro', '.dlm']
  },
  Idris: {
    type: 'programming',
    extensions: ['.idr', '.lidr']
  },
  'Ignore List': {
    type: 'data',
    extensions: ['.gitignore'],
    aliases: ['ignore', 'gitignore', 'git-ignore']
  },
  'IGOR Pro': {
    type: 'programming',
    extensions: ['.ipf'],
    aliases: ['igor', 'igorpro']
  },
  'ImageJ Macro': {
    type: 'programming',
    extensions: ['.ijm'],
    aliases: ['ijm']
  },
  Imba: {
    type: 'programming',
    extensions: ['.imba']
  },
  'Inform 7': {
    type: 'programming',
    extensions: ['.ni', '.i7x'],
    aliases: ['i7', 'inform7']
  },
  INI: {
    type: 'data',
    extensions: ['.ini', '.cfg', '.cnf', '.dof', '.frm', '.lektorproject', '.prefs', '.pro', '.properties', '.url'],
    aliases: ['dosini']
  },
  Ink: {
    type: 'programming',
    extensions: ['.ink']
  },
  'Inno Setup': {
    type: 'programming',
    extensions: ['.iss', '.isl']
  },
  Io: {
    type: 'programming',
    extensions: ['.io']
  },
  Ioke: {
    type: 'programming',
    extensions: ['.ik']
  },
  'IRC log': {
    type: 'data',
    extensions: ['.irclog', '.weechatlog'],
    aliases: ['irc', 'irc logs']
  },
  Isabelle: {
    type: 'programming',
    extensions: ['.thy']
  },
  ISPC: {
    type: 'programming',
    extensions: ['.ispc']
  },
  J: {
    type: 'programming',
    extensions: ['.ijs']
  },
  Jai: {
    type: 'programming',
    extensions: ['.jai']
  },
  Janet: {
    type: 'programming',
    extensions: ['.janet']
  },
  Jasmin: {
    type: 'programming',
    extensions: ['.j']
  },
  Java: {
    type: 'programming',
    extensions: ['.java', '.jav', '.jsh']
  },
  'Java Properties': {
    type: 'data',
    extensions: ['.properties']
  },
  'Java Server Pages': {
    type: 'programming',
    extensions: ['.jsp', '.tag'],
    aliases: ['jsp']
  },
  'Java Template Engine': {
    type: 'programming',
    extensions: ['.jte'],
    aliases: ['jte']
  },
  JavaScript: {
    type: 'programming',
    extensions: [
      '.js',
      '._js',
      '.bones',
      '.cjs',
      '.es',
      '.es6',
      '.frag',
      '.gs',
      '.jake',
      '.javascript',
      '.jsb',
      '.jscad',
      '.jsfl',
      '.jslib',
      '.jsm',
      '.jspre',
      '.jss',
      '.jsx',
      '.mjs',
      '.njs',
      '.pac',
      '.sjs',
      '.ssjs',
      '.xsjs',
      '.xsjslib'
    ],
    aliases: ['js', 'node']
  },
  'JavaScript+ERB': {
    type: 'programming',
    extensions: ['.js.erb']
  },
  JCL: {
    type: 'programming',
    extensions: ['.jcl']
  },
  'Jest Snapshot': {
    type: 'data',
    extensions: ['.snap']
  },
  'JetBrains MPS': {
    type: 'programming',
    extensions: ['.mps', '.mpl', '.msd'],
    aliases: ['mps']
  },
  JFlex: {
    type: 'programming',
    extensions: ['.flex', '.jflex']
  },
  Jinja: {
    type: 'markup',
    extensions: ['.jinja', '.j2', '.jinja2'],
    aliases: ['django', 'html+django', 'html+jinja', 'htmldjango']
  },
  Jison: {
    type: 'programming',
    extensions: ['.jison']
  },
  'Jison Lex': {
    type: 'programming',
    extensions: ['.jisonlex']
  },
  Jolie: {
    type: 'programming',
    extensions: ['.ol', '.iol']
  },
  jq: {
    type: 'programming',
    extensions: ['.jq']
  },
  JSON: {
    type: 'data',
    extensions: [
      '.json',
      '.4DForm',
      '.4DProject',
      '.avsc',
      '.geojson',
      '.gltf',
      '.har',
      '.ice',
      '.JSON-tmLanguage',
      '.json.example',
      '.jsonl',
      '.mcmeta',
      '.sarif',
      '.tact',
      '.tfstate',
      '.tfstate.backup',
      '.topojson',
      '.webapp',
      '.webmanifest',
      '.yy',
      '.yyp'
    ],
    aliases: ['geojson', 'jsonl', 'sarif', 'topojson']
  },
  'JSON with Comments': {
    type: 'data',
    extensions: [
      '.jsonc',
      '.code-snippets',
      '.code-workspace',
      '.sublime-build',
      '.sublime-color-scheme',
      '.sublime-commands',
      '.sublime-completions',
      '.sublime-keymap',
      '.sublime-macro',
      '.sublime-menu',
      '.sublime-mousemap',
      '.sublime-project',
      '.sublime-settings',
      '.sublime-theme',
      '.sublime-workspace',
      '.sublime_metrics',
      '.sublime_session'
    ],
    aliases: ['jsonc']
  },
  JSON5: {
    type: 'data',
    extensions: ['.json5']
  },
  JSONiq: {
    type: 'programming',
    extensions: ['.jq']
  },
  JSONLD: {
    type: 'data',
    extensions: ['.jsonld']
  },
  Jsonnet: {
    type: 'programming',
    extensions: ['.jsonnet', '.libsonnet']
  },
  Julia: {
    type: 'programming',
    extensions: ['.jl']
  },
  'Jupyter Notebook': {
    type: 'markup',
    extensions: ['.ipynb'],
    aliases: ['IPython Notebook']
  },
  Just: {
    type: 'programming',
    extensions: ['.just'],
    aliases: ['Justfile']
  },
  'Kaitai Struct': {
    type: 'programming',
    extensions: ['.ksy'],
    aliases: ['ksy']
  },
  KakouneScript: {
    type: 'programming',
    extensions: ['.kak'],
    aliases: ['kak', 'kakscript']
  },
  KDL: {
    type: 'data',
    extensions: ['.kdl']
  },
  KerboScript: {
    type: 'programming',
    extensions: ['.ks']
  },
  'KiCad Layout': {
    type: 'data',
    extensions: ['.kicad_pcb', '.kicad_mod', '.kicad_wks'],
    aliases: ['pcbnew']
  },
  'KiCad Legacy Layout': {
    type: 'data',
    extensions: ['.brd']
  },
  'KiCad Schematic': {
    type: 'data',
    extensions: ['.kicad_sch', '.kicad_sym', '.sch'],
    aliases: ['eeschema schematic']
  },
  Kickstart: {
    type: 'data',
    extensions: ['.ks']
  },
  Kit: {
    type: 'markup',
    extensions: ['.kit']
  },
  Koka: {
    type: 'programming',
    extensions: ['.kk']
  },
  Kotlin: {
    type: 'programming',
    extensions: ['.kt', '.ktm', '.kts']
  },
  KRL: {
    type: 'programming',
    extensions: ['.krl']
  },
  Kusto: {
    type: 'data',
    extensions: ['.csl', '.kql']
  },
  kvlang: {
    type: 'markup',
    extensions: ['.kv']
  },
  LabVIEW: {
    type: 'programming',
    extensions: ['.lvproj', '.lvclass', '.lvlib']
  },
  Lark: {
    type: 'data',
    extensions: ['.lark']
  },
  Lasso: {
    type: 'programming',
    extensions: ['.lasso', '.las', '.lasso8', '.lasso9'],
    aliases: ['lassoscript']
  },
  Latte: {
    type: 'markup',
    extensions: ['.latte']
  },
  Lean: {
    type: 'programming',
    extensions: ['.lean', '.hlean']
  },
  'Lean 4': {
    type: 'programming',
    extensions: ['.lean']
  },
  Leo: {
    type: 'programming',
    extensions: ['.leo']
  },
  Less: {
    type: 'markup',
    extensions: ['.less'],
    aliases: ['less-css']
  },
  Lex: {
    type: 'programming',
    extensions: ['.l', '.lex'],
    aliases: ['flex']
  },
  LFE: {
    type: 'programming',
    extensions: ['.lfe']
  },
  LigoLANG: {
    type: 'programming',
    extensions: ['.ligo']
  },
  LilyPond: {
    type: 'programming',
    extensions: ['.ly', '.ily']
  },
  Limbo: {
    type: 'programming',
    extensions: ['.b', '.m']
  },
  'Linear Programming': {
    type: 'programming',
    extensions: ['.lp']
  },
  'Linker Script': {
    type: 'programming',
    extensions: ['.ld', '.lds', '.x']
  },
  'Linux Kernel Module': {
    type: 'data',
    extensions: ['.mod']
  },
  Liquid: {
    type: 'markup',
    extensions: ['.liquid']
  },
  'Literate Agda': {
    type: 'programming',
    extensions: ['.lagda']
  },
  'Literate CoffeeScript': {
    type: 'programming',
    extensions: ['.litcoffee', '.coffee.md'],
    aliases: ['litcoffee']
  },
  'Literate Haskell': {
    type: 'programming',
    extensions: ['.lhs'],
    aliases: ['lhaskell', 'lhs']
  },
  'LiveCode Script': {
    type: 'programming',
    extensions: ['.livecodescript']
  },
  LiveScript: {
    type: 'programming',
    extensions: ['.ls', '._ls'],
    aliases: ['live-script', 'ls']
  },
  LLVM: {
    type: 'programming',
    extensions: ['.ll']
  },
  Logos: {
    type: 'programming',
    extensions: ['.xm', '.x', '.xi']
  },
  Logtalk: {
    type: 'programming',
    extensions: ['.lgt', '.logtalk']
  },
  LOLCODE: {
    type: 'programming',
    extensions: ['.lol']
  },
  LookML: {
    type: 'programming',
    extensions: ['.lkml', '.lookml']
  },
  LoomScript: {
    type: 'programming',
    extensions: ['.ls']
  },
  LSL: {
    type: 'programming',
    extensions: ['.lsl', '.lslp']
  },
  'LTspice Symbol': {
    type: 'data',
    extensions: ['.asy']
  },
  Lua: {
    type: 'programming',
    extensions: ['.lua', '.fcgi', '.nse', '.p8', '.pd_lua', '.rbxs', '.rockspec', '.wlua']
  },
  Luau: {
    type: 'programming',
    extensions: ['.luau']
  },
  M: {
    type: 'programming',
    extensions: ['.mumps', '.m'],
    aliases: ['mumps']
  },
  M3U: {
    type: 'data',
    extensions: ['.m3u', '.m3u8'],
    aliases: ['hls playlist', 'm3u playlist']
  },
  M4: {
    type: 'programming',
    extensions: ['.m4', '.mc']
  },
  M4Sugar: {
    type: 'programming',
    extensions: ['.m4'],
    aliases: ['autoconf']
  },
  Macaulay2: {
    type: 'programming',
    extensions: ['.m2'],
    aliases: ['m2']
  },
  Makefile: {
    type: 'programming',
    extensions: ['.mak', '.d', '.make', '.makefile', '.mk', '.mkfile'],
    aliases: ['bsdmake', 'make', 'mf']
  },
  Mako: {
    type: 'programming',
    extensions: ['.mako', '.mao']
  },
  Markdown: {
    type: 'prose',
    extensions: [
      '.md',
      '.livemd',
      '.markdown',
      '.mdown',
      '.mdwn',
      '.mkd',
      '.mkdn',
      '.mkdown',
      '.ronn',
      '.scd',
      '.workbook'
    ],
    aliases: ['md', 'pandoc']
  },
  Marko: {
    type: 'markup',
    extensions: ['.marko'],
    aliases: ['markojs']
  },
  Mask: {
    type: 'markup',
    extensions: ['.mask']
  },
  Mathematica: {
    type: 'programming',
    extensions: ['.mathematica', '.cdf', '.m', '.ma', '.mt', '.nb', '.nbp', '.wl', '.wlt'],
    aliases: ['mma', 'wolfram', 'wolfram language', 'wolfram lang', 'wl']
  },
  MATLAB: {
    type: 'programming',
    extensions: ['.matlab', '.m'],
    aliases: ['octave']
  },
  Max: {
    type: 'programming',
    extensions: ['.maxpat', '.maxhelp', '.maxproj', '.mxt', '.pat'],
    aliases: ['max/msp', 'maxmsp']
  },
  MAXScript: {
    type: 'programming',
    extensions: ['.ms', '.mcr']
  },
  mcfunction: {
    type: 'programming',
    extensions: ['.mcfunction']
  },
  mdsvex: {
    type: 'markup',
    extensions: ['.svx']
  },
  MDX: {
    type: 'markup',
    extensions: ['.mdx']
  },
  Mercury: {
    type: 'programming',
    extensions: ['.m', '.moo']
  },
  Mermaid: {
    type: 'markup',
    extensions: ['.mmd', '.mermaid'],
    aliases: ['mermaid example']
  },
  Metal: {
    type: 'programming',
    extensions: ['.metal']
  },
  'Microsoft Developer Studio Project': {
    type: 'data',
    extensions: ['.dsp']
  },
  'Microsoft Visual Studio Solution': {
    type: 'data',
    extensions: ['.sln']
  },
  MiniD: {
    type: 'programming',
    extensions: ['.minid']
  },
  MiniYAML: {
    type: 'data',
    extensions: ['.yaml', '.yml']
  },
  MiniZinc: {
    type: 'programming',
    extensions: ['.mzn']
  },
  'MiniZinc Data': {
    type: 'data',
    extensions: ['.dzn']
  },
  Mint: {
    type: 'programming',
    extensions: ['.mint']
  },
  Mirah: {
    type: 'programming',
    extensions: ['.druby', '.duby', '.mirah']
  },
  'mIRC Script': {
    type: 'programming',
    extensions: ['.mrc']
  },
  MLIR: {
    type: 'programming',
    extensions: ['.mlir']
  },
  Modelica: {
    type: 'programming',
    extensions: ['.mo']
  },
  'Modula-2': {
    type: 'programming',
    extensions: ['.mod']
  },
  'Modula-3': {
    type: 'programming',
    extensions: ['.i3', '.ig', '.m3', '.mg']
  },
  'Module Management System': {
    type: 'programming',
    extensions: ['.mms', '.mmk']
  },
  Mojo: {
    type: 'programming',
    extensions: ['.mojo']
  },
  Monkey: {
    type: 'programming',
    extensions: ['.monkey', '.monkey2']
  },
  'Monkey C': {
    type: 'programming',
    extensions: ['.mc']
  },
  Moocode: {
    type: 'programming',
    extensions: ['.moo']
  },
  MoonBit: {
    type: 'programming',
    extensions: ['.mbt']
  },
  MoonScript: {
    type: 'programming',
    extensions: ['.moon']
  },
  Motoko: {
    type: 'programming',
    extensions: ['.mo']
  },
  'Motorola 68K Assembly': {
    type: 'programming',
    extensions: ['.asm', '.i', '.inc', '.s', '.x68'],
    aliases: ['m68k']
  },
  Move: {
    type: 'programming',
    extensions: ['.move']
  },
  MQL4: {
    type: 'programming',
    extensions: ['.mq4', '.mqh']
  },
  MQL5: {
    type: 'programming',
    extensions: ['.mq5', '.mqh']
  },
  MTML: {
    type: 'markup',
    extensions: ['.mtml']
  },
  MUF: {
    type: 'programming',
    extensions: ['.muf', '.m']
  },
  mupad: {
    type: 'programming',
    extensions: ['.mu']
  },
  Muse: {
    type: 'prose',
    extensions: ['.muse'],
    aliases: ['amusewiki', 'emacs muse']
  },
  Mustache: {
    type: 'markup',
    extensions: ['.mustache']
  },
  Myghty: {
    type: 'programming',
    extensions: ['.myt']
  },
  nanorc: {
    type: 'data',
    extensions: ['.nanorc']
  },
  Nasal: {
    type: 'programming',
    extensions: ['.nas']
  },
  NASL: {
    type: 'programming',
    extensions: ['.nasl', '.inc']
  },
  NCL: {
    type: 'programming',
    extensions: ['.ncl']
  },
  Nearley: {
    type: 'programming',
    extensions: ['.ne', '.nearley']
  },
  Nemerle: {
    type: 'programming',
    extensions: ['.n']
  },
  NEON: {
    type: 'data',
    extensions: ['.neon'],
    aliases: ['nette object notation', 'ne-on']
  },
  nesC: {
    type: 'programming',
    extensions: ['.nc']
  },
  NetLinx: {
    type: 'programming',
    extensions: ['.axs', '.axi']
  },
  'NetLinx+ERB': {
    type: 'programming',
    extensions: ['.axs.erb', '.axi.erb']
  },
  NetLogo: {
    type: 'programming',
    extensions: ['.nlogo']
  },
  NewLisp: {
    type: 'programming',
    extensions: ['.nl', '.lisp', '.lsp']
  },
  Nextflow: {
    type: 'programming',
    extensions: ['.nf']
  },
  Nginx: {
    type: 'data',
    extensions: ['.nginx', '.nginxconf', '.vhost'],
    aliases: ['nginx configuration file']
  },
  Nickel: {
    type: 'programming',
    extensions: ['.ncl']
  },
  Nim: {
    type: 'programming',
    extensions: ['.nim', '.nim.cfg', '.nimble', '.nimrod', '.nims']
  },
  Ninja: {
    type: 'data',
    extensions: ['.ninja']
  },
  Nit: {
    type: 'programming',
    extensions: ['.nit']
  },
  Nix: {
    type: 'programming',
    extensions: ['.nix'],
    aliases: ['nixos']
  },
  NL: {
    type: 'data',
    extensions: ['.nl']
  },
  NMODL: {
    type: 'programming',
    extensions: ['.mod']
  },
  Noir: {
    type: 'programming',
    extensions: ['.nr'],
    aliases: ['nargo']
  },
  'NPM Config': {
    type: 'data',
    aliases: ['npmrc']
  },
  NSIS: {
    type: 'programming',
    extensions: ['.nsi', '.nsh']
  },
  Nu: {
    type: 'programming',
    extensions: ['.nu'],
    aliases: ['nush']
  },
  NumPy: {
    type: 'programming',
    extensions: ['.numpy', '.numpyw', '.numsc']
  },
  Nunjucks: {
    type: 'markup',
    extensions: ['.njk'],
    aliases: ['njk']
  },
  Nushell: {
    type: 'programming',
    extensions: ['.nu'],
    aliases: ['nu-script', 'nushell-script']
  },
  NWScript: {
    type: 'programming',
    extensions: ['.nss']
  },
  'OASv2-json': {
    type: 'data',
    extensions: ['.json']
  },
  'OASv2-yaml': {
    type: 'data',
    extensions: ['.yaml', '.yml']
  },
  'OASv3-json': {
    type: 'data',
    extensions: ['.json']
  },
  'OASv3-yaml': {
    type: 'data',
    extensions: ['.yaml', '.yml']
  },
  Oberon: {
    type: 'programming',
    extensions: ['.ob2']
  },
  ObjDump: {
    type: 'data',
    extensions: ['.objdump']
  },
  'Object Data Instance Notation': {
    type: 'data',
    extensions: ['.odin']
  },
  'Objective-C': {
    type: 'programming',
    extensions: ['.m', '.h'],
    aliases: ['obj-c', 'objc', 'objectivec']
  },
  'Objective-C++': {
    type: 'programming',
    extensions: ['.mm'],
    aliases: ['obj-c++', 'objc++', 'objectivec++']
  },
  'Objective-J': {
    type: 'programming',
    extensions: ['.j', '.sj'],
    aliases: ['obj-j', 'objectivej', 'objj']
  },
  ObjectScript: {
    type: 'programming',
    extensions: ['.cls']
  },
  OCaml: {
    type: 'programming',
    extensions: ['.ml', '.eliom', '.eliomi', '.ml4', '.mli', '.mll', '.mly']
  },
  Odin: {
    type: 'programming',
    extensions: ['.odin'],
    aliases: ['odinlang', 'odin-lang']
  },
  Omgrofl: {
    type: 'programming',
    extensions: ['.omgrofl']
  },
  'OMNeT++ MSG': {
    type: 'programming',
    extensions: ['.msg'],
    aliases: ['omnetpp-msg']
  },
  'OMNeT++ NED': {
    type: 'programming',
    extensions: ['.ned'],
    aliases: ['omnetpp-ned']
  },
  ooc: {
    type: 'programming',
    extensions: ['.ooc']
  },
  Opa: {
    type: 'programming',
    extensions: ['.opa']
  },
  Opal: {
    type: 'programming',
    extensions: ['.opal']
  },
  'Open Policy Agent': {
    type: 'programming',
    extensions: ['.rego']
  },
  'OpenAPI Specification v2': {
    type: 'data',
    aliases: ['oasv2']
  },
  'OpenAPI Specification v3': {
    type: 'data',
    aliases: ['oasv3']
  },
  OpenCL: {
    type: 'programming',
    extensions: ['.cl', '.opencl']
  },
  'OpenEdge ABL': {
    type: 'programming',
    extensions: ['.p', '.cls', '.w'],
    aliases: ['progress', 'openedge', 'abl']
  },
  OpenQASM: {
    type: 'programming',
    extensions: ['.qasm']
  },
  'OpenRC runscript': {
    type: 'programming',
    aliases: ['openrc']
  },
  OpenSCAD: {
    type: 'programming',
    extensions: ['.scad']
  },
  'OpenStep Property List': {
    type: 'data',
    extensions: ['.plist', '.glyphs']
  },
  'OpenType Feature File': {
    type: 'data',
    extensions: ['.fea'],
    aliases: ['AFDKO']
  },
  'Option List': {
    type: 'data',
    aliases: ['opts', 'ackrc']
  },
  Org: {
    type: 'prose',
    extensions: ['.org']
  },
  OverpassQL: {
    type: 'programming',
    extensions: ['.overpassql']
  },
  Ox: {
    type: 'programming',
    extensions: ['.ox', '.oxh', '.oxo']
  },
  Oxygene: {
    type: 'programming',
    extensions: ['.oxygene']
  },
  Oz: {
    type: 'programming',
    extensions: ['.oz']
  },
  P4: {
    type: 'programming',
    extensions: ['.p4']
  },
  Pact: {
    type: 'programming',
    extensions: ['.pact']
  },
  Pan: {
    type: 'programming',
    extensions: ['.pan']
  },
  Papyrus: {
    type: 'programming',
    extensions: ['.psc']
  },
  Parrot: {
    type: 'programming',
    extensions: ['.parrot']
  },
  'Parrot Assembly': {
    type: 'programming',
    extensions: ['.pasm'],
    aliases: ['pasm']
  },
  'Parrot Internal Representation': {
    type: 'programming',
    extensions: ['.pir'],
    aliases: ['pir']
  },
  Pascal: {
    type: 'programming',
    extensions: ['.pas', '.dfm', '.dpr', '.inc', '.lpr', '.pascal', '.pp'],
    aliases: ['delphi', 'objectpascal']
  },
  Pawn: {
    type: 'programming',
    extensions: ['.pwn', '.inc', '.sma']
  },
  PDDL: {
    type: 'programming',
    extensions: ['.pddl']
  },
  'PEG.js': {
    type: 'programming',
    extensions: ['.pegjs', '.peggy']
  },
  Pep8: {
    type: 'programming',
    extensions: ['.pep']
  },
  Perl: {
    type: 'programming',
    extensions: ['.pl', '.al', '.cgi', '.fcgi', '.perl', '.ph', '.plx', '.pm', '.psgi', '.t'],
    aliases: ['cperl']
  },
  PHP: {
    type: 'programming',
    extensions: ['.php', '.aw', '.ctp', '.fcgi', '.inc', '.php3', '.php4', '.php5', '.phps', '.phpt'],
    aliases: ['inc']
  },
  Pic: {
    type: 'markup',
    extensions: ['.pic', '.chem'],
    aliases: ['pikchr']
  },
  Pickle: {
    type: 'data',
    extensions: ['.pkl']
  },
  PicoLisp: {
    type: 'programming',
    extensions: ['.l']
  },
  PigLatin: {
    type: 'programming',
    extensions: ['.pig']
  },
  Pike: {
    type: 'programming',
    extensions: ['.pike', '.pmod']
  },
  Pkl: {
    type: 'programming',
    extensions: ['.pkl']
  },
  PlantUML: {
    type: 'data',
    extensions: ['.puml', '.iuml', '.plantuml']
  },
  PLpgSQL: {
    type: 'programming',
    extensions: ['.pgsql', '.sql']
  },
  PLSQL: {
    type: 'programming',
    extensions: [
      '.pls',
      '.bdy',
      '.ddl',
      '.fnc',
      '.pck',
      '.pkb',
      '.pks',
      '.plb',
      '.plsql',
      '.prc',
      '.spc',
      '.sql',
      '.tpb',
      '.tps',
      '.trg',
      '.vw'
    ]
  },
  Pod: {
    type: 'prose',
    extensions: ['.pod']
  },
  'Pod 6': {
    type: 'prose',
    extensions: ['.pod', '.pod6']
  },
  PogoScript: {
    type: 'programming',
    extensions: ['.pogo']
  },
  Polar: {
    type: 'programming',
    extensions: ['.polar']
  },
  Pony: {
    type: 'programming',
    extensions: ['.pony']
  },
  Portugol: {
    type: 'programming',
    extensions: ['.por']
  },
  PostCSS: {
    type: 'markup',
    extensions: ['.pcss', '.postcss']
  },
  PostScript: {
    type: 'markup',
    extensions: ['.ps', '.eps', '.epsi', '.pfa'],
    aliases: ['postscr']
  },
  'POV-Ray SDL': {
    type: 'programming',
    extensions: ['.pov', '.inc'],
    aliases: ['pov-ray', 'povray']
  },
  PowerBuilder: {
    type: 'programming',
    extensions: ['.pbt', '.sra', '.sru', '.srw']
  },
  PowerShell: {
    type: 'programming',
    extensions: ['.ps1', '.psd1', '.psm1'],
    aliases: ['posh', 'pwsh']
  },
  Praat: {
    type: 'programming',
    extensions: ['.praat']
  },
  Prisma: {
    type: 'data',
    extensions: ['.prisma']
  },
  Processing: {
    type: 'programming',
    extensions: ['.pde']
  },
  Proguard: {
    type: 'data',
    extensions: ['.pro']
  },
  Prolog: {
    type: 'programming',
    extensions: ['.pl', '.plt', '.pro', '.prolog', '.yap']
  },
  Promela: {
    type: 'programming',
    extensions: ['.pml']
  },
  'Propeller Spin': {
    type: 'programming',
    extensions: ['.spin']
  },
  'Protocol Buffer': {
    type: 'data',
    extensions: ['.proto'],
    aliases: ['proto', 'protobuf', 'Protocol Buffers']
  },
  'Protocol Buffer Text Format': {
    type: 'data',
    extensions: ['.textproto', '.pbt', '.pbtxt'],
    aliases: ['text proto', 'protobuf text format']
  },
  'Public Key': {
    type: 'data',
    extensions: ['.asc', '.pub']
  },
  Pug: {
    type: 'markup',
    extensions: ['.jade', '.pug']
  },
  Puppet: {
    type: 'programming',
    extensions: ['.pp']
  },
  'Pure Data': {
    type: 'data',
    extensions: ['.pd']
  },
  PureBasic: {
    type: 'programming',
    extensions: ['.pb', '.pbi']
  },
  PureScript: {
    type: 'programming',
    extensions: ['.purs']
  },
  Pyret: {
    type: 'programming',
    extensions: ['.arr']
  },
  Python: {
    type: 'programming',
    extensions: [
      '.py',
      '.cgi',
      '.fcgi',
      '.gyp',
      '.gypi',
      '.lmi',
      '.py3',
      '.pyde',
      '.pyi',
      '.pyp',
      '.pyt',
      '.pyw',
      '.rpy',
      '.spec',
      '.tac',
      '.wsgi',
      '.xpy'
    ],
    aliases: ['python3', 'rusthon']
  },
  'Python console': {
    type: 'programming',
    aliases: ['pycon']
  },
  'Python traceback': {
    type: 'data',
    extensions: ['.pytb']
  },
  q: {
    type: 'programming',
    extensions: ['.q']
  },
  'Q#': {
    type: 'programming',
    extensions: ['.qs'],
    aliases: ['qsharp']
  },
  QMake: {
    type: 'programming',
    extensions: ['.pro', '.pri']
  },
  QML: {
    type: 'programming',
    extensions: ['.qml', '.qbs']
  },
  'Qt Script': {
    type: 'programming',
    extensions: ['.qs']
  },
  QuickBASIC: {
    type: 'programming',
    extensions: ['.bas'],
    aliases: ['qb', 'qbasic', 'qb64', 'classic qbasic', 'classic quickbasic']
  },
  R: {
    type: 'programming',
    extensions: ['.r', '.rd', '.rsx'],
    aliases: ['Rscript', 'splus']
  },
  Racket: {
    type: 'programming',
    extensions: ['.rkt', '.rktd', '.rktl', '.scrbl']
  },
  Ragel: {
    type: 'programming',
    extensions: ['.rl'],
    aliases: ['ragel-rb', 'ragel-ruby']
  },
  Raku: {
    type: 'programming',
    extensions: [
      '.6pl',
      '.6pm',
      '.nqp',
      '.p6',
      '.p6l',
      '.p6m',
      '.pl',
      '.pl6',
      '.pm',
      '.pm6',
      '.raku',
      '.rakumod',
      '.t'
    ],
    aliases: ['perl6', 'perl-6']
  },
  RAML: {
    type: 'markup',
    extensions: ['.raml']
  },
  Rascal: {
    type: 'programming',
    extensions: ['.rsc']
  },
  'Raw token data': {
    type: 'data',
    extensions: ['.raw'],
    aliases: ['raw']
  },
  RBS: {
    type: 'data',
    extensions: ['.rbs']
  },
  RDoc: {
    type: 'prose',
    extensions: ['.rdoc']
  },
  'Readline Config': {
    type: 'data',
    aliases: ['inputrc', 'readline']
  },
  REALbasic: {
    type: 'programming',
    extensions: ['.rbbas', '.rbfrm', '.rbmnu', '.rbres', '.rbtbar', '.rbuistate']
  },
  Reason: {
    type: 'programming',
    extensions: ['.re', '.rei']
  },
  ReasonLIGO: {
    type: 'programming',
    extensions: ['.religo']
  },
  Rebol: {
    type: 'programming',
    extensions: ['.reb', '.r', '.r2', '.r3', '.rebol']
  },
  Red: {
    type: 'programming',
    extensions: ['.red', '.reds'],
    aliases: ['red/system']
  },
  Redcode: {
    type: 'programming',
    extensions: ['.cw']
  },
  'Redirect Rules': {
    type: 'data',
    aliases: ['redirects']
  },
  'Regular Expression': {
    type: 'data',
    extensions: ['.regexp', '.regex'],
    aliases: ['regexp', 'regex']
  },
  "Ren'Py": {
    type: 'programming',
    extensions: ['.rpy'],
    aliases: ['renpy']
  },
  RenderScript: {
    type: 'programming',
    extensions: ['.rs', '.rsh']
  },
  ReScript: {
    type: 'programming',
    extensions: ['.res', '.resi']
  },
  reStructuredText: {
    type: 'prose',
    extensions: ['.rst', '.rest', '.rest.txt', '.rst.txt'],
    aliases: ['rst']
  },
  REXX: {
    type: 'programming',
    extensions: ['.rexx', '.pprx', '.rex'],
    aliases: ['arexx']
  },
  Rez: {
    type: 'programming',
    extensions: ['.r']
  },
  'Rich Text Format': {
    type: 'markup',
    extensions: ['.rtf']
  },
  Ring: {
    type: 'programming',
    extensions: ['.ring']
  },
  Riot: {
    type: 'markup',
    extensions: ['.riot']
  },
  RMarkdown: {
    type: 'prose',
    extensions: ['.qmd', '.rmd']
  },
  RobotFramework: {
    type: 'programming',
    extensions: ['.robot', '.resource']
  },
  'robots.txt': {
    type: 'data',
    aliases: ['robots', 'robots txt']
  },
  Roc: {
    type: 'programming',
    extensions: ['.roc']
  },
  'Rocq Prover': {
    type: 'programming',
    extensions: ['.v', '.coq'],
    aliases: ['coq', 'rocq']
  },
  Roff: {
    type: 'markup',
    extensions: [
      '.roff',
      '.1',
      '.1in',
      '.1m',
      '.1x',
      '.2',
      '.3',
      '.3in',
      '.3m',
      '.3p',
      '.3pm',
      '.3qt',
      '.3x',
      '.4',
      '.5',
      '.6',
      '.7',
      '.8',
      '.9',
      '.l',
      '.man',
      '.mdoc',
      '.me',
      '.ms',
      '.n',
      '.nr',
      '.rno',
      '.tmac'
    ],
    aliases: ['groff', 'man', 'manpage', 'man page', 'man-page', 'mdoc', 'nroff', 'troff']
  },
  'Roff Manpage': {
    type: 'markup',
    extensions: [
      '.1',
      '.1in',
      '.1m',
      '.1x',
      '.2',
      '.3',
      '.3in',
      '.3m',
      '.3p',
      '.3pm',
      '.3qt',
      '.3x',
      '.4',
      '.5',
      '.6',
      '.7',
      '.8',
      '.9',
      '.man',
      '.mdoc'
    ]
  },
  RON: {
    type: 'data',
    extensions: ['.ron']
  },
  Rouge: {
    type: 'programming',
    extensions: ['.rg']
  },
  'RouterOS Script': {
    type: 'programming',
    extensions: ['.rsc']
  },
  RPC: {
    type: 'programming',
    extensions: ['.x'],
    aliases: ['rpcgen', 'oncrpc', 'xdr']
  },
  RPGLE: {
    type: 'programming',
    extensions: ['.rpgle', '.sqlrpgle'],
    aliases: ['ile rpg', 'sqlrpgle']
  },
  'RPM Spec': {
    type: 'data',
    extensions: ['.spec'],
    aliases: ['specfile']
  },
  Ruby: {
    type: 'programming',
    extensions: [
      '.rb',
      '.builder',
      '.eye',
      '.fcgi',
      '.gemspec',
      '.god',
      '.jbuilder',
      '.mspec',
      '.pluginspec',
      '.podspec',
      '.prawn',
      '.rabl',
      '.rake',
      '.rbi',
      '.rbuild',
      '.rbw',
      '.rbx',
      '.ru',
      '.ruby',
      '.spec',
      '.thor',
      '.watchr'
    ],
    aliases: ['jruby', 'macruby', 'rake', 'rb', 'rbx']
  },
  RUNOFF: {
    type: 'markup',
    extensions: ['.rnh', '.rno']
  },
  Rust: {
    type: 'programming',
    extensions: ['.rs', '.rs.in'],
    aliases: ['rs']
  },
  Sage: {
    type: 'programming',
    extensions: ['.sage', '.sagews']
  },
  Sail: {
    type: 'programming',
    extensions: ['.sail']
  },
  SaltStack: {
    type: 'programming',
    extensions: ['.sls'],
    aliases: ['saltstate', 'salt']
  },
  SAS: {
    type: 'programming',
    extensions: ['.sas']
  },
  Sass: {
    type: 'markup',
    extensions: ['.sass']
  },
  Scala: {
    type: 'programming',
    extensions: ['.scala', '.kojo', '.sbt', '.sc']
  },
  Scaml: {
    type: 'markup',
    extensions: ['.scaml']
  },
  Scenic: {
    type: 'programming',
    extensions: ['.scenic']
  },
  Scheme: {
    type: 'programming',
    extensions: ['.scm', '.sch', '.sld', '.sls', '.sps', '.ss']
  },
  Scilab: {
    type: 'programming',
    extensions: ['.sci', '.sce', '.tst']
  },
  SCSS: {
    type: 'markup',
    extensions: ['.scss']
  },
  sed: {
    type: 'programming',
    extensions: ['.sed']
  },
  Self: {
    type: 'programming',
    extensions: ['.self']
  },
  'SELinux Policy': {
    type: 'data',
    extensions: ['.te'],
    aliases: ['SELinux Kernel Policy Language', 'sepolicy']
  },
  ShaderLab: {
    type: 'programming',
    extensions: ['.shader']
  },
  Shell: {
    type: 'programming',
    extensions: [
      '.sh',
      '.bash',
      '.bats',
      '.cgi',
      '.command',
      '.fcgi',
      '.ksh',
      '.sh.in',
      '.tmux',
      '.tool',
      '.trigger',
      '.zsh',
      '.zsh-theme'
    ],
    aliases: ['sh', 'shell-script', 'bash', 'zsh', 'envrc']
  },
  'ShellCheck Config': {
    type: 'data',
    aliases: ['shellcheckrc']
  },
  ShellSession: {
    type: 'programming',
    extensions: ['.sh-session'],
    aliases: ['bash session', 'console']
  },
  Shen: {
    type: 'programming',
    extensions: ['.shen']
  },
  Sieve: {
    type: 'programming',
    extensions: ['.sieve']
  },
  'Simple File Verification': {
    type: 'data',
    extensions: ['.sfv'],
    aliases: ['sfv']
  },
  Slang: {
    type: 'programming',
    extensions: ['.slang']
  },
  Slash: {
    type: 'programming',
    extensions: ['.sl']
  },
  Slice: {
    type: 'programming',
    extensions: ['.ice']
  },
  Slim: {
    type: 'markup',
    extensions: ['.slim']
  },
  Slint: {
    type: 'markup',
    extensions: ['.slint']
  },
  Smali: {
    type: 'programming',
    extensions: ['.smali']
  },
  Smalltalk: {
    type: 'programming',
    extensions: ['.st', '.cs'],
    aliases: ['squeak']
  },
  Smarty: {
    type: 'programming',
    extensions: ['.tpl']
  },
  Smithy: {
    type: 'programming',
    extensions: ['.smithy']
  },
  SmPL: {
    type: 'programming',
    extensions: ['.cocci'],
    aliases: ['coccinelle']
  },
  SMT: {
    type: 'programming',
    extensions: ['.smt2', '.smt', '.z3']
  },
  Snakemake: {
    type: 'programming',
    extensions: ['.smk', '.snakefile'],
    aliases: ['snakefile']
  },
  Solidity: {
    type: 'programming',
    extensions: ['.sol']
  },
  SourcePawn: {
    type: 'programming',
    extensions: ['.sp', '.inc'],
    aliases: ['sourcemod']
  },
  SPARQL: {
    type: 'data',
    extensions: ['.sparql', '.rq']
  },
  'Spline Font Database': {
    type: 'data',
    extensions: ['.sfd']
  },
  SQF: {
    type: 'programming',
    extensions: ['.sqf', '.hqf']
  },
  SQL: {
    type: 'data',
    extensions: ['.sql', '.cql', '.ddl', '.inc', '.mysql', '.prc', '.tab', '.udf', '.viw']
  },
  SQLPL: {
    type: 'programming',
    extensions: ['.sql', '.db2']
  },
  Squirrel: {
    type: 'programming',
    extensions: ['.nut']
  },
  'SRecode Template': {
    type: 'markup',
    extensions: ['.srt']
  },
  'SSH Config': {
    type: 'data',
    aliases: ['sshconfig', 'sshdconfig', 'ssh_config', 'sshd_config']
  },
  Stan: {
    type: 'programming',
    extensions: ['.stan']
  },
  'Standard ML': {
    type: 'programming',
    extensions: ['.ml', '.fun', '.sig', '.sml'],
    aliases: ['sml']
  },
  STAR: {
    type: 'data',
    extensions: ['.star']
  },
  Starlark: {
    type: 'programming',
    extensions: ['.bzl', '.star'],
    aliases: ['bazel', 'bzl']
  },
  Stata: {
    type: 'programming',
    extensions: ['.do', '.ado', '.doh', '.ihlp', '.mata', '.matah', '.sthlp']
  },
  STL: {
    type: 'data',
    extensions: ['.stl'],
    aliases: ['ascii stl', 'stla']
  },
  STON: {
    type: 'data',
    extensions: ['.ston']
  },
  StringTemplate: {
    type: 'markup',
    extensions: ['.st']
  },
  Stylus: {
    type: 'markup',
    extensions: ['.styl']
  },
  'SubRip Text': {
    type: 'data',
    extensions: ['.srt']
  },
  SugarSS: {
    type: 'markup',
    extensions: ['.sss']
  },
  SuperCollider: {
    type: 'programming',
    extensions: ['.sc', '.scd']
  },
  'Survex data': {
    type: 'data',
    extensions: ['.svx']
  },
  Svelte: {
    type: 'markup',
    extensions: ['.svelte']
  },
  SVG: {
    type: 'data',
    extensions: ['.svg']
  },
  Sway: {
    type: 'programming',
    extensions: ['.sw']
  },
  Sweave: {
    type: 'prose',
    extensions: ['.rnw']
  },
  Swift: {
    type: 'programming',
    extensions: ['.swift']
  },
  SWIG: {
    type: 'programming',
    extensions: ['.i', '.swg', '.swig']
  },
  SystemVerilog: {
    type: 'programming',
    extensions: ['.sv', '.svh', '.vh']
  },
  Tact: {
    type: 'programming',
    extensions: ['.tact']
  },
  Talon: {
    type: 'programming',
    extensions: ['.talon']
  },
  Tcl: {
    type: 'programming',
    extensions: ['.tcl', '.adp', '.sdc', '.tcl.in', '.tm', '.xdc'],
    aliases: ['sdc', 'xdc']
  },
  Tcsh: {
    type: 'programming',
    extensions: ['.tcsh', '.csh']
  },
  Tea: {
    type: 'markup',
    extensions: ['.tea']
  },
  templ: {
    type: 'markup',
    extensions: ['.templ']
  },
  Terra: {
    type: 'programming',
    extensions: ['.t']
  },
  'Terraform Template': {
    type: 'markup',
    extensions: ['.tftpl']
  },
  TeX: {
    type: 'markup',
    extensions: [
      '.tex',
      '.aux',
      '.bbx',
      '.cbx',
      '.cls',
      '.dtx',
      '.ins',
      '.lbx',
      '.ltx',
      '.mkii',
      '.mkiv',
      '.mkvi',
      '.sty',
      '.toc'
    ],
    aliases: ['latex']
  },
  Texinfo: {
    type: 'prose',
    extensions: ['.texinfo', '.texi', '.txi']
  },
  Text: {
    type: 'prose',
    extensions: ['.txt', '.fr', '.nb', '.ncl', '.no'],
    aliases: ['fundamental', 'plain text']
  },
  TextGrid: {
    type: 'data',
    extensions: ['.TextGrid']
  },
  Textile: {
    type: 'prose',
    extensions: ['.textile']
  },
  'TextMate Properties': {
    type: 'data',
    aliases: ['tm-properties']
  },
  Thrift: {
    type: 'programming',
    extensions: ['.thrift']
  },
  'TI Program': {
    type: 'programming',
    extensions: ['.8xp', '.8xp.txt']
  },
  'TL-Verilog': {
    type: 'programming',
    extensions: ['.tlv']
  },
  TLA: {
    type: 'programming',
    extensions: ['.tla']
  },
  Toit: {
    type: 'programming',
    extensions: ['.toit']
  },
  TOML: {
    type: 'data',
    extensions: ['.toml']
  },
  'Tor Config': {
    type: 'data',
    aliases: ['torrc']
  },
  'Tree-sitter Query': {
    type: 'programming',
    extensions: ['.scm'],
    aliases: ['tsq']
  },
  'TSPLIB data': {
    type: 'data',
    extensions: ['.tsp'],
    aliases: ['travelling salesman problem', 'traveling salesman problem']
  },
  TSQL: {
    type: 'programming',
    extensions: ['.sql']
  },
  TSV: {
    type: 'data',
    extensions: ['.tsv', '.vcf'],
    aliases: ['tab-seperated values']
  },
  TSX: {
    type: 'programming',
    extensions: ['.tsx']
  },
  Turing: {
    type: 'programming',
    extensions: ['.t', '.tu']
  },
  Turtle: {
    type: 'data',
    extensions: ['.ttl']
  },
  Twig: {
    type: 'markup',
    extensions: ['.twig']
  },
  TXL: {
    type: 'programming',
    extensions: ['.txl']
  },
  'Type Language': {
    type: 'data',
    extensions: ['.tl'],
    aliases: ['tl']
  },
  TypeScript: {
    type: 'programming',
    extensions: ['.ts', '.cts', '.mts'],
    aliases: ['ts']
  },
  TypeSpec: {
    type: 'programming',
    extensions: ['.tsp'],
    aliases: ['tsp']
  },
  Typst: {
    type: 'programming',
    extensions: ['.typ'],
    aliases: ['typ']
  },
  'Unified Parallel C': {
    type: 'programming',
    extensions: ['.upc']
  },
  'Unity3D Asset': {
    type: 'data',
    extensions: ['.anim', '.asset', '.mask', '.mat', '.meta', '.prefab', '.unity']
  },
  'Unix Assembly': {
    type: 'programming',
    extensions: ['.s', '.ms'],
    aliases: ['gas', 'gnu asm', 'unix asm']
  },
  Uno: {
    type: 'programming',
    extensions: ['.uno']
  },
  UnrealScript: {
    type: 'programming',
    extensions: ['.uc']
  },
  'Untyped Plutus Core': {
    type: 'programming',
    extensions: ['.uplc']
  },
  UrWeb: {
    type: 'programming',
    extensions: ['.ur', '.urs'],
    aliases: ['Ur/Web', 'Ur']
  },
  V: {
    type: 'programming',
    extensions: ['.v'],
    aliases: ['vlang']
  },
  Vala: {
    type: 'programming',
    extensions: ['.vala', '.vapi']
  },
  'Valve Data Format': {
    type: 'data',
    extensions: ['.vdf'],
    aliases: ['keyvalues', 'vdf']
  },
  VBA: {
    type: 'programming',
    extensions: ['.bas', '.cls', '.frm', '.vba'],
    aliases: ['visual basic for applications']
  },
  VBScript: {
    type: 'programming',
    extensions: ['.vbs']
  },
  vCard: {
    type: 'data',
    extensions: ['.vcf'],
    aliases: ['virtual contact file', 'electronic business card']
  },
  VCL: {
    type: 'programming',
    extensions: ['.vcl']
  },
  'Velocity Template Language': {
    type: 'markup',
    extensions: ['.vtl'],
    aliases: ['vtl', 'velocity']
  },
  Vento: {
    type: 'markup',
    extensions: ['.vto']
  },
  Verilog: {
    type: 'programming',
    extensions: ['.v', '.veo']
  },
  VHDL: {
    type: 'programming',
    extensions: ['.vhdl', '.vhd', '.vhf', '.vhi', '.vho', '.vhs', '.vht', '.vhw']
  },
  'Vim Help File': {
    type: 'prose',
    extensions: ['.txt'],
    aliases: ['help', 'vimhelp']
  },
  'Vim Script': {
    type: 'programming',
    extensions: ['.vim', '.vba', '.vimrc', '.vmb'],
    aliases: ['vim', 'viml', 'nvim', 'vimscript']
  },
  'Vim Snippet': {
    type: 'markup',
    extensions: ['.snip', '.snippet', '.snippets'],
    aliases: ['SnipMate', 'UltiSnip', 'UltiSnips', 'NeoSnippet']
  },
  'Visual Basic .NET': {
    type: 'programming',
    extensions: ['.vb', '.vbhtml'],
    aliases: ['visual basic', 'vbnet', 'vb .net', 'vb.net']
  },
  'Visual Basic 6.0': {
    type: 'programming',
    extensions: ['.bas', '.cls', '.ctl', '.Dsr', '.frm'],
    aliases: ['vb6', 'vb 6', 'visual basic 6', 'visual basic classic', 'classic visual basic']
  },
  Volt: {
    type: 'programming',
    extensions: ['.volt']
  },
  Vue: {
    type: 'markup',
    extensions: ['.vue']
  },
  Vyper: {
    type: 'programming',
    extensions: ['.vy']
  },
  'Wavefront Material': {
    type: 'data',
    extensions: ['.mtl']
  },
  'Wavefront Object': {
    type: 'data',
    extensions: ['.obj']
  },
  WDL: {
    type: 'programming',
    extensions: ['.wdl'],
    aliases: ['Workflow Description Language']
  },
  'Web Ontology Language': {
    type: 'data',
    extensions: ['.owl']
  },
  WebAssembly: {
    type: 'programming',
    extensions: ['.wast', '.wat'],
    aliases: ['wast', 'wasm']
  },
  'WebAssembly Interface Type': {
    type: 'data',
    extensions: ['.wit'],
    aliases: ['wit']
  },
  WebIDL: {
    type: 'programming',
    extensions: ['.webidl']
  },
  WebVTT: {
    type: 'data',
    extensions: ['.vtt'],
    aliases: ['vtt']
  },
  'Wget Config': {
    type: 'data',
    aliases: ['wgetrc']
  },
  WGSL: {
    type: 'programming',
    extensions: ['.wgsl']
  },
  Whiley: {
    type: 'programming',
    extensions: ['.whiley']
  },
  Wikitext: {
    type: 'prose',
    extensions: ['.mediawiki', '.wiki', '.wikitext'],
    aliases: ['mediawiki', 'wiki']
  },
  'Win32 Message File': {
    type: 'data',
    extensions: ['.mc']
  },
  'Windows Registry Entries': {
    type: 'data',
    extensions: ['.reg']
  },
  wisp: {
    type: 'programming',
    extensions: ['.wisp']
  },
  'Witcher Script': {
    type: 'programming',
    extensions: ['.ws']
  },
  Wollok: {
    type: 'programming',
    extensions: ['.wlk']
  },
  'World of Warcraft Addon Data': {
    type: 'data',
    extensions: ['.toc']
  },
  Wren: {
    type: 'programming',
    extensions: ['.wren'],
    aliases: ['wrenlang']
  },
  'X BitMap': {
    type: 'data',
    extensions: ['.xbm'],
    aliases: ['xbm']
  },
  'X PixMap': {
    type: 'data',
    extensions: ['.xpm', '.pm'],
    aliases: ['xpm']
  },
  X10: {
    type: 'programming',
    extensions: ['.x10'],
    aliases: ['xten']
  },
  xBase: {
    type: 'programming',
    extensions: ['.prg', '.ch', '.prw'],
    aliases: ['advpl', 'clipper', 'foxpro']
  },
  XC: {
    type: 'programming',
    extensions: ['.xc']
  },
  XML: {
    type: 'data',
    extensions: [
      '.xml',
      '.adml',
      '.admx',
      '.ant',
      '.axaml',
      '.axml',
      '.builds',
      '.ccproj',
      '.ccxml',
      '.clixml',
      '.cproject',
      '.cscfg',
      '.csdef',
      '.csl',
      '.csproj',
      '.ct',
      '.depproj',
      '.dita',
      '.ditamap',
      '.ditaval',
      '.dll.config',
      '.dotsettings',
      '.filters',
      '.fsproj',
      '.fxml',
      '.glade',
      '.gml',
      '.gmx',
      '.gpx',
      '.grxml',
      '.gst',
      '.hzp',
      '.iml',
      '.ivy',
      '.jelly',
      '.jsproj',
      '.kml',
      '.launch',
      '.mdpolicy',
      '.mjml',
      '.mm',
      '.mod',
      '.mojo',
      '.mxml',
      '.natvis',
      '.ncl',
      '.ndproj',
      '.nproj',
      '.nuspec',
      '.odd',
      '.osm',
      '.pkgproj',
      '.pluginspec',
      '.proj',
      '.props',
      '.ps1xml',
      '.psc1',
      '.pt',
      '.qhelp',
      '.rdf',
      '.res',
      '.resx',
      '.rs',
      '.rss',
      '.sch',
      '.scxml',
      '.sfproj',
      '.shproj',
      '.slnx',
      '.srdf',
      '.storyboard',
      '.sublime-snippet',
      '.sw',
      '.targets',
      '.tml',
      '.ts',
      '.tsx',
      '.typ',
      '.ui',
      '.urdf',
      '.ux',
      '.vbproj',
      '.vcxproj',
      '.vsixmanifest',
      '.vssettings',
      '.vstemplate',
      '.vxml',
      '.wixproj',
      '.workflow',
      '.wsdl',
      '.wsf',
      '.wxi',
      '.wxl',
      '.wxs',
      '.x3d',
      '.xacro',
      '.xaml',
      '.xib',
      '.xlf',
      '.xliff',
      '.xmi',
      '.xml.dist',
      '.xmp',
      '.xproj',
      '.xsd',
      '.xspec',
      '.xul',
      '.zcml'
    ],
    aliases: ['rss', 'xsd', 'wsdl']
  },
  'XML Property List': {
    type: 'data',
    extensions: ['.plist', '.stTheme', '.tmCommand', '.tmLanguage', '.tmPreferences', '.tmSnippet', '.tmTheme']
  },
  Xojo: {
    type: 'programming',
    extensions: ['.xojo_code', '.xojo_menu', '.xojo_report', '.xojo_script', '.xojo_toolbar', '.xojo_window']
  },
  Xonsh: {
    type: 'programming',
    extensions: ['.xsh']
  },
  XPages: {
    type: 'data',
    extensions: ['.xsp-config', '.xsp.metadata']
  },
  XProc: {
    type: 'programming',
    extensions: ['.xpl', '.xproc']
  },
  XQuery: {
    type: 'programming',
    extensions: ['.xquery', '.xq', '.xql', '.xqm', '.xqy']
  },
  XS: {
    type: 'programming',
    extensions: ['.xs']
  },
  XSLT: {
    type: 'programming',
    extensions: ['.xslt', '.xsl'],
    aliases: ['xsl']
  },
  Xtend: {
    type: 'programming',
    extensions: ['.xtend']
  },
  Yacc: {
    type: 'programming',
    extensions: ['.y', '.yacc', '.yy']
  },
  YAML: {
    type: 'data',
    extensions: [
      '.yml',
      '.mir',
      '.reek',
      '.rviz',
      '.sublime-syntax',
      '.syntax',
      '.yaml',
      '.yaml-tmlanguage',
      '.yaml.sed',
      '.yml.mysql'
    ],
    aliases: ['yml']
  },
  YANG: {
    type: 'data',
    extensions: ['.yang']
  },
  YARA: {
    type: 'programming',
    extensions: ['.yar', '.yara']
  },
  YASnippet: {
    type: 'markup',
    extensions: ['.yasnippet'],
    aliases: ['snippet', 'yas']
  },
  Yul: {
    type: 'programming',
    extensions: ['.yul']
  },
  ZAP: {
    type: 'programming',
    extensions: ['.zap', '.xzap']
  },
  Zeek: {
    type: 'programming',
    extensions: ['.zeek', '.bro'],
    aliases: ['bro']
  },
  ZenScript: {
    type: 'programming',
    extensions: ['.zs']
  },
  Zephir: {
    type: 'programming',
    extensions: ['.zep']
  },
  Zig: {
    type: 'programming',
    extensions: ['.zig', '.zig.zon']
  },
  ZIL: {
    type: 'programming',
    extensions: ['.zil', '.mud']
  },
  Zimpl: {
    type: 'programming',
    extensions: ['.zimpl', '.zmpl', '.zpl']
  },
  Zmodel: {
    type: 'data',
    extensions: ['.zmodel']
  }
}
