// auto-generated by gen-langs-map.cjs – DO NOT EDIT
import { StreamLanguage, LanguageSupport } from '@codemirror/language';
import { cpp } from '@codemirror/lang-cpp';
import { css } from '@codemirror/lang-css';
import { go } from '@codemirror/lang-go';
import { html } from '@codemirror/lang-html';
import { java } from '@codemirror/lang-java';
import { javascript } from '@codemirror/lang-javascript';
import { jinja } from '@codemirror/lang-jinja';
import { json } from '@codemirror/lang-json';
import { less } from '@codemirror/lang-less';
import { liquid } from '@codemirror/lang-liquid';
import { markdown } from '@codemirror/lang-markdown';
import { php } from '@codemirror/lang-php';
import { python } from '@codemirror/lang-python';
import { rust } from '@codemirror/lang-rust';
import { sass } from '@codemirror/lang-sass';
import { wast } from '@codemirror/lang-wast';
import { xml } from '@codemirror/lang-xml';
import { yaml } from '@codemirror/lang-yaml';
import { apl } from '@codemirror/legacy-modes/mode/apl';
import { asciiArmor } from '@codemirror/legacy-modes/mode/asciiarmor';
import { asn1 } from '@codemirror/legacy-modes/mode/asn1';
import { brainfuck } from '@codemirror/legacy-modes/mode/brainfuck';
import { cobol } from '@codemirror/legacy-modes/mode/cobol';
import { csharp, dart, kotlin, objectiveCpp, scala, squirrel } from '@codemirror/legacy-modes/mode/clike';
import { clojure } from '@codemirror/legacy-modes/mode/clojure';
import { gss } from '@codemirror/legacy-modes/mode/css';
import { cmake } from '@codemirror/legacy-modes/mode/cmake';
import { coffeeScript } from '@codemirror/legacy-modes/mode/coffeescript';
import { commonLisp } from '@codemirror/legacy-modes/mode/commonlisp';
import { cypher } from '@codemirror/legacy-modes/mode/cypher';
import { cython } from '@codemirror/legacy-modes/mode/python';
import { crystal } from '@codemirror/legacy-modes/mode/crystal';
import { d } from '@codemirror/legacy-modes/mode/d';
import { diff } from '@codemirror/legacy-modes/mode/diff';
import { dtd } from '@codemirror/legacy-modes/mode/dtd';
import { dylan } from '@codemirror/legacy-modes/mode/dylan';
import { ecl } from '@codemirror/legacy-modes/mode/ecl';
import { eiffel } from '@codemirror/legacy-modes/mode/eiffel';
import { elm } from '@codemirror/legacy-modes/mode/elm';
import { erlang } from '@codemirror/legacy-modes/mode/erlang';
import { factor } from '@codemirror/legacy-modes/mode/factor';
import { forth } from '@codemirror/legacy-modes/mode/forth';
import { fortran } from '@codemirror/legacy-modes/mode/fortran';
import { fSharp, oCaml, sml } from '@codemirror/legacy-modes/mode/mllike';
import { gas } from '@codemirror/legacy-modes/mode/gas';
import { gherkin } from '@codemirror/legacy-modes/mode/gherkin';
import { groovy } from '@codemirror/legacy-modes/mode/groovy';
import { haskell } from '@codemirror/legacy-modes/mode/haskell';
import { haxe, hxml } from '@codemirror/legacy-modes/mode/haxe';
import { idl } from '@codemirror/legacy-modes/mode/idl';
import { jsonld } from '@codemirror/legacy-modes/mode/javascript';
import { julia } from '@codemirror/legacy-modes/mode/julia';
import { liveScript } from '@codemirror/legacy-modes/mode/livescript';
import { lua } from '@codemirror/legacy-modes/mode/lua';
import { mirc } from '@codemirror/legacy-modes/mode/mirc';
import { mathematica } from '@codemirror/legacy-modes/mode/mathematica';
import { modelica } from '@codemirror/legacy-modes/mode/modelica';
import { mumps } from '@codemirror/legacy-modes/mode/mumps';
import { mbox } from '@codemirror/legacy-modes/mode/mbox';
import { nsis } from '@codemirror/legacy-modes/mode/nsis';
import { ntriples } from '@codemirror/legacy-modes/mode/ntriples';
import { octave } from '@codemirror/legacy-modes/mode/octave';
import { oz } from '@codemirror/legacy-modes/mode/oz';
import { pascal } from '@codemirror/legacy-modes/mode/pascal';
import { perl } from '@codemirror/legacy-modes/mode/perl';
import { pig } from '@codemirror/legacy-modes/mode/pig';
import { powerShell } from '@codemirror/legacy-modes/mode/powershell';
import { properties } from '@codemirror/legacy-modes/mode/properties';
import { protobuf } from '@codemirror/legacy-modes/mode/protobuf';
import { pug } from '@codemirror/legacy-modes/mode/pug';
import { puppet } from '@codemirror/legacy-modes/mode/puppet';
import { q } from '@codemirror/legacy-modes/mode/q';
import { r } from '@codemirror/legacy-modes/mode/r';
import { rpmSpec } from '@codemirror/legacy-modes/mode/rpm';
import { ruby } from '@codemirror/legacy-modes/mode/ruby';
import { sas } from '@codemirror/legacy-modes/mode/sas';
import { scheme } from '@codemirror/legacy-modes/mode/scheme';
import { shell } from '@codemirror/legacy-modes/mode/shell';
import { sieve } from '@codemirror/legacy-modes/mode/sieve';
import { smalltalk } from '@codemirror/legacy-modes/mode/smalltalk';
import { sparql } from '@codemirror/legacy-modes/mode/sparql';
import { stylus } from '@codemirror/legacy-modes/mode/stylus';
import { swift } from '@codemirror/legacy-modes/mode/swift';
import { stex } from '@codemirror/legacy-modes/mode/stex';
import { verilog } from '@codemirror/legacy-modes/mode/verilog';
import { tcl } from '@codemirror/legacy-modes/mode/tcl';
import { textile } from '@codemirror/legacy-modes/mode/textile';
import { toml } from '@codemirror/legacy-modes/mode/toml';
import { troff } from '@codemirror/legacy-modes/mode/troff';
import { ttcn } from '@codemirror/legacy-modes/mode/ttcn';
import { ttcnCfg } from '@codemirror/legacy-modes/mode/ttcn-cfg';
import { turtle } from '@codemirror/legacy-modes/mode/turtle';
import { webIDL } from '@codemirror/legacy-modes/mode/webidl';
import { vb } from '@codemirror/legacy-modes/mode/vb';
import { vbScript } from '@codemirror/legacy-modes/mode/vbscript';
import { velocity } from '@codemirror/legacy-modes/mode/velocity';
import { vhdl } from '@codemirror/legacy-modes/mode/vhdl';
import { xQuery } from '@codemirror/legacy-modes/mode/xquery';
import { yacas } from '@codemirror/legacy-modes/mode/yacas';
import { z80 } from '@codemirror/legacy-modes/mode/z80';
import { mscgen, msgenny, xu } from '@codemirror/legacy-modes/mode/mscgen';
import { vue } from '@codemirror/lang-vue';
import * as SQL from '@codemirror/lang-sql';
import { nix } from '@replit/codemirror-lang-nix';
import { svelte } from '@replit/codemirror-lang-svelte';
import { solidity } from '@replit/codemirror-lang-solidity';

