//!
//! THIS FILE IS GENERATED USING CODE - DO NOT EDIT MANUALLY
//!

#[allow(clippy::too_many_lines)]
#[inline]
pub fn language_to_ext(language: &str) -> Option<&'static str> {
    #[allow(clippy::match_same_arms)]
    match language.to_lowercase().as_str() {
        "1c enterprise" => Some(".bsl"),
        "2-dimensional array" => Some(".2da"),
        "4d" => Some(".4dm"),
        "abap cds" => Some(".asddls"),
        "abap" => Some(".abap"),
        "abl" => Some(".p"),
        "abnf" => Some(".abnf"),
        "acfm" => Some(".afm"),
        "aconf" => Some(".apacheconf"),
        "actionscript 3" => Some(".as"),
        "actionscript" => Some(".as"),
        "actionscript3" => Some(".as"),
        "ad block filters" => Some(".txt"),
        "ad block" => Some(".txt"),
        "ada" => Some(".adb"),
        "ada2005" => Some(".adb"),
        "ada95" => Some(".adb"),
        "adb" => Some(".txt"),
        "adblock filter list" => Some(".txt"),
        "adblock" => Some(".txt"),
        "adobe composite font metrics" => Some(".afm"),
        "adobe font metrics" => Some(".afm"),
        "adobe multiple font metrics" => Some(".afm"),
        "advpl" => Some(".prg"),
        "afdko" => Some(".fea"),
        "agda" => Some(".agda"),
        "ags script" => Some(".asc"),
        "ags" => Some(".asc"),
        "ahk" => Some(".ahk"),
        "aidl" => Some(".aidl"),
        "aiken" => Some(".ak"),
        "al" => Some(".al"),
        "algol" => Some(".alg"),
        "alloy" => Some(".als"),
        "altium designer" => Some(".OutJob"),
        "altium" => Some(".OutJob"),
        "amfm" => Some(".afm"),
        "ampl" => Some(".ampl"),
        "amusewiki" => Some(".muse"),
        "angelscript" => Some(".as"),
        "answer set programming" => Some(".lp"),
        "antlers" => Some(".antlers.html"),
        "antlr" => Some(".g4"),
        "apache" => Some(".apacheconf"),
        "apacheconf" => Some(".apacheconf"),
        "apex" => Some(".cls"),
        "api blueprint" => Some(".apib"),
        "apl" => Some(".apl"),
        "apollo guidance computer" => Some(".agc"),
        "applescript" => Some(".applescript"),
        "arc" => Some(".arc"),
        "arexx" => Some(".rexx"),
        "as3" => Some(".as"),
        "ascii stl" => Some(".stl"),
        "asciidoc" => Some(".asciidoc"),
        "asl" => Some(".asl"),
        "asm" => Some(".asm"),
        "asn.1" => Some(".asn"),
        "asp" => Some(".asp"),
        "asp.net" => Some(".asax"),
        "aspectj" => Some(".aj"),
        "aspx" => Some(".asax"),
        "aspx-vb" => Some(".asax"),
        "assembly" => Some(".asm"),
        "astro" => Some(".astro"),
        "asymptote" => Some(".asy"),
        "ats" => Some(".dats"),
        "ats2" => Some(".dats"),
        "au3" => Some(".au3"),
        "augeas" => Some(".aug"),
        "autoconf" => Some(".m4"),
        "autohotkey" => Some(".ahk"),
        "autoit" => Some(".au3"),
        "autoit3" => Some(".au3"),
        "autoitscript" => Some(".au3"),
        "avro idl" => Some(".avdl"),
        "awk" => Some(".awk"),
        "b (formal method)" => Some(".mch"),
        "b3d" => Some(".bb"),
        "b4x" => Some(".bas"),
        "ballerina" => Some(".bal"),
        "bash session" => Some(".sh-session"),
        "bash" => Some(".sh"),
        "basic for android" => Some(".bas"),
        "basic" => Some(".bas"),
        "bat" => Some(".bat"),
        "batch" => Some(".bat"),
        "batchfile" => Some(".bat"),
        "bazel" => Some(".bzl"),
        "be" => Some(".be"),
        "beef" => Some(".bf"),
        "befunge" => Some(".befunge"),
        "berry" => Some(".be"),
        "bh" => Some(".bs"),
        "bibtex style" => Some(".bst"),
        "bibtex" => Some(".bib"),
        "bicep" => Some(".bicep"),
        "bikeshed" => Some(".bs"),
        "bison" => Some(".bison"),
        "bitbake" => Some(".bb"),
        "blade" => Some(".blade"),
        "blitz3d" => Some(".bb"),
        "blitzbasic" => Some(".bb"),
        "blitzmax" => Some(".bmx"),
        "blitzplus" => Some(".bb"),
        "bluespec bh" => Some(".bs"),
        "bluespec bsv" => Some(".bsv"),
        "bluespec classic" => Some(".bs"),
        "bluespec" => Some(".bsv"),
        "bmax" => Some(".bmx"),
        "boo" => Some(".boo"),
        "boogie" => Some(".bpl"),
        "bplus" => Some(".bb"),
        "bqn" => Some(".bqn"),
        "brainfuck" => Some(".b"),
        "brighterscript" => Some(".bs"),
        "brightscript" => Some(".brs"),
        "bro" => Some(".zeek"),
        "bru" => Some(".bru"),
        "bsdmake" => Some(".mak"),
        "bsv" => Some(".bsv"),
        "buildstream" => Some(".bst"),
        "byond" => Some(".dm"),
        "bzl" => Some(".bzl"),
        "c" => Some(".c"),
        "c#" => Some(".cs"),
        "c++" => Some(".cpp"),
        "c++-objdump" => Some(".cppobjdump"),
        "c-objdump" => Some(".c-objdump"),
        "c2hs haskell" => Some(".chs"),
        "c2hs" => Some(".chs"),
        "c3" => Some(".c3"),
        "cabal config" => Some(".cabal"),
        "cabal" => Some(".cabal"),
        "caddy" => Some(".caddyfile"),
        "caddyfile" => Some(".caddyfile"),
        "cadence" => Some(".cdc"),
        "cairo zero" => Some(".cairo"),
        "cairo" => Some(".cairo"),
        "cake" => Some(".cs"),
        "cakescript" => Some(".cs"),
        "cameligo" => Some(".mligo"),
        "cangjie" => Some(".cj"),
        "cap cds" => Some(".cds"),
        "cap'n proto" => Some(".capnp"),
        "carbon" => Some(".carbon"),
        "carto" => Some(".mss"),
        "cartocss" => Some(".mss"),
        "cds" => Some(".cds"),
        "ceylon" => Some(".ceylon"),
        "cfc" => Some(".cfc"),
        "cfm" => Some(".cfm"),
        "cfml" => Some(".cfm"),
        "chapel" => Some(".chpl"),
        "charity" => Some(".ch"),
        "checksum" => Some(".crc32"),
        "checksums" => Some(".crc32"),
        "chpl" => Some(".chpl"),
        "chuck" => Some(".ck"),
        "cil" => Some(".cil"),
        "circom" => Some(".circom"),
        "cirru" => Some(".cirru"),
        "clarion" => Some(".clw"),
        "clarity" => Some(".clar"),
        "classic asp" => Some(".asp"),
        "classic qbasic" => Some(".bas"),
        "classic quickbasic" => Some(".bas"),
        "classic visual basic" => Some(".bas"),
        "clean" => Some(".icl"),
        "click" => Some(".click"),
        "clipper" => Some(".prg"),
        "clips" => Some(".clp"),
        "clojure" => Some(".clj"),
        "closure templates" => Some(".soy"),
        "clue" => Some(".clue"),
        "cmake" => Some(".cmake"),
        "cobol" => Some(".cob"),
        "coccinelle" => Some(".cocci"),
        "codeql" => Some(".ql"),
        "coffee" => Some(".coffee"),
        "coffee-script" => Some(".coffee"),
        "coffeescript" => Some(".coffee"),
        "coldfusion cfc" => Some(".cfc"),
        "coldfusion html" => Some(".cfm"),
        "coldfusion" => Some(".cfm"),
        "collada" => Some(".dae"),
        "common lisp" => Some(".lisp"),
        "common workflow language" => Some(".cwl"),
        "component pascal" => Some(".cp"),
        "conll" => Some(".conllu"),
        "conll-u" => Some(".conllu"),
        "conll-x" => Some(".conllu"),
        "console" => Some(".sh-session"),
        "containerfile" => Some(".dockerfile"),
        "cooklang" => Some(".cook"),
        "cool" => Some(".cl"),
        "coq" => Some(".v"),
        "cperl" => Some(".pl"),
        "cpp" => Some(".cpp"),
        "cpp-objdump" => Some(".cppobjdump"),
        "cql" => Some(".cql"),
        "creole" => Some(".creole"),
        "crystal" => Some(".cr"),
        "csharp" => Some(".cs"),
        "cson" => Some(".cson"),
        "csound document" => Some(".csd"),
        "csound score" => Some(".sco"),
        "csound" => Some(".orc"),
        "csound-csd" => Some(".csd"),
        "csound-orc" => Some(".orc"),
        "csound-sco" => Some(".sco"),
        "css" => Some(".css"),
        "csv" => Some(".csv"),
        "cucumber" => Some(".feature"),
        "cuda" => Some(".cu"),
        "cue sheet" => Some(".cue"),
        "cue" => Some(".cue"),
        "curry" => Some(".curry"),
        "cweb" => Some(".w"),
        "cwl" => Some(".cwl"),
        "cycript" => Some(".cy"),
        "cylc" => Some(".cylc"),
        "cypher" => Some(".cyp"),
        "cython" => Some(".pyx"),
        "d" => Some(".d"),
        "d-objdump" => Some(".d-objdump"),
        "d2" => Some(".d2"),
        "d2lang" => Some(".d2"),
        "dafny" => Some(".dfy"),
        "darcs patch" => Some(".darcspatch"),
        "dart" => Some(".dart"),
        "daslang" => Some(".das"),
        "dataweave" => Some(".dwl"),
        "dcl" => Some(".com"),
        "debian package control file" => Some(".dsc"),
        "delphi" => Some(".pas"),
        "denizenscript" => Some(".dsc"),
        "desktop" => Some(".desktop"),
        "dhall" => Some(".dhall"),
        "diff" => Some(".diff"),
        "digital command language" => Some(".com"),
        "dircolors" => Some(".dircolors"),
        "directx 3d file" => Some(".x"),
        "django" => Some(".jinja"),
        "dlang" => Some(".d"),
        "dm" => Some(".dm"),
        "dns zone" => Some(".zone"),
        "dockerfile" => Some(".dockerfile"),
        "dogescript" => Some(".djs"),
        "dosbatch" => Some(".bat"),
        "dosini" => Some(".ini"),
        "dotenv" => Some(".env"),
        "dpatch" => Some(".darcspatch"),
        "dtrace" => Some(".d"),
        "dtrace-script" => Some(".d"),
        "dylan" => Some(".dylan"),
        "e" => Some(".e"),
        "e-mail" => Some(".eml"),
        "eagle" => Some(".sch"),
        "easybuild" => Some(".eb"),
        "ebnf" => Some(".ebnf"),
        "ec" => Some(".ec"),
        "ecere projects" => Some(".epj"),
        "ecl" => Some(".ecl"),
        "eclipse" => Some(".ecl"),
        "ecmarkdown" => Some(".html"),
        "ecmarkup" => Some(".html"),
        "ecr" => Some(".ecr"),
        "edge" => Some(".edge"),
        "edgeql" => Some(".edgeql"),
        "editor-config" => Some(".editorconfig"),
        "editorconfig" => Some(".editorconfig"),
        "edje data collection" => Some(".edc"),
        "edn" => Some(".edn"),
        "eeschema schematic" => Some(".kicad_sch"),
        "eex" => Some(".html.eex"),
        "eiffel" => Some(".e"),
        "ejs" => Some(".ejs"),
        "electronic business card" => Some(".vcf"),
        "elisp" => Some(".el"),
        "elixir" => Some(".ex"),
        "elm" => Some(".elm"),
        "elvish" => Some(".elv"),
        "emacs lisp" => Some(".el"),
        "emacs muse" => Some(".muse"),
        "emacs" => Some(".el"),
        "email" => Some(".eml"),
        "emberscript" => Some(".em"),
        "eml" => Some(".eml"),
        "envrc" => Some(".sh"),
        "eq" => Some(".eq"),
        "erb" => Some(".erb"),
        "erlang" => Some(".erl"),
        "esdl" => Some(".edgeql"),
        "euphoria" => Some(".e"),
        "f#" => Some(".fs"),
        "f*" => Some(".fst"),
        "factor" => Some(".factor"),
        "fancy" => Some(".fy"),
        "fantom" => Some(".fan"),
        "faust" => Some(".dsp"),
        "fb" => Some(".bi"),
        "fennel" => Some(".fnl"),
        "figfont" => Some(".flf"),
        "figlet font" => Some(".flf"),
        "filebench wml" => Some(".f"),
        "filterscript" => Some(".fs"),
        "firrtl" => Some(".fir"),
        "fish" => Some(".fish"),
        "flex" => Some(".l"),
        "flix" => Some(".flix"),
        "fluent" => Some(".ftl"),
        "flux" => Some(".fx"),
        "formatted" => Some(".for"),
        "forth" => Some(".fth"),
        "fortran free form" => Some(".f90"),
        "fortran" => Some(".f"),
        "foxpro" => Some(".prg"),
        "freebasic" => Some(".bi"),
        "freemarker" => Some(".ftl"),
        "frege" => Some(".fr"),
        "fsharp" => Some(".fs"),
        "fstar" => Some(".fst"),
        "ftl" => Some(".ftl"),
        "fundamental" => Some(".txt"),
        "futhark" => Some(".fut"),
        "g-code" => Some(".g"),
        "game maker language" => Some(".gml"),
        "gaml" => Some(".gaml"),
        "gams" => Some(".gms"),
        "gap" => Some(".g"),
        "gas" => Some(".s"),
        "gcc machine description" => Some(".md"),
        "gdb" => Some(".gdb"),
        "gdscript" => Some(".gd"),
        "gdshader" => Some(".gdshader"),
        "gedcom" => Some(".ged"),
        "gemini" => Some(".gmi"),
        "gemtext" => Some(".gmi"),
        "genero 4gl" => Some(".4gl"),
        "genero per" => Some(".per"),
        "genie" => Some(".gs"),
        "genshi" => Some(".kid"),
        "gentoo ebuild" => Some(".ebuild"),
        "gentoo eclass" => Some(".eclass"),
        "geojson" => Some(".json"),
        "gerber image" => Some(".gbr"),
        "gettext catalog" => Some(".po"),
        "gf" => Some(".gf"),
        "gherkin" => Some(".feature"),
        "git config" => Some(".gitconfig"),
        "git-ignore" => Some(".gitignore"),
        "gitconfig" => Some(".gitconfig"),
        "gitignore" => Some(".gitignore"),
        "gitmodules" => Some(".gitconfig"),
        "gjs" => Some(".gjs"),
        "gleam" => Some(".gleam"),
        "glimmer js" => Some(".gjs"),
        "glimmer ts" => Some(".gts"),
        "glsl" => Some(".glsl"),
        "glyph bitmap distribution format" => Some(".bdf"),
        "glyph" => Some(".glf"),
        "gn" => Some(".gn"),
        "gnu asm" => Some(".s"),
        "gnuplot" => Some(".gp"),
        "go template" => Some(".gohtml"),
        "go" => Some(".go"),
        "godot resource" => Some(".gdnlib"),
        "golang" => Some(".go"),
        "golo" => Some(".golo"),
        "gosu" => Some(".gs"),
        "gotmpl" => Some(".gohtml"),
        "grace" => Some(".grace"),
        "gradle kotlin dsl" => Some(".gradle.kts"),
        "gradle" => Some(".gradle"),
        "grammatical framework" => Some(".gf"),
        "graph modeling language" => Some(".gml"),
        "graphql" => Some(".graphql"),
        "graphviz (dot)" => Some(".dot"),
        "groff" => Some(".roff"),
        "groovy server pages" => Some(".gsp"),
        "groovy" => Some(".groovy"),
        "gsc" => Some(".gsc"),
        "gsp" => Some(".gsp"),
        "gts" => Some(".gts"),
        "hack" => Some(".hack"),
        "haml" => Some(".haml"),
        "handlebars" => Some(".handlebars"),
        "haproxy" => Some(".cfg"),
        "harbour" => Some(".hb"),
        "hare" => Some(".ha"),
        "hash" => Some(".crc32"),
        "hashes" => Some(".crc32"),
        "hashicorp configuration language" => Some(".hcl"),
        "haskell" => Some(".hs"),
        "haxe" => Some(".hx"),
        "hbs" => Some(".handlebars"),
        "hcl" => Some(".hcl"),
        "heex" => Some(".html.eex"),
        "help" => Some(".txt"),
        "hip" => Some(".hip"),
        "hiveql" => Some(".q"),
        "hls playlist" => Some(".m3u"),
        "hlsl" => Some(".hlsl"),
        "hocon" => Some(".hocon"),
        "holyc" => Some(".hc"),
        "hoon" => Some(".hoon"),
        "html" => Some(".html"),
        "html+django" => Some(".jinja"),
        "html+ecr" => Some(".ecr"),
        "html+eex" => Some(".html.eex"),
        "html+erb" => Some(".erb"),
        "html+jinja" => Some(".jinja"),
        "html+php" => Some(".phtml"),
        "html+razor" => Some(".cshtml"),
        "html+ruby" => Some(".erb"),
        "htmlbars" => Some(".handlebars"),
        "htmldjango" => Some(".jinja"),
        "http" => Some(".http"),
        "hurl" => Some(".hurl"),
        "hxml" => Some(".hxml"),
        "hy" => Some(".hy"),
        "hylang" => Some(".hy"),
        "hyphy" => Some(".bf"),
        "i7" => Some(".ni"),
        "ical" => Some(".ics"),
        "icalendar" => Some(".ics"),
        "idl" => Some(".pro"),
        "idris" => Some(".idr"),
        "ignore list" => Some(".gitignore"),
        "ignore" => Some(".gitignore"),
        "igor pro" => Some(".ipf"),
        "igor" => Some(".ipf"),
        "igorpro" => Some(".ipf"),
        "ijm" => Some(".ijm"),
        "ile rpg" => Some(".rpgle"),
        "imagej macro" => Some(".ijm"),
        "imba" => Some(".imba"),
        "inc" => Some(".php"),
        "inform 7" => Some(".ni"),
        "inform7" => Some(".ni"),
        "ini" => Some(".ini"),
        "ink" => Some(".ink"),
        "inno setup" => Some(".iss"),
        "io" => Some(".io"),
        "ioke" => Some(".ik"),
        "ipython notebook" => Some(".ipynb"),
        "irc log" => Some(".irclog"),
        "irc logs" => Some(".irclog"),
        "irc" => Some(".irclog"),
        "isabelle" => Some(".thy"),
        "ispc" => Some(".ispc"),
        "j" => Some(".ijs"),
        "jac" => Some(".jac"),
        "jai" => Some(".jai"),
        "janet" => Some(".janet"),
        "jasmin" => Some(".j"),
        "java properties" => Some(".properties"),
        "java server page" => Some(".gsp"),
        "java server pages" => Some(".jsp"),
        "java template engine" => Some(".jte"),
        "java" => Some(".java"),
        "javascript" => Some(".js"),
        "javascript+erb" => Some(".js.erb"),
        "jcl" => Some(".jcl"),
        "jest snapshot" => Some(".snap"),
        "jetbrains mps" => Some(".mps"),
        "jflex" => Some(".flex"),
        "jinja" => Some(".jinja"),
        "jison lex" => Some(".jisonlex"),
        "jison" => Some(".jison"),
        "jolie" => Some(".ol"),
        "jq" => Some(".jq"),
        "jruby" => Some(".rb"),
        "js" => Some(".js"),
        "json with comments" => Some(".jsonc"),
        "json" => Some(".json"),
        "json5" => Some(".json5"),
        "jsonc" => Some(".jsonc"),
        "jsoniq" => Some(".jq"),
        "jsonl" => Some(".json"),
        "jsonld" => Some(".jsonld"),
        "jsonnet" => Some(".jsonnet"),
        "jsp" => Some(".jsp"),
        "jte" => Some(".jte"),
        "julia" => Some(".jl"),
        "jupyter notebook" => Some(".ipynb"),
        "just" => Some(".just"),
        "justfile" => Some(".just"),
        "kaitai struct" => Some(".ksy"),
        "kak" => Some(".kak"),
        "kakounescript" => Some(".kak"),
        "kakscript" => Some(".kak"),
        "kcl" => Some(".k"),
        "kdl" => Some(".kdl"),
        "kerboscript" => Some(".ks"),
        "keyvalues" => Some(".vdf"),
        "kframework" => Some(".k"),
        "kicad layout" => Some(".kicad_pcb"),
        "kicad legacy layout" => Some(".brd"),
        "kicad schematic" => Some(".kicad_sch"),
        "kickstart" => Some(".ks"),
        "kit" => Some(".kit"),
        "koka" => Some(".kk"),
        "kolmafia ash" => Some(".ash"),
        "kotlin" => Some(".kt"),
        "krl" => Some(".krl"),
        "ksy" => Some(".ksy"),
        "kusto" => Some(".csl"),
        "kvlang" => Some(".kv"),
        "labview" => Some(".lvproj"),
        "lambdapi" => Some(".lp"),
        "langium" => Some(".langium"),
        "lark" => Some(".lark"),
        "lasso" => Some(".lasso"),
        "lassoscript" => Some(".lasso"),
        "latex" => Some(".tex"),
        "latte" => Some(".latte"),
        "lean 4" => Some(".lean"),
        "lean" => Some(".lean"),
        "lean4" => Some(".lean"),
        "leex" => Some(".html.eex"),
        "leo" => Some(".leo"),
        "less" => Some(".less"),
        "less-css" => Some(".less"),
        "lex" => Some(".l"),
        "lfe" => Some(".lfe"),
        "lhaskell" => Some(".lhs"),
        "lhs" => Some(".lhs"),
        "ligolang" => Some(".ligo"),
        "lilypond" => Some(".ly"),
        "limbo" => Some(".b"),
        "linear programming" => Some(".lp"),
        "linker script" => Some(".ld"),
        "linux kernel module" => Some(".mod"),
        "liquid" => Some(".liquid"),
        "lisp" => Some(".lisp"),
        "litcoffee" => Some(".litcoffee"),
        "literate agda" => Some(".lagda"),
        "literate coffeescript" => Some(".litcoffee"),
        "literate haskell" => Some(".lhs"),
        "live-script" => Some(".ls"),
        "livecode script" => Some(".livecodescript"),
        "livescript" => Some(".ls"),
        "llvm" => Some(".ll"),
        "logos" => Some(".xm"),
        "logtalk" => Some(".lgt"),
        "lolcode" => Some(".lol"),
        "lookml" => Some(".lkml"),
        "loomscript" => Some(".ls"),
        "ls" => Some(".ls"),
        "lsl" => Some(".lsl"),
        "ltspice symbol" => Some(".asy"),
        "lua" => Some(".lua"),
        "luau" => Some(".luau"),
        "m" => Some(".mumps"),
        "m2" => Some(".m2"),
        "m3u playlist" => Some(".m3u"),
        "m3u" => Some(".m3u"),
        "m4" => Some(".m4"),
        "m4sugar" => Some(".m4"),
        "m68k" => Some(".asm"),
        "macaulay2" => Some(".m2"),
        "macruby" => Some(".rb"),
        "mail" => Some(".eml"),
        "make" => Some(".mak"),
        "makefile" => Some(".mak"),
        "mako" => Some(".mako"),
        "man page" => Some(".roff"),
        "man" => Some(".roff"),
        "man-page" => Some(".roff"),
        "manpage" => Some(".roff"),
        "markdown" => Some(".md"),
        "marko" => Some(".marko"),
        "markojs" => Some(".marko"),
        "mask" => Some(".mask"),
        "mathematica" => Some(".mathematica"),
        "mathematical programming system" => Some(".mps"),
        "matlab" => Some(".matlab"),
        "max" => Some(".maxpat"),
        "max/msp" => Some(".maxpat"),
        "maxmsp" => Some(".maxpat"),
        "maxscript" => Some(".ms"),
        "mbox" => Some(".eml"),
        "mcfunction" => Some(".mcfunction"),
        "md" => Some(".md"),
        "mdoc" => Some(".roff"),
        "mdsvex" => Some(".svx"),
        "mdx" => Some(".mdx"),
        "mediawiki" => Some(".mediawiki"),
        "mercury" => Some(".m"),
        "mermaid example" => Some(".mmd"),
        "mermaid" => Some(".mmd"),
        "metal" => Some(".metal"),
        "mf" => Some(".mak"),
        "microsoft developer studio project" => Some(".dsp"),
        "microsoft visual studio solution" => Some(".sln"),
        "minid" => Some(".minid"),
        "miniyaml" => Some(".yaml"),
        "minizinc data" => Some(".dzn"),
        "minizinc" => Some(".mzn"),
        "mint" => Some(".mint"),
        "mirah" => Some(".druby"),
        "mirc script" => Some(".mrc"),
        "mlir" => Some(".mlir"),
        "mma" => Some(".mathematica"),
        "modelica" => Some(".mo"),
        "modula-2" => Some(".mod"),
        "modula-3" => Some(".i3"),
        "module management system" => Some(".mms"),
        "mojo" => Some(".mojo"),
        "monkey c" => Some(".mc"),
        "monkey" => Some(".monkey"),
        "moocode" => Some(".moo"),
        "moonbit" => Some(".mbt"),
        "moonscript" => Some(".moon"),
        "motoko" => Some(".mo"),
        "motorola 68k assembly" => Some(".asm"),
        "move" => Some(".move"),
        "mps" => Some(".mps"),
        "mql4" => Some(".mq4"),
        "mql5" => Some(".mq5"),
        "mtml" => Some(".mtml"),
        "muf" => Some(".muf"),
        "mumps" => Some(".mumps"),
        "mupad" => Some(".mu"),
        "muse" => Some(".muse"),
        "mustache" => Some(".mustache"),
        "myghty" => Some(".myt"),
        "nanorc" => Some(".nanorc"),
        "nargo" => Some(".nr"),
        "nasal" => Some(".nas"),
        "nasl" => Some(".nasl"),
        "nasm" => Some(".asm"),
        "ncl" => Some(".ncl"),
        "ne-on" => Some(".neon"),
        "nearley" => Some(".ne"),
        "nemerle" => Some(".n"),
        "neon" => Some(".neon"),
        "neosnippet" => Some(".snip"),
        "nesc" => Some(".nc"),
        "netlinx" => Some(".axs"),
        "netlinx+erb" => Some(".axs.erb"),
        "netlogo" => Some(".nlogo"),
        "nette object notation" => Some(".neon"),
        "newlisp" => Some(".nl"),
        "nextflow" => Some(".nf"),
        "nginx configuration file" => Some(".nginx"),
        "nginx" => Some(".nginx"),
        "nickel" => Some(".ncl"),
        "nim" => Some(".nim"),
        "ninja" => Some(".ninja"),
        "nit" => Some(".nit"),
        "nix" => Some(".nix"),
        "nixos" => Some(".nix"),
        "njk" => Some(".njk"),
        "nl" => Some(".nl"),
        "nmodl" => Some(".mod"),
        "node" => Some(".js"),
        "noir" => Some(".nr"),
        "nroff" => Some(".roff"),
        "nsis" => Some(".nsi"),
        "nu" => Some(".nu"),
        "nu-script" => Some(".nu"),
        "numpy" => Some(".numpy"),
        "nunjucks" => Some(".njk"),
        "nush" => Some(".nu"),
        "nushell" => Some(".nu"),
        "nushell-script" => Some(".nu"),
        "nvim" => Some(".vim"),
        "nwscript" => Some(".nss"),
        "oasv2-json" => Some(".json"),
        "oasv2-yaml" => Some(".yaml"),
        "oasv3-json" => Some(".json"),
        "oasv3-yaml" => Some(".yaml"),
        "oberon" => Some(".ob2"),
        "obj-c" => Some(".m"),
        "obj-c++" => Some(".mm"),
        "obj-j" => Some(".j"),
        "objc" => Some(".m"),
        "objc++" => Some(".mm"),
        "objdump" => Some(".objdump"),
        "object data instance notation" => Some(".odin"),
        "objective-c" => Some(".m"),
        "objective-c++" => Some(".mm"),
        "objective-j" => Some(".j"),
        "objectivec" => Some(".m"),
        "objectivec++" => Some(".mm"),
        "objectivej" => Some(".j"),
        "objectpascal" => Some(".pas"),
        "objectscript" => Some(".cls"),
        "objj" => Some(".j"),
        "ocaml" => Some(".ml"),
        "octave" => Some(".matlab"),
        "odin" => Some(".odin"),
        "odin-lang" => Some(".odin"),
        "odinlang" => Some(".odin"),
        "omgrofl" => Some(".omgrofl"),
        "omnet++ msg" => Some(".msg"),
        "omnet++ ned" => Some(".ned"),
        "omnetpp-msg" => Some(".msg"),
        "omnetpp-ned" => Some(".ned"),
        "oncrpc" => Some(".x"),
        "ooc" => Some(".ooc"),
        "opa" => Some(".opa"),
        "opal" => Some(".opal"),
        "open policy agent" => Some(".rego"),
        "opencl" => Some(".cl"),
        "openedge abl" => Some(".p"),
        "openedge" => Some(".p"),
        "openqasm" => Some(".qasm"),
        "openscad" => Some(".scad"),
        "openstep property list" => Some(".plist"),
        "opentofu" => Some(".hcl"),
        "opentype feature file" => Some(".fea"),
        "org" => Some(".org"),
        "osascript" => Some(".applescript"),
        "overpassql" => Some(".overpassql"),
        "ox" => Some(".ox"),
        "oxygene" => Some(".oxygene"),
        "oz" => Some(".oz"),
        "p4" => Some(".p4"),
        "pact" => Some(".pact"),
        "pan" => Some(".pan"),
        "pandoc" => Some(".md"),
        "papyrus" => Some(".psc"),
        "parrot assembly" => Some(".pasm"),
        "parrot internal representation" => Some(".pir"),
        "parrot" => Some(".parrot"),
        "pascal" => Some(".pas"),
        "pasm" => Some(".pasm"),
        "pawn" => Some(".pwn"),
        "pcbnew" => Some(".kicad_pcb"),
        "pddl" => Some(".pddl"),
        "peg.js" => Some(".pegjs"),
        "pep8" => Some(".pep"),
        "perl" => Some(".pl"),
        "perl-6" => Some(".6pl"),
        "perl6" => Some(".6pl"),
        "php" => Some(".php"),
        "pic" => Some(".pic"),
        "pickle" => Some(".pkl"),
        "picolisp" => Some(".l"),
        "piglatin" => Some(".pig"),
        "pikchr" => Some(".pic"),
        "pike" => Some(".pike"),
        "pir" => Some(".pir"),
        "pkl" => Some(".pkl"),
        "plain text" => Some(".txt"),
        "plantuml" => Some(".puml"),
        "plpgsql" => Some(".pgsql"),
        "plsql" => Some(".pls"),
        "pod 6" => Some(".pod"),
        "pod" => Some(".pod"),
        "pogoscript" => Some(".pogo"),
        "polar" => Some(".polar"),
        "pony" => Some(".pony"),
        "portugol" => Some(".por"),
        "posh" => Some(".ps1"),
        "postcss" => Some(".pcss"),
        "postscr" => Some(".ps"),
        "postscript" => Some(".ps"),
        "pot" => Some(".po"),
        "pov-ray sdl" => Some(".pov"),
        "pov-ray" => Some(".pov"),
        "povray" => Some(".pov"),
        "powerbuilder" => Some(".pbt"),
        "powershell" => Some(".ps1"),
        "praat" => Some(".praat"),
        "prisma" => Some(".prisma"),
        "processing" => Some(".pde"),
        "progress" => Some(".p"),
        "proguard" => Some(".pro"),
        "prolog" => Some(".pl"),
        "promela" => Some(".pml"),
        "propeller spin" => Some(".spin"),
        "proto" => Some(".proto"),
        "protobuf text format" => Some(".textproto"),
        "protobuf" => Some(".proto"),
        "protocol buffer text format" => Some(".textproto"),
        "protocol buffer" => Some(".proto"),
        "protocol buffers" => Some(".proto"),
        "public key" => Some(".asc"),
        "pug" => Some(".jade"),
        "puppet" => Some(".pp"),
        "pure data" => Some(".pd"),
        "purebasic" => Some(".pb"),
        "purescript" => Some(".purs"),
        "pwsh" => Some(".ps1"),
        "pyret" => Some(".arr"),
        "pyrex" => Some(".pyx"),
        "python traceback" => Some(".pytb"),
        "python" => Some(".py"),
        "python3" => Some(".py"),
        "q" => Some(".q"),
        "q#" => Some(".qs"),
        "qb" => Some(".bas"),
        "qb64" => Some(".bas"),
        "qbasic" => Some(".bas"),
        "ql" => Some(".ql"),
        "qmake" => Some(".pro"),
        "qml" => Some(".qml"),
        "qsharp" => Some(".qs"),
        "qt script" => Some(".qs"),
        "quakec" => Some(".qc"),
        "quickbasic" => Some(".bas"),
        "r" => Some(".r"),
        "racket" => Some(".rkt"),
        "ragel" => Some(".rl"),
        "ragel-rb" => Some(".rl"),
        "ragel-ruby" => Some(".rl"),
        "rake" => Some(".rb"),
        "raku" => Some(".6pl"),
        "raml" => Some(".raml"),
        "rascal" => Some(".rsc"),
        "rascript" => Some(".rascript"),
        "raw token data" => Some(".raw"),
        "raw" => Some(".raw"),
        "razor" => Some(".cshtml"),
        "rb" => Some(".rb"),
        "rbs" => Some(".rbs"),
        "rbx" => Some(".rb"),
        "rdoc" => Some(".rdoc"),
        "realbasic" => Some(".rbbas"),
        "reason" => Some(".re"),
        "reasonligo" => Some(".religo"),
        "rebol" => Some(".reb"),
        "red" => Some(".red"),
        "red/system" => Some(".red"),
        "redcode" => Some(".cw"),
        "regex" => Some(".regexp"),
        "regexp" => Some(".regexp"),
        "regular expression" => Some(".regexp"),
        "ren'py" => Some(".rpy"),
        "renderscript" => Some(".rs"),
        "renpy" => Some(".rpy"),
        "rescript" => Some(".res"),
        "restructuredtext" => Some(".rst"),
        "rexx" => Some(".rexx"),
        "rez" => Some(".r"),
        "rhtml" => Some(".erb"),
        "rich text format" => Some(".rtf"),
        "ring" => Some(".ring"),
        "riot" => Some(".riot"),
        "rmarkdown" => Some(".qmd"),
        "robotframework" => Some(".robot"),
        "roc" => Some(".roc"),
        "rocq prover" => Some(".v"),
        "rocq" => Some(".v"),
        "roff manpage" => Some(".1"),
        "roff" => Some(".roff"),
        "ron" => Some(".ron"),
        "ros interface" => Some(".msg"),
        "rosmsg" => Some(".msg"),
        "rouge" => Some(".rg"),
        "routeros script" => Some(".rsc"),
        "rpc" => Some(".x"),
        "rpcgen" => Some(".x"),
        "rpgle" => Some(".rpgle"),
        "rpm spec" => Some(".spec"),
        "rs" => Some(".rs"),
        "rs-274x" => Some(".gbr"),
        "rscript" => Some(".r"),
        "rss" => Some(".xml"),
        "rst" => Some(".rst"),
        "ruby" => Some(".rb"),
        "runoff" => Some(".rnh"),
        "rust" => Some(".rs"),
        "rusthon" => Some(".py"),
        "sage" => Some(".sage"),
        "sail" => Some(".sail"),
        "salt" => Some(".sls"),
        "saltstack" => Some(".sls"),
        "saltstate" => Some(".sls"),
        "sarif" => Some(".json"),
        "sas" => Some(".sas"),
        "sass" => Some(".sass"),
        "scala" => Some(".scala"),
        "scaml" => Some(".scaml"),
        "scenic" => Some(".scenic"),
        "scheme" => Some(".scm"),
        "scilab" => Some(".sci"),
        "scss" => Some(".scss"),
        "sdc" => Some(".tcl"),
        "sed" => Some(".sed"),
        "self" => Some(".self"),
        "selinux kernel policy language" => Some(".te"),
        "selinux policy" => Some(".te"),
        "sepolicy" => Some(".te"),
        "sfv" => Some(".sfv"),
        "sh" => Some(".sh"),
        "shaderlab" => Some(".shader"),
        "shell" => Some(".sh"),
        "shell-script" => Some(".sh"),
        "shellsession" => Some(".sh-session"),
        "shen" => Some(".shen"),
        "sieve" => Some(".sieve"),
        "simple file verification" => Some(".sfv"),
        "slang" => Some(".slang"),
        "slash" => Some(".sl"),
        "slice" => Some(".ice"),
        "slim" => Some(".slim"),
        "slint" => Some(".slint"),
        "smali" => Some(".smali"),
        "smalltalk" => Some(".st"),
        "smarty" => Some(".tpl"),
        "smithy" => Some(".smithy"),
        "sml" => Some(".ml"),
        "smpl" => Some(".cocci"),
        "smt" => Some(".smt2"),
        "snakefile" => Some(".smk"),
        "snakemake" => Some(".smk"),
        "snipmate" => Some(".snip"),
        "snippet" => Some(".yasnippet"),
        "solidity" => Some(".sol"),
        "sourcemod" => Some(".sp"),
        "sourcepawn" => Some(".sp"),
        "soy" => Some(".soy"),
        "sparql" => Some(".sparql"),
        "specfile" => Some(".spec"),
        "spline font database" => Some(".sfd"),
        "splus" => Some(".r"),
        "sqf" => Some(".sqf"),
        "sql" => Some(".sql"),
        "sqlpl" => Some(".sql"),
        "sqlrpgle" => Some(".rpgle"),
        "squeak" => Some(".st"),
        "squirrel" => Some(".nut"),
        "srecode template" => Some(".srt"),
        "stan" => Some(".stan"),
        "standard ml" => Some(".ml"),
        "star" => Some(".star"),
        "starlark" => Some(".bzl"),
        "stata" => Some(".do"),
        "stl" => Some(".stl"),
        "stla" => Some(".stl"),
        "ston" => Some(".ston"),
        "stringtemplate" => Some(".st"),
        "stylus" => Some(".styl"),
        "subrip text" => Some(".srt"),
        "sugarss" => Some(".sss"),
        "sum" => Some(".crc32"),
        "sums" => Some(".crc32"),
        "supercollider" => Some(".sc"),
        "surql" => Some(".surql"),
        "surrealql" => Some(".surql"),
        "survex data" => Some(".svx"),
        "svelte" => Some(".svelte"),
        "svg" => Some(".svg"),
        "sway" => Some(".sw"),
        "sweave" => Some(".rnw"),
        "swift" => Some(".swift"),
        "swig" => Some(".i"),
        "systemverilog" => Some(".sv"),
        "tab-seperated values" => Some(".tsv"),
        "tabular model definition language" => Some(".tmdl"),
        "tact" => Some(".tact"),
        "talon" => Some(".talon"),
        "tcl" => Some(".tcl"),
        "tcsh" => Some(".tcsh"),
        "tea" => Some(".tea"),
        "teal" => Some(".tl"),
        "templ" => Some(".templ"),
        "terra" => Some(".t"),
        "terraform template" => Some(".tftpl"),
        "terraform" => Some(".hcl"),
        "tex" => Some(".tex"),
        "texinfo" => Some(".texinfo"),
        "text proto" => Some(".textproto"),
        "text" => Some(".txt"),
        "textgrid" => Some(".TextGrid"),
        "textile" => Some(".textile"),
        "thrift" => Some(".thrift"),
        "ti program" => Some(".8xp"),
        "tl" => Some(".tl"),
        "tl-verilog" => Some(".tlv"),
        "tla" => Some(".tla"),
        "tmdl" => Some(".tmdl"),
        "toit" => Some(".toit"),
        "toml" => Some(".toml"),
        "topojson" => Some(".json"),
        "traveling salesman problem" => Some(".tsp"),
        "travelling salesman problem" => Some(".tsp"),
        "tree-sitter query" => Some(".scm"),
        "troff" => Some(".roff"),
        "ts" => Some(".ts"),
        "tsp" => Some(".tsp"),
        "tsplib data" => Some(".tsp"),
        "tsq" => Some(".scm"),
        "tsql" => Some(".sql"),
        "tsv" => Some(".tsv"),
        "tsx" => Some(".tsx"),
        "turing" => Some(".t"),
        "turtle" => Some(".ttl"),
        "twig" => Some(".twig"),
        "txl" => Some(".txl"),
        "typ" => Some(".typ"),
        "type language" => Some(".tl"),
        "typescript" => Some(".ts"),
        "typespec" => Some(".tsp"),
        "typst" => Some(".typ"),
        "udiff" => Some(".diff"),
        "ultisnip" => Some(".snip"),
        "ultisnips" => Some(".snip"),
        "unified parallel c" => Some(".upc"),
        "unity3d asset" => Some(".anim"),
        "unix asm" => Some(".s"),
        "unix assembly" => Some(".s"),
        "uno" => Some(".uno"),
        "unrealscript" => Some(".uc"),
        "untyped plutus core" => Some(".uplc"),
        "ur" => Some(".ur"),
        "ur/web" => Some(".ur"),
        "urweb" => Some(".ur"),
        "v" => Some(".v"),
        "vala" => Some(".vala"),
        "valve data format" => Some(".vdf"),
        "vb .net" => Some(".vb"),
        "vb 6" => Some(".bas"),
        "vb.net" => Some(".vb"),
        "vb6" => Some(".bas"),
        "vba" => Some(".bas"),
        "vbnet" => Some(".vb"),
        "vbscript" => Some(".vbs"),
        "vcard" => Some(".vcf"),
        "vcl" => Some(".vcl"),
        "vdf" => Some(".vdf"),
        "velocity template language" => Some(".vtl"),
        "velocity" => Some(".vtl"),
        "vento" => Some(".vto"),
        "verilog" => Some(".v"),
        "vhdl" => Some(".vhdl"),
        "vim help file" => Some(".txt"),
        "vim script" => Some(".vim"),
        "vim snippet" => Some(".snip"),
        "vim" => Some(".vim"),
        "vimhelp" => Some(".txt"),
        "viml" => Some(".vim"),
        "vimscript" => Some(".vim"),
        "virtual contact file" => Some(".vcf"),
        "visual basic .net" => Some(".vb"),
        "visual basic 6" => Some(".bas"),
        "visual basic 6.0" => Some(".bas"),
        "visual basic classic" => Some(".bas"),
        "visual basic for applications" => Some(".bas"),
        "visual basic" => Some(".vb"),
        "vlang" => Some(".v"),
        "volt" => Some(".volt"),
        "vtl" => Some(".vtl"),
        "vtt" => Some(".vtt"),
        "vue" => Some(".vue"),
        "vyper" => Some(".vy"),
        "wasm" => Some(".wast"),
        "wast" => Some(".wast"),
        "wavefront material" => Some(".mtl"),
        "wavefront object" => Some(".obj"),
        "wdl" => Some(".wdl"),
        "web ontology language" => Some(".owl"),
        "webassembly interface type" => Some(".wit"),
        "webassembly" => Some(".wast"),
        "webidl" => Some(".webidl"),
        "webvtt" => Some(".vtt"),
        "wgsl" => Some(".wgsl"),
        "whiley" => Some(".whiley"),
        "wiki" => Some(".mediawiki"),
        "wikitext" => Some(".mediawiki"),
        "win32 message file" => Some(".mc"),
        "winbatch" => Some(".bat"),
        "windows registry entries" => Some(".reg"),
        "wisp" => Some(".wisp"),
        "wit" => Some(".wit"),
        "witcher script" => Some(".ws"),
        "wl" => Some(".mathematica"),
        "wolfram lang" => Some(".mathematica"),
        "wolfram language" => Some(".mathematica"),
        "wolfram" => Some(".mathematica"),
        "wollok" => Some(".wlk"),
        "workflow description language" => Some(".wdl"),
        "world of warcraft addon data" => Some(".toc"),
        "wren" => Some(".wren"),
        "wrenlang" => Some(".wren"),
        "wsdl" => Some(".xml"),
        "x bitmap" => Some(".xbm"),
        "x pixmap" => Some(".xpm"),
        "x10" => Some(".x10"),
        "xbase" => Some(".prg"),
        "xbm" => Some(".xbm"),
        "xc" => Some(".xc"),
        "xdc" => Some(".tcl"),
        "xdr" => Some(".x"),
        "xhtml" => Some(".html"),
        "xml property list" => Some(".plist"),
        "xml" => Some(".xml"),
        "xml+genshi" => Some(".kid"),
        "xml+kid" => Some(".kid"),
        "xojo" => Some(".xojo_code"),
        "xonsh" => Some(".xsh"),
        "xpages" => Some(".xsp-config"),
        "xpm" => Some(".xpm"),
        "xproc" => Some(".xpl"),
        "xquery" => Some(".xquery"),
        "xs" => Some(".xs"),
        "xsd" => Some(".xml"),
        "xsl" => Some(".xslt"),
        "xslt" => Some(".xslt"),
        "xten" => Some(".x10"),
        "xtend" => Some(".xtend"),
        "yacc" => Some(".y"),
        "yaml" => Some(".yml"),
        "yang" => Some(".yang"),
        "yara" => Some(".yar"),
        "yas" => Some(".yasnippet"),
        "yasnippet" => Some(".yasnippet"),
        "yml" => Some(".yml"),
        "yul" => Some(".yul"),
        "zap" => Some(".zap"),
        "zeek" => Some(".zeek"),
        "zenscript" => Some(".zs"),
        "zephir" => Some(".zep"),
        "zig" => Some(".zig"),
        "zil" => Some(".zil"),
        "zimpl" => Some(".zimpl"),
        "zmodel" => Some(".zmodel"),
        "zsh" => Some(".sh"),
        _ => None,
    }
}