export const langs = {
  '1': () => StreamLanguage.define(troff),
  '2': () => StreamLanguage.define(troff),
  '3': () => StreamLanguage.define(troff),
  '4': () => StreamLanguage.define(troff),
  '4th': () => StreamLanguage.define(forth),
  '5': () => StreamLanguage.define(troff),
  '6': () => StreamLanguage.define(troff),
  '7': () => StreamLanguage.define(troff),
  '8': () => StreamLanguage.define(troff),
  '9': () => StreamLanguage.define(troff),
  apl: () => StreamLanguage.define(apl),
  asc: () => StreamLanguage.define(asciiArmor),
  asn: () => StreamLanguage.define(asn1({})),
  asn1: () => StreamLanguage.define(asn1({})),
  b: () => StreamLanguage.define(brainfuck),
  bash: () => StreamLanguage.define(shell),
  bf: () => StreamLanguage.define(brainfuck),
  BUILD: () => python(),
  bzl: () => python(),
  c: () => cpp(),
  'c++': () => cpp(),
  cc: () => cpp(),
  cfg: () => StreamLanguage.define(ttcnCfg),
  cjs: () => javascript(),
  cl: () => StreamLanguage.define(commonLisp),
  clj: () => StreamLanguage.define(clojure),
  cljc: () => StreamLanguage.define(clojure),
  cljs: () => StreamLanguage.define(clojure),
  cljx: () => StreamLanguage.define(clojure),
  cmake: () => StreamLanguage.define(cmake),
  'cmake.in': () => StreamLanguage.define(cmake),
  cob: () => StreamLanguage.define(cobol),
  coffee: () => StreamLanguage.define(coffeeScript),
  cpp: () => cpp(),
  cpy: () => StreamLanguage.define(cobol),
  cql: () => SQL.sql({ dialect: SQL.Cassandra }),
  cr: () => StreamLanguage.define(crystal),
  cs: () => StreamLanguage.define(csharp),
  css: () => css(),
  cts: () => javascript({ typescript: true }),
  cxx: () => cpp(),
  cyp: () => StreamLanguage.define(cypher),
  cypher: () => StreamLanguage.define(cypher),
  d: () => StreamLanguage.define(d),
  dart: () => StreamLanguage.define(dart),
  diff: () => StreamLanguage.define(diff),
  dtd: () => StreamLanguage.define(dtd),
  dyalog: () => StreamLanguage.define(apl),
  dyl: () => StreamLanguage.define(dylan),
  dylan: () => StreamLanguage.define(dylan),
  e: () => StreamLanguage.define(eiffel),
  ecl: () => StreamLanguage.define(ecl),
  edn: () => StreamLanguage.define(clojure),
  el: () => StreamLanguage.define(commonLisp),
  elm: () => StreamLanguage.define(elm),
  erl: () => StreamLanguage.define(erlang),
  f: () => StreamLanguage.define(fortran),
  f77: () => StreamLanguage.define(fortran),
  f90: () => StreamLanguage.define(fortran),
  f95: () => StreamLanguage.define(fortran),
  factor: () => StreamLanguage.define(factor),
  feature: () => StreamLanguage.define(gherkin),
  for: () => StreamLanguage.define(fortran),
  forth: () => StreamLanguage.define(forth),
  fs: () => StreamLanguage.define(fSharp),
  fth: () => StreamLanguage.define(forth),
  fun: () => StreamLanguage.define(sml),
  go: () => go(),
  gradle: () => StreamLanguage.define(groovy),
  groovy: () => StreamLanguage.define(groovy),
  gss: () => StreamLanguage.define(gss),
  h: () => cpp(),
  'h++': () => cpp(),
  handlebars: () => html(),
  hbs: () => html(),
  hh: () => cpp(),
  hpp: () => cpp(),
  hs: () => StreamLanguage.define(haskell),
  htm: () => html(),
  html: () => html(),
  hx: () => StreamLanguage.define(haxe),
  hxml: () => StreamLanguage.define(hxml),
  hxx: () => cpp(),
  in: () => StreamLanguage.define(properties),
  ini: () => StreamLanguage.define(properties),
  ino: () => cpp(),
  intr: () => StreamLanguage.define(dylan),
  j2: () => jinja(),
  jade: () => StreamLanguage.define(pug),
  java: () => java(),
  jinja: () => jinja(),
  jinja2: () => jinja(),
  jl: () => StreamLanguage.define(julia),
  js: () => javascript(),
  json: () => json(),
  jsonld: () => StreamLanguage.define(jsonld),
  jsx: () => javascript({ jsx: true }),
  ksh: () => StreamLanguage.define(shell),
  kt: () => StreamLanguage.define(kotlin),
  kts: () => StreamLanguage.define(kotlin),
  less: () => less(),
  liquid: () => liquid(),
  lisp: () => StreamLanguage.define(commonLisp),
  ls: () => StreamLanguage.define(liveScript),
  ltx: () => StreamLanguage.define(stex),
  lua: () => StreamLanguage.define(lua),
  m: () => StreamLanguage.define(octave),
  map: () => json(),
  markdown: () => markdown(),
  mbox: () => StreamLanguage.define(mbox),
  md: () => markdown(),
  mjs: () => javascript(),
  mkd: () => markdown(),
  ml: () => StreamLanguage.define(oCaml),
  mli: () => StreamLanguage.define(oCaml),
  mll: () => StreamLanguage.define(oCaml),
  mly: () => StreamLanguage.define(oCaml),
  mm: () => StreamLanguage.define(objectiveCpp),
  mo: () => StreamLanguage.define(modelica),
  mps: () => StreamLanguage.define(mumps),
  mrc: () => StreamLanguage.define(mirc),
  msc: () => StreamLanguage.define(mscgen),
  mscgen: () => StreamLanguage.define(mscgen),
  mscin: () => StreamLanguage.define(mscgen),
  msgenny: () => StreamLanguage.define(msgenny),
  mts: () => javascript({ typescript: true }),
  nb: () => StreamLanguage.define(mathematica),
  nix: () => nix(),
  nq: () => StreamLanguage.define(ntriples),
  nsh: () => StreamLanguage.define(nsis),
  nsi: () => StreamLanguage.define(nsis),
  nt: () => StreamLanguage.define(ntriples),
  nut: () => StreamLanguage.define(squirrel),
  oz: () => StreamLanguage.define(oz),
  p: () => StreamLanguage.define(pascal),
  pas: () => StreamLanguage.define(pascal),
  patch: () => StreamLanguage.define(diff),
  pgp: () => StreamLanguage.define(asciiArmor),
  php: () => php(),
  php3: () => php(),
  php4: () => php(),
  php5: () => php(),
  php7: () => php(),
  phtml: () => php(),
  pig: () => StreamLanguage.define(pig),
  pl: () => StreamLanguage.define(perl),
  pls: () => SQL.sql({ dialect: SQL.PLSQL }),
  pm: () => StreamLanguage.define(perl),
  pp: () => StreamLanguage.define(puppet),
  pro: () => StreamLanguage.define(idl),
  properties: () => StreamLanguage.define(properties),
  proto: () => StreamLanguage.define(protobuf),
  ps1: () => StreamLanguage.define(powerShell),
  psd1: () => StreamLanguage.define(powerShell),
  psm1: () => StreamLanguage.define(powerShell),
  pug: () => StreamLanguage.define(pug),
  pxd: () => StreamLanguage.define(cython),
  pxi: () => StreamLanguage.define(cython),
  py: () => python(),
  python: () => python(),
  pyw: () => python(),
  pyx: () => StreamLanguage.define(cython),
  q: () => StreamLanguage.define(q),
  r: () => StreamLanguage.define(r),
  R: () => StreamLanguage.define(r),
  rb: () => StreamLanguage.define(ruby),
  rq: () => StreamLanguage.define(sparql),
  rs: () => rust(),
  s: () => StreamLanguage.define(gas),
  sas: () => StreamLanguage.define(sas),
  sass: () => sass({ indented: true }),
  scala: () => StreamLanguage.define(scala),
  scm: () => StreamLanguage.define(scheme),
  scss: () => sass(),
  sh: () => StreamLanguage.define(shell),
  sieve: () => StreamLanguage.define(sieve),
  sig: () => StreamLanguage.define(sml),
  siv: () => StreamLanguage.define(sieve),
  smackspec: () => StreamLanguage.define(sml),
  sml: () => StreamLanguage.define(sml),
  solidity: () => solidity,
  sparql: () => StreamLanguage.define(sparql),
  spec: () => StreamLanguage.define(rpmSpec),
  sql: () => SQL.sql({ dialect: SQL.StandardSQL }),
  ss: () => StreamLanguage.define(scheme),
  st: () => StreamLanguage.define(smalltalk),
  styl: () => StreamLanguage.define(stylus),
  sv: () => StreamLanguage.define(verilog),
  svelte: () => svelte(),
  svg: () => xml(),
  svh: () => StreamLanguage.define(verilog),
  swift: () => StreamLanguage.define(swift),
  tcl: () => StreamLanguage.define(tcl),
  tex: () => StreamLanguage.define(stex),
  text: () => StreamLanguage.define(stex),
  textile: () => StreamLanguage.define(textile),
  toml: () => StreamLanguage.define(toml),
  ts: () => javascript({ typescript: true }),
  tsx: () => javascript({ jsx: true, typescript: true }),
  ttcn: () => StreamLanguage.define(ttcn),
  ttcn3: () => StreamLanguage.define(ttcn),
  ttcnpp: () => StreamLanguage.define(ttcn),
  ttl: () => StreamLanguage.define(turtle),
  v: () => StreamLanguage.define(verilog),
  vb: () => StreamLanguage.define(vb),
  vbs: () => StreamLanguage.define(vbScript),
  vhd: () => StreamLanguage.define(vhdl),
  vhdl: () => StreamLanguage.define(vhdl),
  vtl: () => StreamLanguage.define(velocity),
  vue: () => vue(),
  wast: () => wast(),
  wat: () => wast(),
  webidl: () => StreamLanguage.define(webIDL),
  wl: () => StreamLanguage.define(mathematica),
  wls: () => StreamLanguage.define(mathematica),
  xml: () => xml(),
  xq: () => StreamLanguage.define(xQuery),
  xqm: () => StreamLanguage.define(xQuery),
  xquery: () => StreamLanguage.define(xQuery),
  xqy: () => StreamLanguage.define(xQuery),
  xsd: () => xml(),
  xsl: () => xml(),
  xu: () => StreamLanguage.define(xu),
  xy: () => StreamLanguage.define(xQuery),
  yaml: () => yaml(),
  yml: () => yaml(),
  ys: () => StreamLanguage.define(yacas),
  z80: () => StreamLanguage.define(z80),
} satisfies Record<string, () => LanguageSupport | StreamLanguage<unknown>>;

export const langNames = Object.keys(langs) as LanguageName[];

export type LanguageName = keyof typeof langs;
export function loadLanguage(name: LanguageName) {
  return langs[name] ? langs[name]() : null;
}