#[cfg(test)]
mod test_language_to_ext {
    use super::language_to_ext;

    #[allow(clippy::too_many_lines)]
    #[test]
    fn test_pairings() {
        let cases = vec![
            ("1c enterprise", ".bsl"),
            ("2-dimensional array", ".2da"),
            ("4d", ".4dm"),
            ("abap cds", ".asddls"),
            ("abap", ".abap"),
            ("abl", ".p"),
            ("abnf", ".abnf"),
            ("acfm", ".afm"),
            ("aconf", ".apacheconf"),
            ("actionscript 3", ".as"),
            ("actionscript", ".as"),
            ("actionscript3", ".as"),
            ("ad block filters", ".txt"),
            ("ad block", ".txt"),
            ("ada", ".adb"),
            ("ada2005", ".adb"),
            ("ada95", ".adb"),
            ("adb", ".txt"),
            ("adblock filter list", ".txt"),
            ("adblock", ".txt"),
            ("adobe composite font metrics", ".afm"),
            ("adobe font metrics", ".afm"),
            ("adobe multiple font metrics", ".afm"),
            ("advpl", ".prg"),
            ("afdko", ".fea"),
            ("agda", ".agda"),
            ("ags script", ".asc"),
            ("ags", ".asc"),
            ("ahk", ".ahk"),
            ("aidl", ".aidl"),
            ("aiken", ".ak"),
            ("al", ".al"),
            ("algol", ".alg"),
            ("alloy", ".als"),
            ("altium designer", ".OutJob"),
            ("altium", ".OutJob"),
            ("amfm", ".afm"),
            ("ampl", ".ampl"),
            ("amusewiki", ".muse"),
            ("angelscript", ".as"),
            ("answer set programming", ".lp"),
            ("antlers", ".antlers.html"),
            ("antlr", ".g4"),
            ("apache", ".apacheconf"),
            ("apacheconf", ".apacheconf"),
            ("apex", ".cls"),
            ("api blueprint", ".apib"),
            ("apl", ".apl"),
            ("apollo guidance computer", ".agc"),
            ("applescript", ".applescript"),
            ("arc", ".arc"),
            ("arexx", ".rexx"),
            ("as3", ".as"),
            ("ascii stl", ".stl"),
            ("asciidoc", ".asciidoc"),
            ("asl", ".asl"),
            ("asm", ".asm"),
            ("asn.1", ".asn"),
            ("asp", ".asp"),
            ("asp.net", ".asax"),
            ("aspectj", ".aj"),
            ("aspx", ".asax"),
            ("aspx-vb", ".asax"),
            ("assembly", ".asm"),
            ("astro", ".astro"),
            ("asymptote", ".asy"),
            ("ats", ".dats"),
            ("ats2", ".dats"),
            ("au3", ".au3"),
            ("augeas", ".aug"),
            ("autoconf", ".m4"),
            ("autohotkey", ".ahk"),
            ("autoit", ".au3"),
            ("autoit3", ".au3"),
            ("autoitscript", ".au3"),
            ("avro idl", ".avdl"),
            ("awk", ".awk"),
            ("b (formal method)", ".mch"),
            ("b3d", ".bb"),
            ("b4x", ".bas"),
            ("ballerina", ".bal"),
            ("bash session", ".sh-session"),
            ("bash", ".sh"),
            ("basic for android", ".bas"),
            ("basic", ".bas"),
            ("bat", ".bat"),
            ("batch", ".bat"),
            ("batchfile", ".bat"),
            ("bazel", ".bzl"),
            ("be", ".be"),
            ("beef", ".bf"),
            ("befunge", ".befunge"),
            ("berry", ".be"),
            ("bh", ".bs"),
            ("bibtex style", ".bst"),
            ("bibtex", ".bib"),
            ("bicep", ".bicep"),
            ("bikeshed", ".bs"),
            ("bison", ".bison"),
            ("bitbake", ".bb"),
            ("blade", ".blade"),
            ("blitz3d", ".bb"),
            ("blitzbasic", ".bb"),
            ("blitzmax", ".bmx"),
            ("blitzplus", ".bb"),
            ("bluespec bh", ".bs"),
            ("bluespec bsv", ".bsv"),
            ("bluespec classic", ".bs"),
            ("bluespec", ".bsv"),
            ("bmax", ".bmx"),
            ("boo", ".boo"),
            ("boogie", ".bpl"),
            ("bplus", ".bb"),
            ("bqn", ".bqn"),
            ("brainfuck", ".b"),
            ("brighterscript", ".bs"),
            ("brightscript", ".brs"),
            ("bro", ".zeek"),
            ("bru", ".bru"),
            ("bsdmake", ".mak"),
            ("bsv", ".bsv"),
            ("buildstream", ".bst"),
            ("byond", ".dm"),
            ("bzl", ".bzl"),
            ("c", ".c"),
            ("c#", ".cs"),
            ("c++", ".cpp"),
            ("c++-objdump", ".cppobjdump"),
            ("c-objdump", ".c-objdump"),
            ("c2hs haskell", ".chs"),
            ("c2hs", ".chs"),
            ("c3", ".c3"),
            ("cabal config", ".cabal"),
            ("cabal", ".cabal"),
            ("caddy", ".caddyfile"),
            ("caddyfile", ".caddyfile"),
            ("cadence", ".cdc"),
            ("cairo zero", ".cairo"),
            ("cairo", ".cairo"),
            ("cake", ".cs"),
            ("cakescript", ".cs"),
            ("cameligo", ".mligo"),
            ("cangjie", ".cj"),
            ("cap cds", ".cds"),
            ("cap'n proto", ".capnp"),
            ("carbon", ".carbon"),
            ("carto", ".mss"),
            ("cartocss", ".mss"),
            ("cds", ".cds"),
            ("ceylon", ".ceylon"),
            ("cfc", ".cfc"),
            ("cfm", ".cfm"),
            ("cfml", ".cfm"),
            ("chapel", ".chpl"),
            ("charity", ".ch"),
            ("checksum", ".crc32"),
            ("checksums", ".crc32"),
            ("chpl", ".chpl"),
            ("chuck", ".ck"),
            ("cil", ".cil"),
            ("circom", ".circom"),
            ("cirru", ".cirru"),
            ("clarion", ".clw"),
            ("clarity", ".clar"),
            ("classic asp", ".asp"),
            ("classic qbasic", ".bas"),
            ("classic quickbasic", ".bas"),
            ("classic visual basic", ".bas"),
            ("clean", ".icl"),
            ("click", ".click"),
            ("clipper", ".prg"),
            ("clips", ".clp"),
            ("clojure", ".clj"),
            ("closure templates", ".soy"),
            ("clue", ".clue"),
            ("cmake", ".cmake"),
            ("cobol", ".cob"),
            ("coccinelle", ".cocci"),
            ("codeql", ".ql"),
            ("coffee", ".coffee"),
            ("coffee-script", ".coffee"),
            ("coffeescript", ".coffee"),
            ("coldfusion cfc", ".cfc"),
            ("coldfusion html", ".cfm"),
            ("coldfusion", ".cfm"),
            ("collada", ".dae"),
            ("common lisp", ".lisp"),
            ("common workflow language", ".cwl"),
            ("component pascal", ".cp"),
            ("conll", ".conllu"),
            ("conll-u", ".conllu"),
            ("conll-x", ".conllu"),
            ("console", ".sh-session"),
            ("containerfile", ".dockerfile"),
            ("cooklang", ".cook"),
            ("cool", ".cl"),
            ("coq", ".v"),
            ("cperl", ".pl"),
            ("cpp", ".cpp"),
            ("cpp-objdump", ".cppobjdump"),
            ("cql", ".cql"),
            ("creole", ".creole"),
            ("crystal", ".cr"),
            ("csharp", ".cs"),
            ("cson", ".cson"),
            ("csound document", ".csd"),
            ("csound score", ".sco"),
            ("csound", ".orc"),
            ("csound-csd", ".csd"),
            ("csound-orc", ".orc"),
            ("csound-sco", ".sco"),
            ("css", ".css"),
            ("csv", ".csv"),
            ("cucumber", ".feature"),
            ("cuda", ".cu"),
            ("cue sheet", ".cue"),
            ("cue", ".cue"),
            ("curry", ".curry"),
            ("cweb", ".w"),
            ("cwl", ".cwl"),
            ("cycript", ".cy"),
            ("cylc", ".cylc"),
            ("cypher", ".cyp"),
            ("cython", ".pyx"),
            ("d", ".d"),
            ("d-objdump", ".d-objdump"),
            ("d2", ".d2"),
            ("d2lang", ".d2"),
            ("dafny", ".dfy"),
            ("darcs patch", ".darcspatch"),
            ("dart", ".dart"),
            ("daslang", ".das"),
            ("dataweave", ".dwl"),
            ("dcl", ".com"),
            ("debian package control file", ".dsc"),
            ("delphi", ".pas"),
            ("denizenscript", ".dsc"),
            ("desktop", ".desktop"),
            ("dhall", ".dhall"),
            ("diff", ".diff"),
            ("digital command language", ".com"),
            ("dircolors", ".dircolors"),
            ("directx 3d file", ".x"),
            ("django", ".jinja"),
            ("dlang", ".d"),
            ("dm", ".dm"),
            ("dns zone", ".zone"),
            ("dockerfile", ".dockerfile"),
            ("dogescript", ".djs"),
            ("dosbatch", ".bat"),
            ("dosini", ".ini"),
            ("dotenv", ".env"),
            ("dpatch", ".darcspatch"),
            ("dtrace", ".d"),
            ("dtrace-script", ".d"),
            ("dylan", ".dylan"),
            ("e", ".e"),
            ("e-mail", ".eml"),
            ("eagle", ".sch"),
            ("easybuild", ".eb"),
            ("ebnf", ".ebnf"),
            ("ec", ".ec"),
            ("ecere projects", ".epj"),
            ("ecl", ".ecl"),
            ("eclipse", ".ecl"),
            ("ecmarkdown", ".html"),
            ("ecmarkup", ".html"),
            ("ecr", ".ecr"),
            ("edge", ".edge"),
            ("edgeql", ".edgeql"),
            ("editor-config", ".editorconfig"),
            ("editorconfig", ".editorconfig"),
            ("edje data collection", ".edc"),
            ("edn", ".edn"),
            ("eeschema schematic", ".kicad_sch"),
            ("eex", ".html.eex"),
            ("eiffel", ".e"),
            ("ejs", ".ejs"),
            ("electronic business card", ".vcf"),
            ("elisp", ".el"),
            ("elixir", ".ex"),
            ("elm", ".elm"),
            ("elvish", ".elv"),
            ("emacs lisp", ".el"),
            ("emacs muse", ".muse"),
            ("emacs", ".el"),
            ("email", ".eml"),
            ("emberscript", ".em"),
            ("eml", ".eml"),
            ("envrc", ".sh"),
            ("eq", ".eq"),
            ("erb", ".erb"),
            ("erlang", ".erl"),
            ("esdl", ".edgeql"),
            ("euphoria", ".e"),
            ("f#", ".fs"),
            ("f*", ".fst"),
            ("factor", ".factor"),
            ("fancy", ".fy"),
            ("fantom", ".fan"),
            ("faust", ".dsp"),
            ("fb", ".bi"),
            ("fennel", ".fnl"),
            ("figfont", ".flf"),
            ("figlet font", ".flf"),
            ("filebench wml", ".f"),
            ("filterscript", ".fs"),
            ("firrtl", ".fir"),
            ("fish", ".fish"),
            ("flex", ".l"),
            ("flix", ".flix"),
            ("fluent", ".ftl"),
            ("flux", ".fx"),
            ("formatted", ".for"),
            ("forth", ".fth"),
            ("fortran free form", ".f90"),
            ("fortran", ".f"),
            ("foxpro", ".prg"),
            ("freebasic", ".bi"),
            ("freemarker", ".ftl"),
            ("frege", ".fr"),
            ("fsharp", ".fs"),
            ("fstar", ".fst"),
            ("ftl", ".ftl"),
            ("fundamental", ".txt"),
            ("futhark", ".fut"),
            ("g-code", ".g"),
            ("game maker language", ".gml"),
            ("gaml", ".gaml"),
            ("gams", ".gms"),
            ("gap", ".g"),
            ("gas", ".s"),
            ("gcc machine description", ".md"),
            ("gdb", ".gdb"),
            ("gdscript", ".gd"),
            ("gdshader", ".gdshader"),
            ("gedcom", ".ged"),
            ("gemini", ".gmi"),
            ("gemtext", ".gmi"),
            ("genero 4gl", ".4gl"),
            ("genero per", ".per"),
            ("genie", ".gs"),
            ("genshi", ".kid"),
            ("gentoo ebuild", ".ebuild"),
            ("gentoo eclass", ".eclass"),
            ("geojson", ".json"),
            ("gerber image", ".gbr"),
            ("gettext catalog", ".po"),
            ("gf", ".gf"),
            ("gherkin", ".feature"),
            ("git config", ".gitconfig"),
            ("git-ignore", ".gitignore"),
            ("gitconfig", ".gitconfig"),
            ("gitignore", ".gitignore"),
            ("gitmodules", ".gitconfig"),
            ("gjs", ".gjs"),
            ("gleam", ".gleam"),
            ("glimmer js", ".gjs"),
            ("glimmer ts", ".gts"),
            ("glsl", ".glsl"),
            ("glyph bitmap distribution format", ".bdf"),
            ("glyph", ".glf"),
            ("gn", ".gn"),
            ("gnu asm", ".s"),
            ("gnuplot", ".gp"),
            ("go template", ".gohtml"),
            ("go", ".go"),
            ("godot resource", ".gdnlib"),
            ("golang", ".go"),
            ("golo", ".golo"),
            ("gosu", ".gs"),
            ("gotmpl", ".gohtml"),
            ("grace", ".grace"),
            ("gradle kotlin dsl", ".gradle.kts"),
            ("gradle", ".gradle"),
            ("grammatical framework", ".gf"),
            ("graph modeling language", ".gml"),
            ("graphql", ".graphql"),
            ("graphviz (dot)", ".dot"),
            ("groff", ".roff"),
            ("groovy server pages", ".gsp"),
            ("groovy", ".groovy"),
            ("gsc", ".gsc"),
            ("gsp", ".gsp"),
            ("gts", ".gts"),
            ("hack", ".hack"),
            ("haml", ".haml"),
            ("handlebars", ".handlebars"),
            ("haproxy", ".cfg"),
            ("harbour", ".hb"),
            ("hare", ".ha"),
            ("hash", ".crc32"),
            ("hashes", ".crc32"),
            ("hashicorp configuration language", ".hcl"),
            ("haskell", ".hs"),
            ("haxe", ".hx"),
            ("hbs", ".handlebars"),
            ("hcl", ".hcl"),
            ("heex", ".html.eex"),
            ("help", ".txt"),
            ("hip", ".hip"),
            ("hiveql", ".q"),
            ("hls playlist", ".m3u"),
            ("hlsl", ".hlsl"),
            ("hocon", ".hocon"),
            ("holyc", ".hc"),
            ("hoon", ".hoon"),
            ("html", ".html"),
            ("html+django", ".jinja"),
            ("html+ecr", ".ecr"),
            ("html+eex", ".html.eex"),
            ("html+erb", ".erb"),
            ("html+jinja", ".jinja"),
            ("html+php", ".phtml"),
            ("html+razor", ".cshtml"),
            ("html+ruby", ".erb"),
            ("htmlbars", ".handlebars"),
            ("htmldjango", ".jinja"),
            ("http", ".http"),
            ("hurl", ".hurl"),
            ("hxml", ".hxml"),
            ("hy", ".hy"),
            ("hylang", ".hy"),
            ("hyphy", ".bf"),
            ("i7", ".ni"),
            ("ical", ".ics"),
            ("icalendar", ".ics"),
            ("idl", ".pro"),
            ("idris", ".idr"),
            ("ignore list", ".gitignore"),
            ("ignore", ".gitignore"),
            ("igor pro", ".ipf"),
            ("igor", ".ipf"),
            ("igorpro", ".ipf"),
            ("ijm", ".ijm"),
            ("ile rpg", ".rpgle"),
            ("imagej macro", ".ijm"),
            ("imba", ".imba"),
            ("inc", ".php"),
            ("inform 7", ".ni"),
            ("inform7", ".ni"),
            ("ini", ".ini"),
            ("ink", ".ink"),
            ("inno setup", ".iss"),
            ("io", ".io"),
            ("ioke", ".ik"),
            ("ipython notebook", ".ipynb"),
            ("irc log", ".irclog"),
            ("irc logs", ".irclog"),
            ("irc", ".irclog"),
            ("isabelle", ".thy"),
            ("ispc", ".ispc"),
            ("j", ".ijs"),
            ("jac", ".jac"),
            ("jai", ".jai"),
            ("janet", ".janet"),
            ("jasmin", ".j"),
            ("java properties", ".properties"),
            ("java server page", ".gsp"),
            ("java server pages", ".jsp"),
            ("java template engine", ".jte"),
            ("java", ".java"),
            ("javascript", ".js"),
            ("javascript+erb", ".js.erb"),
            ("jcl", ".jcl"),
            ("jest snapshot", ".snap"),
            ("jetbrains mps", ".mps"),
            ("jflex", ".flex"),
            ("jinja", ".jinja"),
            ("jison lex", ".jisonlex"),
            ("jison", ".jison"),
            ("jolie", ".ol"),
            ("jq", ".jq"),
            ("jruby", ".rb"),
            ("js", ".js"),
            ("json with comments", ".jsonc"),
            ("json", ".json"),
            ("json5", ".json5"),
            ("jsonc", ".jsonc"),
            ("jsoniq", ".jq"),
            ("jsonl", ".json"),
            ("jsonld", ".jsonld"),
            ("jsonnet", ".jsonnet"),
            ("jsp", ".jsp"),
            ("jte", ".jte"),
            ("julia", ".jl"),
            ("jupyter notebook", ".ipynb"),
            ("just", ".just"),
            ("justfile", ".just"),
            ("kaitai struct", ".ksy"),
            ("kak", ".kak"),
            ("kakounescript", ".kak"),
            ("kakscript", ".kak"),
            ("kcl", ".k"),
            ("kdl", ".kdl"),
            ("kerboscript", ".ks"),
            ("keyvalues", ".vdf"),
            ("kframework", ".k"),
            ("kicad layout", ".kicad_pcb"),
            ("kicad legacy layout", ".brd"),
            ("kicad schematic", ".kicad_sch"),
            ("kickstart", ".ks"),
            ("kit", ".kit"),
            ("koka", ".kk"),
            ("kolmafia ash", ".ash"),
            ("kotlin", ".kt"),
            ("krl", ".krl"),
            ("ksy", ".ksy"),
            ("kusto", ".csl"),
            ("kvlang", ".kv"),
            ("labview", ".lvproj"),
            ("lambdapi", ".lp"),
            ("langium", ".langium"),
            ("lark", ".lark"),
            ("lasso", ".lasso"),
            ("lassoscript", ".lasso"),
            ("latex", ".tex"),
            ("latte", ".latte"),
            ("lean 4", ".lean"),
            ("lean", ".lean"),
            ("lean4", ".lean"),
            ("leex", ".html.eex"),
            ("leo", ".leo"),
            ("less", ".less"),
            ("less-css", ".less"),
            ("lex", ".l"),
            ("lfe", ".lfe"),
            ("lhaskell", ".lhs"),
            ("lhs", ".lhs"),
            ("ligolang", ".ligo"),
            ("lilypond", ".ly"),
            ("limbo", ".b"),
            ("linear programming", ".lp"),
            ("linker script", ".ld"),
            ("linux kernel module", ".mod"),
            ("liquid", ".liquid"),
            ("lisp", ".lisp"),
            ("litcoffee", ".litcoffee"),
            ("literate agda", ".lagda"),
            ("literate coffeescript", ".litcoffee"),
            ("literate haskell", ".lhs"),
            ("live-script", ".ls"),
            ("livecode script", ".livecodescript"),
            ("livescript", ".ls"),
            ("llvm", ".ll"),
            ("logos", ".xm"),
            ("logtalk", ".lgt"),
            ("lolcode", ".lol"),
            ("lookml", ".lkml"),
            ("loomscript", ".ls"),
            ("ls", ".ls"),
            ("lsl", ".lsl"),
            ("ltspice symbol", ".asy"),
            ("lua", ".lua"),
            ("luau", ".luau"),
            ("m", ".mumps"),
            ("m2", ".m2"),
            ("m3u playlist", ".m3u"),
            ("m3u", ".m3u"),
            ("m4", ".m4"),
            ("m4sugar", ".m4"),
            ("m68k", ".asm"),
            ("macaulay2", ".m2"),
            ("macruby", ".rb"),
            ("mail", ".eml"),
            ("make", ".mak"),
            ("makefile", ".mak"),
            ("mako", ".mako"),
            ("man page", ".roff"),
            ("man", ".roff"),
            ("man-page", ".roff"),
            ("manpage", ".roff"),
            ("markdown", ".md"),
            ("marko", ".marko"),
            ("markojs", ".marko"),
            ("mask", ".mask"),
            ("mathematica", ".mathematica"),
            ("mathematical programming system", ".mps"),
            ("matlab", ".matlab"),
            ("max", ".maxpat"),
            ("max/msp", ".maxpat"),
            ("maxmsp", ".maxpat"),
            ("maxscript", ".ms"),
            ("mbox", ".eml"),
            ("mcfunction", ".mcfunction"),
            ("md", ".md"),
            ("mdoc", ".roff"),
            ("mdsvex", ".svx"),
            ("mdx", ".mdx"),
            ("mediawiki", ".mediawiki"),
            ("mercury", ".m"),
            ("mermaid example", ".mmd"),
            ("mermaid", ".mmd"),
            ("metal", ".metal"),
            ("mf", ".mak"),
            ("microsoft developer studio project", ".dsp"),
            ("microsoft visual studio solution", ".sln"),
            ("minid", ".minid"),
            ("miniyaml", ".yaml"),
            ("minizinc data", ".dzn"),
            ("minizinc", ".mzn"),
            ("mint", ".mint"),
            ("mirah", ".druby"),
            ("mirc script", ".mrc"),
            ("mlir", ".mlir"),
            ("mma", ".mathematica"),
            ("modelica", ".mo"),
            ("modula-2", ".mod"),
            ("modula-3", ".i3"),
            ("module management system", ".mms"),
            ("mojo", ".mojo"),
            ("monkey c", ".mc"),
            ("monkey", ".monkey"),
            ("moocode", ".moo"),
            ("moonbit", ".mbt"),
            ("moonscript", ".moon"),
            ("motoko", ".mo"),
            ("motorola 68k assembly", ".asm"),
            ("move", ".move"),
            ("mps", ".mps"),
            ("mql4", ".mq4"),
            ("mql5", ".mq5"),
            ("mtml", ".mtml"),
            ("muf", ".muf"),
            ("mumps", ".mumps"),
            ("mupad", ".mu"),
            ("muse", ".muse"),
            ("mustache", ".mustache"),
            ("myghty", ".myt"),
            ("nanorc", ".nanorc"),
            ("nargo", ".nr"),
            ("nasal", ".nas"),
            ("nasl", ".nasl"),
            ("nasm", ".asm"),
            ("ncl", ".ncl"),
            ("ne-on", ".neon"),
            ("nearley", ".ne"),
            ("nemerle", ".n"),
            ("neon", ".neon"),
            ("neosnippet", ".snip"),
            ("nesc", ".nc"),
            ("netlinx", ".axs"),
            ("netlinx+erb", ".axs.erb"),
            ("netlogo", ".nlogo"),
            ("nette object notation", ".neon"),
            ("newlisp", ".nl"),
            ("nextflow", ".nf"),
            ("nginx configuration file", ".nginx"),
            ("nginx", ".nginx"),
            ("nickel", ".ncl"),
            ("nim", ".nim"),
            ("ninja", ".ninja"),
            ("nit", ".nit"),
            ("nix", ".nix"),
            ("nixos", ".nix"),
            ("njk", ".njk"),
            ("nl", ".nl"),
            ("nmodl", ".mod"),
            ("node", ".js"),
            ("noir", ".nr"),
            ("nroff", ".roff"),
            ("nsis", ".nsi"),
            ("nu", ".nu"),
            ("nu-script", ".nu"),
            ("numpy", ".numpy"),
            ("nunjucks", ".njk"),
            ("nush", ".nu"),
            ("nushell", ".nu"),
            ("nushell-script", ".nu"),
            ("nvim", ".vim"),
            ("nwscript", ".nss"),
            ("oasv2-json", ".json"),
            ("oasv2-yaml", ".yaml"),
            ("oasv3-json", ".json"),
            ("oasv3-yaml", ".yaml"),
            ("oberon", ".ob2"),
            ("obj-c", ".m"),
            ("obj-c++", ".mm"),
            ("obj-j", ".j"),
            ("objc", ".m"),
            ("objc++", ".mm"),
            ("objdump", ".objdump"),
            ("object data instance notation", ".odin"),
            ("objective-c", ".m"),
            ("objective-c++", ".mm"),
            ("objective-j", ".j"),
            ("objectivec", ".m"),
            ("objectivec++", ".mm"),
            ("objectivej", ".j"),
            ("objectpascal", ".pas"),
            ("objectscript", ".cls"),
            ("objj", ".j"),
            ("ocaml", ".ml"),
            ("octave", ".matlab"),
            ("odin", ".odin"),
            ("odin-lang", ".odin"),
            ("odinlang", ".odin"),
            ("omgrofl", ".omgrofl"),
            ("omnet++ msg", ".msg"),
            ("omnet++ ned", ".ned"),
            ("omnetpp-msg", ".msg"),
            ("omnetpp-ned", ".ned"),
            ("oncrpc", ".x"),
            ("ooc", ".ooc"),
            ("opa", ".opa"),
            ("opal", ".opal"),
            ("open policy agent", ".rego"),
            ("opencl", ".cl"),
            ("openedge abl", ".p"),
            ("openedge", ".p"),
            ("openqasm", ".qasm"),
            ("openscad", ".scad"),
            ("openstep property list", ".plist"),
            ("opentofu", ".hcl"),
            ("opentype feature file", ".fea"),
            ("org", ".org"),
            ("osascript", ".applescript"),
            ("overpassql", ".overpassql"),
            ("ox", ".ox"),
            ("oxygene", ".oxygene"),
            ("oz", ".oz"),
            ("p4", ".p4"),
            ("pact", ".pact"),
            ("pan", ".pan"),
            ("pandoc", ".md"),
            ("papyrus", ".psc"),
            ("parrot assembly", ".pasm"),
            ("parrot internal representation", ".pir"),
            ("parrot", ".parrot"),
            ("pascal", ".pas"),
            ("pasm", ".pasm"),
            ("pawn", ".pwn"),
            ("pcbnew", ".kicad_pcb"),
            ("pddl", ".pddl"),
            ("peg.js", ".pegjs"),
            ("pep8", ".pep"),
            ("perl", ".pl"),
            ("perl-6", ".6pl"),
            ("perl6", ".6pl"),
            ("php", ".php"),
            ("pic", ".pic"),
            ("pickle", ".pkl"),
            ("picolisp", ".l"),
            ("piglatin", ".pig"),
            ("pikchr", ".pic"),
            ("pike", ".pike"),
            ("pir", ".pir"),
            ("pkl", ".pkl"),
            ("plain text", ".txt"),
            ("plantuml", ".puml"),
            ("plpgsql", ".pgsql"),
            ("plsql", ".pls"),
            ("pod 6", ".pod"),
            ("pod", ".pod"),
            ("pogoscript", ".pogo"),
            ("polar", ".polar"),
            ("pony", ".pony"),
            ("portugol", ".por"),
            ("posh", ".ps1"),
            ("postcss", ".pcss"),
            ("postscr", ".ps"),
            ("postscript", ".ps"),
            ("pot", ".po"),
            ("pov-ray sdl", ".pov"),
            ("pov-ray", ".pov"),
            ("povray", ".pov"),
            ("powerbuilder", ".pbt"),
            ("powershell", ".ps1"),
            ("praat", ".praat"),
            ("prisma", ".prisma"),
            ("processing", ".pde"),
            ("progress", ".p"),
            ("proguard", ".pro"),
            ("prolog", ".pl"),
            ("promela", ".pml"),
            ("propeller spin", ".spin"),
            ("proto", ".proto"),
            ("protobuf text format", ".textproto"),
            ("protobuf", ".proto"),
            ("protocol buffer text format", ".textproto"),
            ("protocol buffer", ".proto"),
            ("protocol buffers", ".proto"),
            ("public key", ".asc"),
            ("pug", ".jade"),
            ("puppet", ".pp"),
            ("pure data", ".pd"),
            ("purebasic", ".pb"),
            ("purescript", ".purs"),
            ("pwsh", ".ps1"),
            ("pyret", ".arr"),
            ("pyrex", ".pyx"),
            ("python traceback", ".pytb"),
            ("python", ".py"),
            ("python3", ".py"),
            ("q", ".q"),
            ("q#", ".qs"),
            ("qb", ".bas"),
            ("qb64", ".bas"),
            ("qbasic", ".bas"),
            ("ql", ".ql"),
            ("qmake", ".pro"),
            ("qml", ".qml"),
            ("qsharp", ".qs"),
            ("qt script", ".qs"),
            ("quakec", ".qc"),
            ("quickbasic", ".bas"),
            ("r", ".r"),
            ("racket", ".rkt"),
            ("ragel", ".rl"),
            ("ragel-rb", ".rl"),
            ("ragel-ruby", ".rl"),
            ("rake", ".rb"),
            ("raku", ".6pl"),
            ("raml", ".raml"),
            ("rascal", ".rsc"),
            ("rascript", ".rascript"),
            ("raw token data", ".raw"),
            ("raw", ".raw"),
            ("razor", ".cshtml"),
            ("rb", ".rb"),
            ("rbs", ".rbs"),
            ("rbx", ".rb"),
            ("rdoc", ".rdoc"),
            ("realbasic", ".rbbas"),
            ("reason", ".re"),
            ("reasonligo", ".religo"),
            ("rebol", ".reb"),
            ("red", ".red"),
            ("red/system", ".red"),
            ("redcode", ".cw"),
            ("regex", ".regexp"),
            ("regexp", ".regexp"),
            ("regular expression", ".regexp"),
            ("ren'py", ".rpy"),
            ("renderscript", ".rs"),
            ("renpy", ".rpy"),
            ("rescript", ".res"),
            ("restructuredtext", ".rst"),
            ("rexx", ".rexx"),
            ("rez", ".r"),
            ("rhtml", ".erb"),
            ("rich text format", ".rtf"),
            ("ring", ".ring"),
            ("riot", ".riot"),
            ("rmarkdown", ".qmd"),
            ("robotframework", ".robot"),
            ("roc", ".roc"),
            ("rocq prover", ".v"),
            ("rocq", ".v"),
            ("roff manpage", ".1"),
            ("roff", ".roff"),
            ("ron", ".ron"),
            ("ros interface", ".msg"),
            ("rosmsg", ".msg"),
            ("rouge", ".rg"),
            ("routeros script", ".rsc"),
            ("rpc", ".x"),
            ("rpcgen", ".x"),
            ("rpgle", ".rpgle"),
            ("rpm spec", ".spec"),
            ("rs", ".rs"),
            ("rs-274x", ".gbr"),
            ("rscript", ".r"),
            ("rss", ".xml"),
            ("rst", ".rst"),
            ("ruby", ".rb"),
            ("runoff", ".rnh"),
            ("rust", ".rs"),
            ("rusthon", ".py"),
            ("sage", ".sage"),
            ("sail", ".sail"),
            ("salt", ".sls"),
            ("saltstack", ".sls"),
            ("saltstate", ".sls"),
            ("sarif", ".json"),
            ("sas", ".sas"),
            ("sass", ".sass"),
            ("scala", ".scala"),
            ("scaml", ".scaml"),
            ("scenic", ".scenic"),
            ("scheme", ".scm"),
            ("scilab", ".sci"),
            ("scss", ".scss"),
            ("sdc", ".tcl"),
            ("sed", ".sed"),
            ("self", ".self"),
            ("selinux kernel policy language", ".te"),
            ("selinux policy", ".te"),
            ("sepolicy", ".te"),
            ("sfv", ".sfv"),
            ("sh", ".sh"),
            ("shaderlab", ".shader"),
            ("shell", ".sh"),
            ("shell-script", ".sh"),
            ("shellsession", ".sh-session"),
            ("shen", ".shen"),
            ("sieve", ".sieve"),
            ("simple file verification", ".sfv"),
            ("slang", ".slang"),
            ("slash", ".sl"),
            ("slice", ".ice"),
            ("slim", ".slim"),
            ("slint", ".slint"),
            ("smali", ".smali"),
            ("smalltalk", ".st"),
            ("smarty", ".tpl"),
            ("smithy", ".smithy"),
            ("sml", ".ml"),
            ("smpl", ".cocci"),
            ("smt", ".smt2"),
            ("snakefile", ".smk"),
            ("snakemake", ".smk"),
            ("snipmate", ".snip"),
            ("snippet", ".yasnippet"),
            ("solidity", ".sol"),
            ("sourcemod", ".sp"),
            ("sourcepawn", ".sp"),
            ("soy", ".soy"),
            ("sparql", ".sparql"),
            ("specfile", ".spec"),
            ("spline font database", ".sfd"),
            ("splus", ".r"),
            ("sqf", ".sqf"),
            ("sql", ".sql"),
            ("sqlpl", ".sql"),
            ("sqlrpgle", ".rpgle"),
            ("squeak", ".st"),
            ("squirrel", ".nut"),
            ("srecode template", ".srt"),
            ("stan", ".stan"),
            ("standard ml", ".ml"),
            ("star", ".star"),
            ("starlark", ".bzl"),
            ("stata", ".do"),
            ("stl", ".stl"),
            ("stla", ".stl"),
            ("ston", ".ston"),
            ("stringtemplate", ".st"),
            ("stylus", ".styl"),
            ("subrip text", ".srt"),
            ("sugarss", ".sss"),
            ("sum", ".crc32"),
            ("sums", ".crc32"),
            ("supercollider", ".sc"),
            ("surql", ".surql"),
            ("surrealql", ".surql"),
            ("survex data", ".svx"),
            ("svelte", ".svelte"),
            ("svg", ".svg"),
            ("sway", ".sw"),
            ("sweave", ".rnw"),
            ("swift", ".swift"),
            ("swig", ".i"),
            ("systemverilog", ".sv"),
            ("tab-seperated values", ".tsv"),
            ("tabular model definition language", ".tmdl"),
            ("tact", ".tact"),
            ("talon", ".talon"),
            ("tcl", ".tcl"),
            ("tcsh", ".tcsh"),
            ("tea", ".tea"),
            ("teal", ".tl"),
            ("templ", ".templ"),
            ("terra", ".t"),
            ("terraform template", ".tftpl"),
            ("terraform", ".hcl"),
            ("tex", ".tex"),
            ("texinfo", ".texinfo"),
            ("text proto", ".textproto"),
            ("text", ".txt"),
            ("textgrid", ".TextGrid"),
            ("textile", ".textile"),
            ("thrift", ".thrift"),
            ("ti program", ".8xp"),
            ("tl", ".tl"),
            ("tl-verilog", ".tlv"),
            ("tla", ".tla"),
            ("tmdl", ".tmdl"),
            ("toit", ".toit"),
            ("toml", ".toml"),
            ("topojson", ".json"),
            ("traveling salesman problem", ".tsp"),
            ("travelling salesman problem", ".tsp"),
            ("tree-sitter query", ".scm"),
            ("troff", ".roff"),
            ("ts", ".ts"),
            ("tsp", ".tsp"),
            ("tsplib data", ".tsp"),
            ("tsq", ".scm"),
            ("tsql", ".sql"),
            ("tsv", ".tsv"),
            ("tsx", ".tsx"),
            ("turing", ".t"),
            ("turtle", ".ttl"),
            ("twig", ".twig"),
            ("txl", ".txl"),
            ("typ", ".typ"),
            ("type language", ".tl"),
            ("typescript", ".ts"),
            ("typespec", ".tsp"),
            ("typst", ".typ"),
            ("udiff", ".diff"),
            ("ultisnip", ".snip"),
            ("ultisnips", ".snip"),
            ("unified parallel c", ".upc"),
            ("unity3d asset", ".anim"),
            ("unix asm", ".s"),
            ("unix assembly", ".s"),
            ("uno", ".uno"),
            ("unrealscript", ".uc"),
            ("untyped plutus core", ".uplc"),
            ("ur", ".ur"),
            ("ur/web", ".ur"),
            ("urweb", ".ur"),
            ("v", ".v"),
            ("vala", ".vala"),
            ("valve data format", ".vdf"),
            ("vb .net", ".vb"),
            ("vb 6", ".bas"),
            ("vb.net", ".vb"),
            ("vb6", ".bas"),
            ("vba", ".bas"),
            ("vbnet", ".vb"),
            ("vbscript", ".vbs"),
            ("vcard", ".vcf"),
            ("vcl", ".vcl"),
            ("vdf", ".vdf"),
            ("velocity template language", ".vtl"),
            ("velocity", ".vtl"),
            ("vento", ".vto"),
            ("verilog", ".v"),
            ("vhdl", ".vhdl"),
            ("vim help file", ".txt"),
            ("vim script", ".vim"),
            ("vim snippet", ".snip"),
            ("vim", ".vim"),
            ("vimhelp", ".txt"),
            ("viml", ".vim"),
            ("vimscript", ".vim"),
            ("virtual contact file", ".vcf"),
            ("visual basic .net", ".vb"),
            ("visual basic 6", ".bas"),
            ("visual basic 6.0", ".bas"),
            ("visual basic classic", ".bas"),
            ("visual basic for applications", ".bas"),
            ("visual basic", ".vb"),
            ("vlang", ".v"),
            ("volt", ".volt"),
            ("vtl", ".vtl"),
            ("vtt", ".vtt"),
            ("vue", ".vue"),
            ("vyper", ".vy"),
            ("wasm", ".wast"),
            ("wast", ".wast"),
            ("wavefront material", ".mtl"),
            ("wavefront object", ".obj"),
            ("wdl", ".wdl"),
            ("web ontology language", ".owl"),
            ("webassembly interface type", ".wit"),
            ("webassembly", ".wast"),
            ("webidl", ".webidl"),
            ("webvtt", ".vtt"),
            ("wgsl", ".wgsl"),
            ("whiley", ".whiley"),
            ("wiki", ".mediawiki"),
            ("wikitext", ".mediawiki"),
            ("win32 message file", ".mc"),
            ("winbatch", ".bat"),
            ("windows registry entries", ".reg"),
            ("wisp", ".wisp"),
            ("wit", ".wit"),
            ("witcher script", ".ws"),
            ("wl", ".mathematica"),
            ("wolfram lang", ".mathematica"),
            ("wolfram language", ".mathematica"),
            ("wolfram", ".mathematica"),
            ("wollok", ".wlk"),
            ("workflow description language", ".wdl"),
            ("world of warcraft addon data", ".toc"),
            ("wren", ".wren"),
            ("wrenlang", ".wren"),
            ("wsdl", ".xml"),
            ("x bitmap", ".xbm"),
            ("x pixmap", ".xpm"),
            ("x10", ".x10"),
            ("xbase", ".prg"),
            ("xbm", ".xbm"),
            ("xc", ".xc"),
            ("xdc", ".tcl"),
            ("xdr", ".x"),
            ("xhtml", ".html"),
            ("xml property list", ".plist"),
            ("xml", ".xml"),
            ("xml+genshi", ".kid"),
            ("xml+kid", ".kid"),
            ("xojo", ".xojo_code"),
            ("xonsh", ".xsh"),
            ("xpages", ".xsp-config"),
            ("xpm", ".xpm"),
            ("xproc", ".xpl"),
            ("xquery", ".xquery"),
            ("xs", ".xs"),
            ("xsd", ".xml"),
            ("xsl", ".xslt"),
            ("xslt", ".xslt"),
            ("xten", ".x10"),
            ("xtend", ".xtend"),
            ("yacc", ".y"),
            ("yaml", ".yml"),
            ("yang", ".yang"),
            ("yara", ".yar"),
            ("yas", ".yasnippet"),
            ("yasnippet", ".yasnippet"),
            ("yml", ".yml"),
            ("yul", ".yul"),
            ("zap", ".zap"),
            ("zeek", ".zeek"),
            ("zenscript", ".zs"),
            ("zephir", ".zep"),
            ("zig", ".zig"),
            ("zil", ".zil"),
            ("zimpl", ".zimpl"),
            ("zmodel", ".zmodel"),
            ("zsh", ".sh"),
        ];

        for (input, output) in cases {
            assert!(language_to_ext(input).is_some_and(|o| o == output));
        }
    }
}
