github_trending_rs/
params.rs

1// parameters for requesting github trending information
2
3use strum::EnumIter;
4
5/// trait for trending parameters like language, period,
6/// used for constructing request
7pub trait Param: Sized {
8    fn name() -> &'static str;
9    fn value(&self) -> &'static str;
10    fn query(&self) -> (&'static str, &'static str) {
11        (Self::name(), self.value())
12    }
13}
14
15/// trending period
16#[non_exhaustive]
17#[derive(Clone, Copy, Debug)]
18pub enum Since {
19    Daily,
20    Weekly,
21    Monthly,
22}
23
24impl Param for Since {
25    fn name() -> &'static str {
26        "since"
27    }
28
29    fn value(&self) -> &'static str {
30        match self {
31            Since::Daily => "daily",
32            Since::Weekly => "weekly",
33            Since::Monthly => "monthly",
34        }
35    }
36}
37
38/// Spoken language of repository
39#[non_exhaustive]
40#[derive(Clone, Copy, Debug, EnumIter)]
41pub enum SpokenLanguage {
42    Abkhazian,
43    Afar,
44    Afrikaans,
45    Akan,
46    Albanian,
47    Amharic,
48    Arabic,
49    Aragonese,
50    Armenian,
51    Assamese,
52    Avaric,
53    Avestan,
54    Aymara,
55    Azerbaijani,
56    Bambara,
57    Bashkir,
58    Basque,
59    Belarusian,
60    Bengali,
61    Bihari,
62    Bislama,
63    Bosnian,
64    Breton,
65    Bulgarian,
66    Burmese,
67    Catalan,
68    Chamorro,
69    Chechen,
70    Chichewa,
71    Chinese,
72    Chuvash,
73    Cornish,
74    Corsican,
75    Cree,
76    Croatian,
77    Czech,
78    Danish,
79    Divehi,
80    Dutch,
81    Dzongkha,
82    English,
83    Esperanto,
84    Estonian,
85    Ewe,
86    Faroese,
87    Fijian,
88    Finnish,
89    French,
90    Fulah,
91    Galician,
92    Georgian,
93    German,
94    Greek,
95    Guarani,
96    Gujarati,
97    Haitian,
98    Hausa,
99    Hebrew,
100    Herero,
101    Hindi,
102    HiriMotu,
103    Hungarian,
104    Interlingua,
105    Indonesian,
106    Interlingue,
107    Irish,
108    Igbo,
109    Inupiaq,
110    Ido,
111    Icelandic,
112    Italian,
113    Inuktitut,
114    Japanese,
115    Javanese,
116    Kalaallisut,
117    Kannada,
118    Kanuri,
119    Kashmiri,
120    Kazakh,
121    CentralKhmer,
122    Kikuyu,
123    Kinyarwanda,
124    Kirghiz,
125    Komi,
126    Kongo,
127    Korean,
128    Kurdish,
129    Kuanyama,
130    Latin,
131    Luxembourgish,
132    Ganda,
133    Limburgan,
134    Lingala,
135    Lao,
136    Lithuanian,
137    LubaKatanga,
138    Latvian,
139    Manx,
140    Macedonian,
141    Malagasy,
142    Malay,
143    Malayalam,
144    Maltese,
145    Maori,
146    Marathi,
147    Marshallese,
148    Mongolian,
149    Nauru,
150    Navajo,
151    NorthNdebele,
152    Nepali,
153    Ndonga,
154    NorwegianBokmål,
155    NorwegianNynorsk,
156    Norwegian,
157    SichuanYi,
158    SouthNdebele,
159    Occitan,
160    Ojibwa,
161    ChurchSlavic,
162    Oromo,
163    Oriya,
164    Ossetian,
165    Punjabi,
166    Pali,
167    Persian,
168    Polish,
169    Pashto,
170    Portuguese,
171    Quechua,
172    Romansh,
173    Rundi,
174    Romanian,
175    Russian,
176    Sanskrit,
177    Sardinian,
178    Sindhi,
179    NorthernSami,
180    Samoan,
181    Sango,
182    Serbian,
183    Gaelic,
184    Shona,
185    Sinhala,
186    Slovak,
187    Slovenian,
188    Somali,
189    SouthernSotho,
190    Spanish,
191    Sundanese,
192    Swahili,
193    Swati,
194    Swedish,
195    Tamil,
196    Telugu,
197    Tajik,
198    Thai,
199    Tigrinya,
200    Tibetan,
201    Turkmen,
202    Tagalog,
203    Tswana,
204    Tonga,
205    Turkish,
206    Tsonga,
207    Tatar,
208    Twi,
209    Tahitian,
210    Uighur,
211    Ukrainian,
212    Urdu,
213    Uzbek,
214    Venda,
215    Vietnamese,
216    Volapük,
217    Walloon,
218    Welsh,
219    Wolof,
220    WesternFrisian,
221    Xhosa,
222    Yiddish,
223    Yoruba,
224    Zhuang,
225    Zulu,
226}
227
228impl Param for SpokenLanguage {
229    fn name() -> &'static str {
230        "spoken_language_code"
231    }
232
233    fn value(&self) -> &'static str {
234        match self {
235            SpokenLanguage::Abkhazian => "ab",
236            SpokenLanguage::Afar => "aa",
237            SpokenLanguage::Afrikaans => "af",
238            SpokenLanguage::Akan => "ak",
239            SpokenLanguage::Albanian => "sq",
240            SpokenLanguage::Amharic => "am",
241            SpokenLanguage::Arabic => "ar",
242            SpokenLanguage::Aragonese => "an",
243            SpokenLanguage::Armenian => "hy",
244            SpokenLanguage::Assamese => "as",
245            SpokenLanguage::Avaric => "av",
246            SpokenLanguage::Avestan => "ae",
247            SpokenLanguage::Aymara => "ay",
248            SpokenLanguage::Azerbaijani => "az",
249            SpokenLanguage::Bambara => "bm",
250            SpokenLanguage::Bashkir => "ba",
251            SpokenLanguage::Basque => "eu",
252            SpokenLanguage::Belarusian => "be",
253            SpokenLanguage::Bengali => "bn",
254            SpokenLanguage::Bihari => "bh",
255            SpokenLanguage::Bislama => "bi",
256            SpokenLanguage::Bosnian => "bs",
257            SpokenLanguage::Breton => "br",
258            SpokenLanguage::Bulgarian => "bg",
259            SpokenLanguage::Burmese => "my",
260            SpokenLanguage::Catalan => "ca",
261            SpokenLanguage::Chamorro => "ch",
262            SpokenLanguage::Chechen => "ce",
263            SpokenLanguage::Chichewa => "ny",
264            SpokenLanguage::Chinese => "zh",
265            SpokenLanguage::Chuvash => "cv",
266            SpokenLanguage::Cornish => "kw",
267            SpokenLanguage::Corsican => "co",
268            SpokenLanguage::Cree => "cr",
269            SpokenLanguage::Croatian => "hr",
270            SpokenLanguage::Czech => "cs",
271            SpokenLanguage::Danish => "da",
272            SpokenLanguage::Divehi => "dv",
273            SpokenLanguage::Dutch => "nl",
274            SpokenLanguage::Dzongkha => "dz",
275            SpokenLanguage::English => "en",
276            SpokenLanguage::Esperanto => "eo",
277            SpokenLanguage::Estonian => "et",
278            SpokenLanguage::Ewe => "ee",
279            SpokenLanguage::Faroese => "fo",
280            SpokenLanguage::Fijian => "fj",
281            SpokenLanguage::Finnish => "fi",
282            SpokenLanguage::French => "fr",
283            SpokenLanguage::Fulah => "ff",
284            SpokenLanguage::Galician => "gl",
285            SpokenLanguage::Georgian => "ka",
286            SpokenLanguage::German => "de",
287            SpokenLanguage::Greek => "el",
288            SpokenLanguage::Guarani => "gn",
289            SpokenLanguage::Gujarati => "gu",
290            SpokenLanguage::Haitian => "ht",
291            SpokenLanguage::Hausa => "ha",
292            SpokenLanguage::Hebrew => "he",
293            SpokenLanguage::Herero => "hz",
294            SpokenLanguage::Hindi => "hi",
295            SpokenLanguage::HiriMotu => "ho",
296            SpokenLanguage::Hungarian => "hu",
297            SpokenLanguage::Interlingua => "ia",
298            SpokenLanguage::Indonesian => "id",
299            SpokenLanguage::Interlingue => "ie",
300            SpokenLanguage::Irish => "ga",
301            SpokenLanguage::Igbo => "ig",
302            SpokenLanguage::Inupiaq => "ik",
303            SpokenLanguage::Ido => "io",
304            SpokenLanguage::Icelandic => "is",
305            SpokenLanguage::Italian => "it",
306            SpokenLanguage::Inuktitut => "iu",
307            SpokenLanguage::Japanese => "ja",
308            SpokenLanguage::Javanese => "jv",
309            SpokenLanguage::Kalaallisut => "kl",
310            SpokenLanguage::Kannada => "kn",
311            SpokenLanguage::Kanuri => "kr",
312            SpokenLanguage::Kashmiri => "ks",
313            SpokenLanguage::Kazakh => "kk",
314            SpokenLanguage::CentralKhmer => "km",
315            SpokenLanguage::Kikuyu => "ki",
316            SpokenLanguage::Kinyarwanda => "rw",
317            SpokenLanguage::Kirghiz => "ky",
318            SpokenLanguage::Komi => "kv",
319            SpokenLanguage::Kongo => "kg",
320            SpokenLanguage::Korean => "ko",
321            SpokenLanguage::Kurdish => "ku",
322            SpokenLanguage::Kuanyama => "kj",
323            SpokenLanguage::Latin => "la",
324            SpokenLanguage::Luxembourgish => "lb",
325            SpokenLanguage::Ganda => "lg",
326            SpokenLanguage::Limburgan => "li",
327            SpokenLanguage::Lingala => "ln",
328            SpokenLanguage::Lao => "lo",
329            SpokenLanguage::Lithuanian => "lt",
330            SpokenLanguage::LubaKatanga => "lu",
331            SpokenLanguage::Latvian => "lv",
332            SpokenLanguage::Manx => "gv",
333            SpokenLanguage::Macedonian => "mk",
334            SpokenLanguage::Malagasy => "mg",
335            SpokenLanguage::Malay => "ms",
336            SpokenLanguage::Malayalam => "ml",
337            SpokenLanguage::Maltese => "mt",
338            SpokenLanguage::Maori => "mi",
339            SpokenLanguage::Marathi => "mr",
340            SpokenLanguage::Marshallese => "mh",
341            SpokenLanguage::Mongolian => "mn",
342            SpokenLanguage::Nauru => "na",
343            SpokenLanguage::Navajo => "nv",
344            SpokenLanguage::NorthNdebele => "nd",
345            SpokenLanguage::Nepali => "ne",
346            SpokenLanguage::Ndonga => "ng",
347            SpokenLanguage::NorwegianBokmål => "nb",
348            SpokenLanguage::NorwegianNynorsk => "nn",
349            SpokenLanguage::Norwegian => "no",
350            SpokenLanguage::SichuanYi => "ii",
351            SpokenLanguage::SouthNdebele => "nr",
352            SpokenLanguage::Occitan => "oc",
353            SpokenLanguage::Ojibwa => "oj",
354            SpokenLanguage::ChurchSlavic => "cu",
355            SpokenLanguage::Oromo => "om",
356            SpokenLanguage::Oriya => "or",
357            SpokenLanguage::Ossetian => "os",
358            SpokenLanguage::Punjabi => "pa",
359            SpokenLanguage::Pali => "pi",
360            SpokenLanguage::Persian => "fa",
361            SpokenLanguage::Polish => "pl",
362            SpokenLanguage::Pashto => "ps",
363            SpokenLanguage::Portuguese => "pt",
364            SpokenLanguage::Quechua => "qu",
365            SpokenLanguage::Romansh => "rm",
366            SpokenLanguage::Rundi => "rn",
367            SpokenLanguage::Romanian => "ro",
368            SpokenLanguage::Russian => "ru",
369            SpokenLanguage::Sanskrit => "sa",
370            SpokenLanguage::Sardinian => "sc",
371            SpokenLanguage::Sindhi => "sd",
372            SpokenLanguage::NorthernSami => "se",
373            SpokenLanguage::Samoan => "sm",
374            SpokenLanguage::Sango => "sg",
375            SpokenLanguage::Serbian => "sr",
376            SpokenLanguage::Gaelic => "gd",
377            SpokenLanguage::Shona => "sn",
378            SpokenLanguage::Sinhala => "si",
379            SpokenLanguage::Slovak => "sk",
380            SpokenLanguage::Slovenian => "sl",
381            SpokenLanguage::Somali => "so",
382            SpokenLanguage::SouthernSotho => "st",
383            SpokenLanguage::Spanish => "es",
384            SpokenLanguage::Sundanese => "su",
385            SpokenLanguage::Swahili => "sw",
386            SpokenLanguage::Swati => "ss",
387            SpokenLanguage::Swedish => "sv",
388            SpokenLanguage::Tamil => "ta",
389            SpokenLanguage::Telugu => "te",
390            SpokenLanguage::Tajik => "tg",
391            SpokenLanguage::Thai => "th",
392            SpokenLanguage::Tigrinya => "ti",
393            SpokenLanguage::Tibetan => "bo",
394            SpokenLanguage::Turkmen => "tk",
395            SpokenLanguage::Tagalog => "tl",
396            SpokenLanguage::Tswana => "tn",
397            SpokenLanguage::Tonga => "to",
398            SpokenLanguage::Turkish => "tr",
399            SpokenLanguage::Tsonga => "ts",
400            SpokenLanguage::Tatar => "tt",
401            SpokenLanguage::Twi => "tw",
402            SpokenLanguage::Tahitian => "ty",
403            SpokenLanguage::Uighur => "ug",
404            SpokenLanguage::Ukrainian => "uk",
405            SpokenLanguage::Urdu => "ur",
406            SpokenLanguage::Uzbek => "uz",
407            SpokenLanguage::Venda => "ve",
408            SpokenLanguage::Vietnamese => "vi",
409            SpokenLanguage::Volapük => "vo",
410            SpokenLanguage::Walloon => "wa",
411            SpokenLanguage::Welsh => "cy",
412            SpokenLanguage::Wolof => "wo",
413            SpokenLanguage::WesternFrisian => "fy",
414            SpokenLanguage::Xhosa => "xh",
415            SpokenLanguage::Yiddish => "yi",
416            SpokenLanguage::Yoruba => "yo",
417            SpokenLanguage::Zhuang => "za",
418            SpokenLanguage::Zulu => "zu",
419        }
420    }
421}
422
423// TODO: have a github action to check completeness of this list?
424/// Github programming language enum definition
425#[non_exhaustive]
426#[allow(non_camel_case_types)]
427#[derive(Clone, Copy, Debug, EnumIter)]
428pub enum Language {
429    Unknownlanguages,
430    _1CEnterprise,
431    _2DimensionalArray,
432    _4D,
433    ABAP,
434    ABAPCDS,
435    ABNF,
436    ActionScript,
437    Ada,
438    AdblockFilterList,
439    AdobeFontMetrics,
440    Agda,
441    AGSScript,
442    AIDL,
443    Aiken,
444    AL,
445    Alloy,
446    AlpineAbuild,
447    AltiumDesigner,
448    AMPL,
449    AngelScript,
450    AnswerSetProgramming,
451    AntBuildSystem,
452    Antlers,
453    ANTLR,
454    ApacheConf,
455    Apex,
456    APIBlueprint,
457    APL,
458    ApolloGuidanceComputer,
459    AppleScript,
460    Arc,
461    AsciiDoc,
462    ASL,
463    ASN1,
464    ASPNET,
465    AspectJ,
466    Assembly,
467    Astro,
468    Asymptote,
469    ATS,
470    Augeas,
471    AutoHotkey,
472    AutoIt,
473    AvroIDL,
474    Awk,
475    B4X,
476    Ballerina,
477    BASIC,
478    Batchfile,
479    Beef,
480    Befunge,
481    Berry,
482    BibTeX,
483    BibTeXStyle,
484    Bicep,
485    Bikeshed,
486    Bison,
487    BitBake,
488    Blade,
489    BlitzBasic,
490    BlitzMax,
491    Bluespec,
492    BluespecBH,
493    Boo,
494    Boogie,
495    BQN,
496    Brainfuck,
497    BrighterScript,
498    Brightscript,
499    Browserslist,
500    BuildStream,
501    C,
502    CSharp,
503    CPlusPlus,
504    CObjDump,
505    C2hsHaskell,
506    CabalConfig,
507    Caddyfile,
508    Cadence,
509    Cairo,
510    CairoZero,
511    CameLIGO,
512    CAPCDS,
513    CapnProto,
514    Carbon,
515    CartoCSS,
516    Ceylon,
517    Chapel,
518    Charity,
519    Checksums,
520    ChucK,
521    CIL,
522    Circom,
523    Cirru,
524    Clarion,
525    Clarity,
526    ClassicASP,
527    Clean,
528    Click,
529    CLIPS,
530    Clojure,
531    ClosureTemplates,
532    CloudFirestoreSecurityRules,
533    Clue,
534    CMake,
535    COBOL,
536    CODEOWNERS,
537    CodeQL,
538    CoffeeScript,
539    ColdFusion,
540    ColdFusionCFC,
541    COLLADA,
542    CommonLisp,
543    CommonWorkflowLanguage,
544    ComponentPascal,
545    CoNLLU,
546    Cool,
547    CppObjDump,
548    Creole,
549    crontab,
550    Crystal,
551    CSON,
552    Csound,
553    CsoundDocument,
554    CsoundScore,
555    CSS,
556    CSV,
557    Cuda,
558    CUE,
559    CueSheet,
560    cURLConfig,
561    Curry,
562    CWeb,
563    Cycript,
564    Cylc,
565    Cypher,
566    Cython,
567    D,
568    DObjDump,
569    D2,
570    Dafny,
571    DarcsPatch,
572    Dart,
573    Daslang,
574    DataWeave,
575    DebianPackageControlFile,
576    DenizenScript,
577    desktop,
578    Dhall,
579    Diff,
580    DIGITALCommandLanguage,
581    dircolors,
582    DirectX3DFile,
583    DM,
584    DNSZone,
585    Dockerfile,
586    Dogescript,
587    Dotenv,
588    DTrace,
589    Dune,
590    Dylan,
591    E,
592    Eagle,
593    Earthly,
594    Easybuild,
595    EBNF,
596    eC,
597    EcereProjects,
598    ECL,
599    ECLiPSe,
600    Ecmarkup,
601    Edge,
602    EdgeQL,
603    EditorConfig,
604    EdjeDataCollection,
605    edn,
606    Eiffel,
607    EJS,
608    Elixir,
609    Elm,
610    Elvish,
611    ElvishTranscript,
612    EmacsLisp,
613    EmberScript,
614    Email,
615    EQ,
616    Erlang,
617    Euphoria,
618    FSharp,
619    FStar,
620    Factor,
621    Fancy,
622    Fantom,
623    Faust,
624    Fennel,
625    FIGletFont,
626    FilebenchWML,
627    Filterscript,
628    FIRRTL,
629    fish,
630    Fluent,
631    FLUX,
632    Formatted,
633    Forth,
634    Fortran,
635    FortranFreeForm,
636    FreeBASIC,
637    FreeMarker,
638    Frege,
639    Futhark,
640    Gcode,
641    GameMakerLanguage,
642    GAML,
643    GAMS,
644    GAP,
645    GCCMachineDescription,
646    GDB,
647    GDScript,
648    GDShader,
649    GEDCOM,
650    GemfileLock,
651    Gemini,
652    Genero4gl,
653    Generoper,
654    Genie,
655    Genshi,
656    GentooEbuild,
657    GentooEclass,
658    GerberImage,
659    GettextCatalog,
660    Gherkin,
661    GitAttributes,
662    GitConfig,
663    GitRevisionList,
664    Gleam,
665    GlimmerJS,
666    GlimmerTS,
667    GLSL,
668    Glyph,
669    GlyphBitmapDistributionFormat,
670    GN,
671    Gnuplot,
672    Go,
673    GoChecksums,
674    GoModule,
675    GoWorkspace,
676    GodotResource,
677    Golo,
678    Gosu,
679    Grace,
680    Gradle,
681    GradleKotlinDSL,
682    GrammaticalFramework,
683    GraphModelingLanguage,
684    GraphQL,
685    Graphviz,
686    Groovy,
687    GroovyServerPages,
688    GSC,
689    Hack,
690    Haml,
691    Handlebars,
692    HAProxy,
693    Harbour,
694    Hare,
695    Haskell,
696    Haxe,
697    HCL,
698    HIP,
699    HiveQL,
700    HLSL,
701    HOCON,
702    HolyC,
703    hoon,
704    HostsFile,
705    HTML,
706    HTMLPlusECR,
707    HTMLPlusEEX,
708    HTMLPlusERB,
709    HTMLPlusPHP,
710    HTMLPlusRazor,
711    HTTP,
712    HXML,
713    Hy,
714    HyPhy,
715    iCalendar,
716    IDL,
717    Idris,
718    IgnoreList,
719    IGORPro,
720    ImageJMacro,
721    Imba,
722    Inform7,
723    INI,
724    Ink,
725    InnoSetup,
726    Io,
727    Ioke,
728    IRClog,
729    Isabelle,
730    IsabelleROOT,
731    ISPC,
732    J,
733    Jai,
734    Janet,
735    JARManifest,
736    Jasmin,
737    Java,
738    JavaProperties,
739    JavaServerPages,
740    JavaTemplateEngine,
741    JavaScript,
742    JavaScriptPlusERB,
743    JCL,
744    JestSnapshot,
745    JetBrainsMPS,
746    JFlex,
747    Jinja,
748    Jison,
749    JisonLex,
750    Jolie,
751    jq,
752    JSON,
753    JSONwithComments,
754    JSON5,
755    JSONiq,
756    JSONLD,
757    Jsonnet,
758    Julia,
759    JuliaREPL,
760    JupyterNotebook,
761    Just,
762    KaitaiStruct,
763    KakouneScript,
764    KDL,
765    KerboScript,
766    KiCadLayout,
767    KiCadLegacyLayout,
768    KiCadSchematic,
769    Kickstart,
770    Kit,
771    Koka,
772    Kotlin,
773    KRL,
774    Kusto,
775    kvlang,
776    LabVIEW,
777    Lark,
778    Lasso,
779    Latte,
780    Lean,
781    Lean4,
782    Leo,
783    Less,
784    Lex,
785    LFE,
786    LigoLANG,
787    LilyPond,
788    Limbo,
789    LinearProgramming,
790    LinkerScript,
791    LinuxKernelModule,
792    Liquid,
793    LiterateAgda,
794    LiterateCoffeeScript,
795    LiterateHaskell,
796    LiveCodeScript,
797    LiveScript,
798    LLVM,
799    Logos,
800    Logtalk,
801    LOLCODE,
802    LookML,
803    LoomScript,
804    LSL,
805    LTspiceSymbol,
806    Lua,
807    Luau,
808    M,
809    M3U,
810    M4,
811    M4Sugar,
812    Macaulay2,
813    Makefile,
814    Mako,
815    Markdown,
816    Marko,
817    Mask,
818    Mathematica,
819    MATLAB,
820    MavenPOM,
821    Max,
822    MAXScript,
823    mcfunction,
824    mdsvex,
825    MDX,
826    Mercury,
827    Mermaid,
828    Meson,
829    Metal,
830    MicrosoftDeveloperStudioProject,
831    MicrosoftVisualStudioSolution,
832    MiniD,
833    MiniYAML,
834    MiniZinc,
835    MiniZincData,
836    Mint,
837    Mirah,
838    mIRCScript,
839    MLIR,
840    Modelica,
841    Modula2,
842    Modula3,
843    ModuleManagementSystem,
844    Mojo,
845    Monkey,
846    MonkeyC,
847    Moocode,
848    MoonBit,
849    MoonScript,
850    Motoko,
851    Motorola68KAssembly,
852    Move,
853    MQL4,
854    MQL5,
855    MTML,
856    MUF,
857    mupad,
858    Muse,
859    Mustache,
860    Myghty,
861    nanorc,
862    Nasal,
863    NASL,
864    NCL,
865    Nearley,
866    Nemerle,
867    NEON,
868    nesC,
869    NetLinx,
870    NetLinxPlusERB,
871    NetLogo,
872    NewLisp,
873    Nextflow,
874    Nginx,
875    Nim,
876    Ninja,
877    Nit,
878    Nix,
879    NL,
880    NMODL,
881    Noir,
882    NPMConfig,
883    NSIS,
884    Nu,
885    NumPy,
886    Nunjucks,
887    Nushell,
888    NWScript,
889    OASv2json,
890    OASv2yaml,
891    OASv3json,
892    OASv3yaml,
893    Oberon,
894    ObjDump,
895    ObjectDataInstanceNotation,
896    ObjectiveC,
897    ObjectiveCPlusPlus,
898    ObjectiveJ,
899    ObjectScript,
900    OCaml,
901    Odin,
902    Omgrofl,
903    OMNeTPlusPlusMSG,
904    OMNeTPlusPlusNED,
905    ooc,
906    Opa,
907    Opal,
908    OpenPolicyAgent,
909    OpenAPISpecificationv2,
910    OpenAPISpecificationv3,
911    OpenCL,
912    OpenEdgeABL,
913    OpenQASM,
914    OpenRCrunscript,
915    OpenSCAD,
916    OpenStepPropertyList,
917    OpenTypeFeatureFile,
918    OptionList,
919    Org,
920    OverpassQL,
921    Ox,
922    Oxygene,
923    Oz,
924    P4,
925    Pact,
926    Pan,
927    Papyrus,
928    Parrot,
929    ParrotAssembly,
930    ParrotInternalRepresentation,
931    Pascal,
932    Pawn,
933    PDDL,
934    PEGjs,
935    Pep8,
936    Perl,
937    PHP,
938    Pic,
939    Pickle,
940    PicoLisp,
941    PigLatin,
942    Pike,
943    PipRequirements,
944    Pkl,
945    PlantUML,
946    PLpgSQL,
947    PLSQL,
948    Pod,
949    Pod6,
950    PogoScript,
951    Polar,
952    Pony,
953    Portugol,
954    PostCSS,
955    PostScript,
956    POVRaySDL,
957    PowerBuilder,
958    PowerShell,
959    Praat,
960    Prisma,
961    Processing,
962    Procfile,
963    Proguard,
964    Prolog,
965    Promela,
966    PropellerSpin,
967    ProtocolBuffer,
968    ProtocolBufferTextFormat,
969    PublicKey,
970    Pug,
971    Puppet,
972    PureData,
973    PureBasic,
974    PureScript,
975    Pyret,
976    Python,
977    Pythonconsole,
978    Pythontraceback,
979    q,
980    QSharp,
981    QMake,
982    QML,
983    QtScript,
984    Quake,
985    QuickBASIC,
986    R,
987    Racket,
988    Ragel,
989    Raku,
990    RAML,
991    Rascal,
992    Rawtokendata,
993    RBS,
994    RDoc,
995    ReadlineConfig,
996    REALbasic,
997    Reason,
998    ReasonLIGO,
999    Rebol,
1000    RecordJar,
1001    Red,
1002    Redcode,
1003    RedirectRules,
1004    RegularExpression,
1005    RenPy,
1006    RenderScript,
1007    ReScript,
1008    reStructuredText,
1009    REXX,
1010    Rez,
1011    RichTextFormat,
1012    Ring,
1013    Riot,
1014    RMarkdown,
1015    RobotFramework,
1016    robotstxt,
1017    Roc,
1018    RocqProver,
1019    Roff,
1020    RoffManpage,
1021    RON,
1022    Rouge,
1023    RouterOSScript,
1024    RPC,
1025    RPGLE,
1026    RPMSpec,
1027    Ruby,
1028    RUNOFF,
1029    Rust,
1030    Sage,
1031    Sail,
1032    SaltStack,
1033    SAS,
1034    Sass,
1035    Scala,
1036    Scaml,
1037    Scenic,
1038    Scheme,
1039    Scilab,
1040    SCSS,
1041    sed,
1042    _Self,
1043    SELinuxPolicy,
1044    ShaderLab,
1045    Shell,
1046    ShellCheckConfig,
1047    ShellSession,
1048    Shen,
1049    Sieve,
1050    SimpleFileVerification,
1051    Singularity,
1052    Slang,
1053    Slash,
1054    Slice,
1055    Slim,
1056    Slint,
1057    Smali,
1058    Smalltalk,
1059    Smarty,
1060    Smithy,
1061    SmPL,
1062    SMT,
1063    Snakemake,
1064    Solidity,
1065    Soong,
1066    SourcePawn,
1067    SPARQL,
1068    SplineFontDatabase,
1069    SQF,
1070    SQL,
1071    SQLPL,
1072    Squirrel,
1073    SRecodeTemplate,
1074    SSHConfig,
1075    Stan,
1076    StandardML,
1077    STAR,
1078    Starlark,
1079    Stata,
1080    STL,
1081    STON,
1082    StringTemplate,
1083    Stylus,
1084    SubRipText,
1085    SugarSS,
1086    SuperCollider,
1087    SurvexData,
1088    Svelte,
1089    SVG,
1090    Sway,
1091    Sweave,
1092    Swift,
1093    SWIG,
1094    SystemVerilog,
1095    Tact,
1096    Talon,
1097    Tcl,
1098    Tcsh,
1099    Tea,
1100    templ,
1101    Terra,
1102    TerraformTemplate,
1103    TeX,
1104    Texinfo,
1105    Text,
1106    TextGrid,
1107    Textile,
1108    TextMateProperties,
1109    Thrift,
1110    TIProgram,
1111    TLVerilog,
1112    TLA,
1113    Toit,
1114    TOML,
1115    TorConfig,
1116    TreesitterQuery,
1117    TSPLIBdata,
1118    TSQL,
1119    TSV,
1120    TSX,
1121    Turing,
1122    Turtle,
1123    Twig,
1124    TXL,
1125    TypeLanguage,
1126    TypeScript,
1127    TypeSpec,
1128    Typst,
1129    UnifiedParallelC,
1130    Unity3DAsset,
1131    UnixAssembly,
1132    Uno,
1133    UnrealScript,
1134    UntypedPlutusCore,
1135    UrWeb,
1136    V,
1137    Vala,
1138    ValveDataFormat,
1139    VBA,
1140    VBScript,
1141    vCard,
1142    VCL,
1143    VelocityTemplateLanguage,
1144    Vento,
1145    Verilog,
1146    VHDL,
1147    VimHelpFile,
1148    VimScript,
1149    VimSnippet,
1150    VisualBasicNET,
1151    VisualBasic6_0,
1152    Volt,
1153    Vue,
1154    Vyper,
1155    WavefrontMaterial,
1156    WavefrontObject,
1157    WDL,
1158    WebOntologyLanguage,
1159    WebAssembly,
1160    WebAssemblyInterfaceType,
1161    WebIDL,
1162    WebVTT,
1163    WgetConfig,
1164    WGSL,
1165    Whiley,
1166    Wikitext,
1167    Win32MessageFile,
1168    WindowsRegistryEntries,
1169    wisp,
1170    WitcherScript,
1171    Wollok,
1172    WorldofWarcraftAddonData,
1173    Wren,
1174    XBitMap,
1175    XFontDirectoryIndex,
1176    XPixMap,
1177    X10,
1178    xBase,
1179    XC,
1180    XCompose,
1181    Xmake,
1182    XML,
1183    XMLPropertyList,
1184    Xojo,
1185    Xonsh,
1186    XPages,
1187    XProc,
1188    XQuery,
1189    XS,
1190    XSLT,
1191    Xtend,
1192    Yacc,
1193    YAML,
1194    YANG,
1195    YARA,
1196    YASnippet,
1197    Yul,
1198    ZAP,
1199    Zeek,
1200    ZenScript,
1201    Zephir,
1202    Zig,
1203    ZIL,
1204    Zimpl,
1205    Zmodel,
1206}
1207
1208impl Param for Language {
1209    fn name() -> &'static str {
1210        "language_code"
1211    }
1212
1213    fn value(&self) -> &'static str {
1214        match self {
1215            Language::Unknownlanguages => "unknown",
1216            Language::_1CEnterprise => "1c-enterprise",
1217            Language::_2DimensionalArray => "2-dimensional-array",
1218            Language::_4D => "4d",
1219            Language::ABAP => "abap",
1220            Language::ABAPCDS => "abap-cds",
1221            Language::ABNF => "abnf",
1222            Language::ActionScript => "actionscript",
1223            Language::Ada => "ada",
1224            Language::AdblockFilterList => "adblock-filter-list",
1225            Language::AdobeFontMetrics => "adobe-font-metrics",
1226            Language::Agda => "agda",
1227            Language::AGSScript => "ags-script",
1228            Language::AIDL => "aidl",
1229            Language::Aiken => "aiken",
1230            Language::AL => "al",
1231            Language::Alloy => "alloy",
1232            Language::AlpineAbuild => "alpine-abuild",
1233            Language::AltiumDesigner => "altium-designer",
1234            Language::AMPL => "ampl",
1235            Language::AngelScript => "angelscript",
1236            Language::AnswerSetProgramming => "answer-set-programming",
1237            Language::AntBuildSystem => "ant-build-system",
1238            Language::Antlers => "antlers",
1239            Language::ANTLR => "antlr",
1240            Language::ApacheConf => "apacheconf",
1241            Language::Apex => "apex",
1242            Language::APIBlueprint => "api-blueprint",
1243            Language::APL => "apl",
1244            Language::ApolloGuidanceComputer => "apollo-guidance-computer",
1245            Language::AppleScript => "applescript",
1246            Language::Arc => "arc",
1247            Language::AsciiDoc => "asciidoc",
1248            Language::ASL => "asl",
1249            Language::ASN1 => "asn.1",
1250            Language::ASPNET => "asp.net",
1251            Language::AspectJ => "aspectj",
1252            Language::Assembly => "assembly",
1253            Language::Astro => "astro",
1254            Language::Asymptote => "asymptote",
1255            Language::ATS => "ats",
1256            Language::Augeas => "augeas",
1257            Language::AutoHotkey => "autohotkey",
1258            Language::AutoIt => "autoit",
1259            Language::AvroIDL => "avro-idl",
1260            Language::Awk => "awk",
1261            Language::B4X => "b4x",
1262            Language::Ballerina => "ballerina",
1263            Language::BASIC => "basic",
1264            Language::Batchfile => "batchfile",
1265            Language::Beef => "beef",
1266            Language::Befunge => "befunge",
1267            Language::Berry => "berry",
1268            Language::BibTeX => "bibtex",
1269            Language::BibTeXStyle => "bibtex-style",
1270            Language::Bicep => "bicep",
1271            Language::Bikeshed => "bikeshed",
1272            Language::Bison => "bison",
1273            Language::BitBake => "bitbake",
1274            Language::Blade => "blade",
1275            Language::BlitzBasic => "blitzbasic",
1276            Language::BlitzMax => "blitzmax",
1277            Language::Bluespec => "bluespec",
1278            Language::BluespecBH => "bluespec-bh",
1279            Language::Boo => "boo",
1280            Language::Boogie => "boogie",
1281            Language::BQN => "bqn",
1282            Language::Brainfuck => "brainfuck",
1283            Language::BrighterScript => "brighterscript",
1284            Language::Brightscript => "brightscript",
1285            Language::Browserslist => "browserslist",
1286            Language::BuildStream => "buildstream",
1287            Language::C => "c",
1288            Language::CSharp => "c%23",
1289            Language::CPlusPlus => "c++",
1290            Language::CObjDump => "c-objdump",
1291            Language::C2hsHaskell => "c2hs-haskell",
1292            Language::CabalConfig => "cabal-config",
1293            Language::Caddyfile => "caddyfile",
1294            Language::Cadence => "cadence",
1295            Language::Cairo => "cairo",
1296            Language::CairoZero => "cairo-zero",
1297            Language::CameLIGO => "cameligo",
1298            Language::CAPCDS => "cap-cds",
1299            Language::CapnProto => "cap'n-proto",
1300            Language::Carbon => "carbon",
1301            Language::CartoCSS => "cartocss",
1302            Language::Ceylon => "ceylon",
1303            Language::Chapel => "chapel",
1304            Language::Charity => "charity",
1305            Language::Checksums => "checksums",
1306            Language::ChucK => "chuck",
1307            Language::CIL => "cil",
1308            Language::Circom => "circom",
1309            Language::Cirru => "cirru",
1310            Language::Clarion => "clarion",
1311            Language::Clarity => "clarity",
1312            Language::ClassicASP => "classic-asp",
1313            Language::Clean => "clean",
1314            Language::Click => "click",
1315            Language::CLIPS => "clips",
1316            Language::Clojure => "clojure",
1317            Language::ClosureTemplates => "closure-templates",
1318            Language::CloudFirestoreSecurityRules => "cloud-firestore-security-rules",
1319            Language::Clue => "clue",
1320            Language::CMake => "cmake",
1321            Language::COBOL => "cobol",
1322            Language::CODEOWNERS => "codeowners",
1323            Language::CodeQL => "codeql",
1324            Language::CoffeeScript => "coffeescript",
1325            Language::ColdFusion => "coldfusion",
1326            Language::ColdFusionCFC => "coldfusion-cfc",
1327            Language::COLLADA => "collada",
1328            Language::CommonLisp => "common-lisp",
1329            Language::CommonWorkflowLanguage => "common-workflow-language",
1330            Language::ComponentPascal => "component-pascal",
1331            Language::CoNLLU => "conll-u",
1332            Language::Cool => "cool",
1333            Language::CppObjDump => "cpp-objdump",
1334            Language::Creole => "creole",
1335            Language::crontab => "crontab",
1336            Language::Crystal => "crystal",
1337            Language::CSON => "cson",
1338            Language::Csound => "csound",
1339            Language::CsoundDocument => "csound-document",
1340            Language::CsoundScore => "csound-score",
1341            Language::CSS => "css",
1342            Language::CSV => "csv",
1343            Language::Cuda => "cuda",
1344            Language::CUE => "cue",
1345            Language::CueSheet => "cue-sheet",
1346            Language::cURLConfig => "curl-config",
1347            Language::Curry => "curry",
1348            Language::CWeb => "cweb",
1349            Language::Cycript => "cycript",
1350            Language::Cylc => "cylc",
1351            Language::Cypher => "cypher",
1352            Language::Cython => "cython",
1353            Language::D => "d",
1354            Language::DObjDump => "d-objdump",
1355            Language::D2 => "d2",
1356            Language::Dafny => "dafny",
1357            Language::DarcsPatch => "darcs-patch",
1358            Language::Dart => "dart",
1359            Language::Daslang => "daslang",
1360            Language::DataWeave => "dataweave",
1361            Language::DebianPackageControlFile => "debian-package-control-file",
1362            Language::DenizenScript => "denizenscript",
1363            Language::desktop => "desktop",
1364            Language::Dhall => "dhall",
1365            Language::Diff => "diff",
1366            Language::DIGITALCommandLanguage => "digital-command-language",
1367            Language::dircolors => "dircolors",
1368            Language::DirectX3DFile => "directx-3d-file",
1369            Language::DM => "dm",
1370            Language::DNSZone => "dns-zone",
1371            Language::Dockerfile => "dockerfile",
1372            Language::Dogescript => "dogescript",
1373            Language::Dotenv => "dotenv",
1374            Language::DTrace => "dtrace",
1375            Language::Dune => "dune",
1376            Language::Dylan => "dylan",
1377            Language::E => "e",
1378            Language::Eagle => "eagle",
1379            Language::Earthly => "earthly",
1380            Language::Easybuild => "easybuild",
1381            Language::EBNF => "ebnf",
1382            Language::eC => "ec",
1383            Language::EcereProjects => "ecere-projects",
1384            Language::ECL => "ecl",
1385            Language::ECLiPSe => "eclipse",
1386            Language::Ecmarkup => "ecmarkup",
1387            Language::Edge => "edge",
1388            Language::EdgeQL => "edgeql",
1389            Language::EditorConfig => "editorconfig",
1390            Language::EdjeDataCollection => "edje-data-collection",
1391            Language::edn => "edn",
1392            Language::Eiffel => "eiffel",
1393            Language::EJS => "ejs",
1394            Language::Elixir => "elixir",
1395            Language::Elm => "elm",
1396            Language::Elvish => "elvish",
1397            Language::ElvishTranscript => "elvish-transcript",
1398            Language::EmacsLisp => "emacs-lisp",
1399            Language::EmberScript => "emberscript",
1400            Language::Email => "e-mail",
1401            Language::EQ => "eq",
1402            Language::Erlang => "erlang",
1403            Language::Euphoria => "euphoria",
1404            Language::FSharp => "f%23",
1405            Language::FStar => "f*",
1406            Language::Factor => "factor",
1407            Language::Fancy => "fancy",
1408            Language::Fantom => "fantom",
1409            Language::Faust => "faust",
1410            Language::Fennel => "fennel",
1411            Language::FIGletFont => "figlet-font",
1412            Language::FilebenchWML => "filebench-wml",
1413            Language::Filterscript => "filterscript",
1414            Language::FIRRTL => "firrtl",
1415            Language::fish => "fish",
1416            Language::Fluent => "fluent",
1417            Language::FLUX => "flux",
1418            Language::Formatted => "formatted",
1419            Language::Forth => "forth",
1420            Language::Fortran => "fortran",
1421            Language::FortranFreeForm => "fortran-free-form",
1422            Language::FreeBASIC => "freebasic",
1423            Language::FreeMarker => "freemarker",
1424            Language::Frege => "frege",
1425            Language::Futhark => "futhark",
1426            Language::Gcode => "g-code",
1427            Language::GameMakerLanguage => "game-maker-language",
1428            Language::GAML => "gaml",
1429            Language::GAMS => "gams",
1430            Language::GAP => "gap",
1431            Language::GCCMachineDescription => "gcc-machine-description",
1432            Language::GDB => "gdb",
1433            Language::GDScript => "gdscript",
1434            Language::GDShader => "gdshader",
1435            Language::GEDCOM => "gedcom",
1436            Language::GemfileLock => "gemfile.lock",
1437            Language::Gemini => "gemini",
1438            Language::Genero4gl => "genero-4gl",
1439            Language::Generoper => "genero-per",
1440            Language::Genie => "genie",
1441            Language::Genshi => "genshi",
1442            Language::GentooEbuild => "gentoo-ebuild",
1443            Language::GentooEclass => "gentoo-eclass",
1444            Language::GerberImage => "gerber-image",
1445            Language::GettextCatalog => "gettext-catalog",
1446            Language::Gherkin => "gherkin",
1447            Language::GitAttributes => "git-attributes",
1448            Language::GitConfig => "git-config",
1449            Language::GitRevisionList => "git-revision-list",
1450            Language::Gleam => "gleam",
1451            Language::GlimmerJS => "glimmer-js",
1452            Language::GlimmerTS => "glimmer-ts",
1453            Language::GLSL => "glsl",
1454            Language::Glyph => "glyph",
1455            Language::GlyphBitmapDistributionFormat => "glyph-bitmap-distribution-format",
1456            Language::GN => "gn",
1457            Language::Gnuplot => "gnuplot",
1458            Language::Go => "go",
1459            Language::GoChecksums => "go-checksums",
1460            Language::GoModule => "go-module",
1461            Language::GoWorkspace => "go-workspace",
1462            Language::GodotResource => "godot-resource",
1463            Language::Golo => "golo",
1464            Language::Gosu => "gosu",
1465            Language::Grace => "grace",
1466            Language::Gradle => "gradle",
1467            Language::GradleKotlinDSL => "gradle-kotlin-dsl",
1468            Language::GrammaticalFramework => "grammatical-framework",
1469            Language::GraphModelingLanguage => "graph-modeling-language",
1470            Language::GraphQL => "graphql",
1471            Language::Graphviz => "graphviz-(dot)",
1472            Language::Groovy => "groovy",
1473            Language::GroovyServerPages => "groovy-server-pages",
1474            Language::GSC => "gsc",
1475            Language::Hack => "hack",
1476            Language::Haml => "haml",
1477            Language::Handlebars => "handlebars",
1478            Language::HAProxy => "haproxy",
1479            Language::Harbour => "harbour",
1480            Language::Hare => "hare",
1481            Language::Haskell => "haskell",
1482            Language::Haxe => "haxe",
1483            Language::HCL => "hcl",
1484            Language::HIP => "hip",
1485            Language::HiveQL => "hiveql",
1486            Language::HLSL => "hlsl",
1487            Language::HOCON => "hocon",
1488            Language::HolyC => "holyc",
1489            Language::hoon => "hoon",
1490            Language::HostsFile => "hosts-file",
1491            Language::HTML => "html",
1492            Language::HTMLPlusECR => "html+ecr",
1493            Language::HTMLPlusEEX => "html+eex",
1494            Language::HTMLPlusERB => "html+erb",
1495            Language::HTMLPlusPHP => "html+php",
1496            Language::HTMLPlusRazor => "html+razor",
1497            Language::HTTP => "http",
1498            Language::HXML => "hxml",
1499            Language::Hy => "hy",
1500            Language::HyPhy => "hyphy",
1501            Language::iCalendar => "icalendar",
1502            Language::IDL => "idl",
1503            Language::Idris => "idris",
1504            Language::IgnoreList => "ignore-list",
1505            Language::IGORPro => "igor-pro",
1506            Language::ImageJMacro => "imagej-macro",
1507            Language::Imba => "imba",
1508            Language::Inform7 => "inform-7",
1509            Language::INI => "ini",
1510            Language::Ink => "ink",
1511            Language::InnoSetup => "inno-setup",
1512            Language::Io => "io",
1513            Language::Ioke => "ioke",
1514            Language::IRClog => "irc-log",
1515            Language::Isabelle => "isabelle",
1516            Language::IsabelleROOT => "isabelle-root",
1517            Language::ISPC => "ispc",
1518            Language::J => "j",
1519            Language::Jai => "jai",
1520            Language::Janet => "janet",
1521            Language::JARManifest => "jar-manifest",
1522            Language::Jasmin => "jasmin",
1523            Language::Java => "java",
1524            Language::JavaProperties => "java-properties",
1525            Language::JavaServerPages => "java-server-pages",
1526            Language::JavaTemplateEngine => "java-template-engine",
1527            Language::JavaScript => "javascript",
1528            Language::JavaScriptPlusERB => "javascript+erb",
1529            Language::JCL => "jcl",
1530            Language::JestSnapshot => "jest-snapshot",
1531            Language::JetBrainsMPS => "jetbrains-mps",
1532            Language::JFlex => "jflex",
1533            Language::Jinja => "jinja",
1534            Language::Jison => "jison",
1535            Language::JisonLex => "jison-lex",
1536            Language::Jolie => "jolie",
1537            Language::jq => "jq",
1538            Language::JSON => "json",
1539            Language::JSONwithComments => "json-with-comments",
1540            Language::JSON5 => "json5",
1541            Language::JSONiq => "jsoniq",
1542            Language::JSONLD => "jsonld",
1543            Language::Jsonnet => "jsonnet",
1544            Language::Julia => "julia",
1545            Language::JuliaREPL => "julia-repl",
1546            Language::JupyterNotebook => "jupyter-notebook",
1547            Language::Just => "just",
1548            Language::KaitaiStruct => "kaitai-struct",
1549            Language::KakouneScript => "kakounescript",
1550            Language::KDL => "kdl",
1551            Language::KerboScript => "kerboscript",
1552            Language::KiCadLayout => "kicad-layout",
1553            Language::KiCadLegacyLayout => "kicad-legacy-layout",
1554            Language::KiCadSchematic => "kicad-schematic",
1555            Language::Kickstart => "kickstart",
1556            Language::Kit => "kit",
1557            Language::Koka => "koka",
1558            Language::Kotlin => "kotlin",
1559            Language::KRL => "krl",
1560            Language::Kusto => "kusto",
1561            Language::kvlang => "kvlang",
1562            Language::LabVIEW => "labview",
1563            Language::Lark => "lark",
1564            Language::Lasso => "lasso",
1565            Language::Latte => "latte",
1566            Language::Lean => "lean",
1567            Language::Lean4 => "lean-4",
1568            Language::Leo => "leo",
1569            Language::Less => "less",
1570            Language::Lex => "lex",
1571            Language::LFE => "lfe",
1572            Language::LigoLANG => "ligolang",
1573            Language::LilyPond => "lilypond",
1574            Language::Limbo => "limbo",
1575            Language::LinearProgramming => "linear-programming",
1576            Language::LinkerScript => "linker-script",
1577            Language::LinuxKernelModule => "linux-kernel-module",
1578            Language::Liquid => "liquid",
1579            Language::LiterateAgda => "literate-agda",
1580            Language::LiterateCoffeeScript => "literate-coffeescript",
1581            Language::LiterateHaskell => "literate-haskell",
1582            Language::LiveCodeScript => "livecode-script",
1583            Language::LiveScript => "livescript",
1584            Language::LLVM => "llvm",
1585            Language::Logos => "logos",
1586            Language::Logtalk => "logtalk",
1587            Language::LOLCODE => "lolcode",
1588            Language::LookML => "lookml",
1589            Language::LoomScript => "loomscript",
1590            Language::LSL => "lsl",
1591            Language::LTspiceSymbol => "ltspice-symbol",
1592            Language::Lua => "lua",
1593            Language::Luau => "luau",
1594            Language::M => "m",
1595            Language::M3U => "m3u",
1596            Language::M4 => "m4",
1597            Language::M4Sugar => "m4sugar",
1598            Language::Macaulay2 => "macaulay2",
1599            Language::Makefile => "makefile",
1600            Language::Mako => "mako",
1601            Language::Markdown => "markdown",
1602            Language::Marko => "marko",
1603            Language::Mask => "mask",
1604            Language::Mathematica => "mathematica",
1605            Language::MATLAB => "matlab",
1606            Language::MavenPOM => "maven-pom",
1607            Language::Max => "max",
1608            Language::MAXScript => "maxscript",
1609            Language::mcfunction => "mcfunction",
1610            Language::mdsvex => "mdsvex",
1611            Language::MDX => "mdx",
1612            Language::Mercury => "mercury",
1613            Language::Mermaid => "mermaid",
1614            Language::Meson => "meson",
1615            Language::Metal => "metal",
1616            Language::MicrosoftDeveloperStudioProject => "microsoft-developer-studio-project",
1617            Language::MicrosoftVisualStudioSolution => "microsoft-visual-studio-solution",
1618            Language::MiniD => "minid",
1619            Language::MiniYAML => "miniyaml",
1620            Language::MiniZinc => "minizinc",
1621            Language::MiniZincData => "minizinc-data",
1622            Language::Mint => "mint",
1623            Language::Mirah => "mirah",
1624            Language::mIRCScript => "mirc-script",
1625            Language::MLIR => "mlir",
1626            Language::Modelica => "modelica",
1627            Language::Modula2 => "modula-2",
1628            Language::Modula3 => "modula-3",
1629            Language::ModuleManagementSystem => "module-management-system",
1630            Language::Mojo => "mojo",
1631            Language::Monkey => "monkey",
1632            Language::MonkeyC => "monkey-c",
1633            Language::Moocode => "moocode",
1634            Language::MoonBit => "moonbit",
1635            Language::MoonScript => "moonscript",
1636            Language::Motoko => "motoko",
1637            Language::Motorola68KAssembly => "motorola-68k-assembly",
1638            Language::Move => "move",
1639            Language::MQL4 => "mql4",
1640            Language::MQL5 => "mql5",
1641            Language::MTML => "mtml",
1642            Language::MUF => "muf",
1643            Language::mupad => "mupad",
1644            Language::Muse => "muse",
1645            Language::Mustache => "mustache",
1646            Language::Myghty => "myghty",
1647            Language::nanorc => "nanorc",
1648            Language::Nasal => "nasal",
1649            Language::NASL => "nasl",
1650            Language::NCL => "ncl",
1651            Language::Nearley => "nearley",
1652            Language::Nemerle => "nemerle",
1653            Language::NEON => "neon",
1654            Language::nesC => "nesc",
1655            Language::NetLinx => "netlinx",
1656            Language::NetLinxPlusERB => "netlinx+erb",
1657            Language::NetLogo => "netlogo",
1658            Language::NewLisp => "newlisp",
1659            Language::Nextflow => "nextflow",
1660            Language::Nginx => "nginx",
1661            Language::Nim => "nim",
1662            Language::Ninja => "ninja",
1663            Language::Nit => "nit",
1664            Language::Nix => "nix",
1665            Language::NL => "nl",
1666            Language::NMODL => "nmodl",
1667            Language::Noir => "noir",
1668            Language::NPMConfig => "npm-config",
1669            Language::NSIS => "nsis",
1670            Language::Nu => "nu",
1671            Language::NumPy => "numpy",
1672            Language::Nunjucks => "nunjucks",
1673            Language::Nushell => "nushell",
1674            Language::NWScript => "nwscript",
1675            Language::OASv2json => "oasv2-json",
1676            Language::OASv2yaml => "oasv2-yaml",
1677            Language::OASv3json => "oasv3-json",
1678            Language::OASv3yaml => "oasv3-yaml",
1679            Language::Oberon => "oberon",
1680            Language::ObjDump => "objdump",
1681            Language::ObjectDataInstanceNotation => "object-data-instance-notation",
1682            Language::ObjectiveC => "objective-c",
1683            Language::ObjectiveCPlusPlus => "objective-c++",
1684            Language::ObjectiveJ => "objective-j",
1685            Language::ObjectScript => "objectscript",
1686            Language::OCaml => "ocaml",
1687            Language::Odin => "odin",
1688            Language::Omgrofl => "omgrofl",
1689            Language::OMNeTPlusPlusMSG => "omnet++-msg",
1690            Language::OMNeTPlusPlusNED => "omnet++-ned",
1691            Language::ooc => "ooc",
1692            Language::Opa => "opa",
1693            Language::Opal => "opal",
1694            Language::OpenPolicyAgent => "open-policy-agent",
1695            Language::OpenAPISpecificationv2 => "openapi-specification-v2",
1696            Language::OpenAPISpecificationv3 => "openapi-specification-v3",
1697            Language::OpenCL => "opencl",
1698            Language::OpenEdgeABL => "openedge-abl",
1699            Language::OpenQASM => "openqasm",
1700            Language::OpenRCrunscript => "openrc-runscript",
1701            Language::OpenSCAD => "openscad",
1702            Language::OpenStepPropertyList => "openstep-property-list",
1703            Language::OpenTypeFeatureFile => "opentype-feature-file",
1704            Language::OptionList => "option-list",
1705            Language::Org => "org",
1706            Language::OverpassQL => "overpassql",
1707            Language::Ox => "ox",
1708            Language::Oxygene => "oxygene",
1709            Language::Oz => "oz",
1710            Language::P4 => "p4",
1711            Language::Pact => "pact",
1712            Language::Pan => "pan",
1713            Language::Papyrus => "papyrus",
1714            Language::Parrot => "parrot",
1715            Language::ParrotAssembly => "parrot-assembly",
1716            Language::ParrotInternalRepresentation => "parrot-internal-representation",
1717            Language::Pascal => "pascal",
1718            Language::Pawn => "pawn",
1719            Language::PDDL => "pddl",
1720            Language::PEGjs => "peg.js",
1721            Language::Pep8 => "pep8",
1722            Language::Perl => "perl",
1723            Language::PHP => "php",
1724            Language::Pic => "pic",
1725            Language::Pickle => "pickle",
1726            Language::PicoLisp => "picolisp",
1727            Language::PigLatin => "piglatin",
1728            Language::Pike => "pike",
1729            Language::PipRequirements => "pip-requirements",
1730            Language::Pkl => "pkl",
1731            Language::PlantUML => "plantuml",
1732            Language::PLpgSQL => "plpgsql",
1733            Language::PLSQL => "plsql",
1734            Language::Pod => "pod",
1735            Language::Pod6 => "pod-6",
1736            Language::PogoScript => "pogoscript",
1737            Language::Polar => "polar",
1738            Language::Pony => "pony",
1739            Language::Portugol => "portugol",
1740            Language::PostCSS => "postcss",
1741            Language::PostScript => "postscript",
1742            Language::POVRaySDL => "pov-ray-sdl",
1743            Language::PowerBuilder => "powerbuilder",
1744            Language::PowerShell => "powershell",
1745            Language::Praat => "praat",
1746            Language::Prisma => "prisma",
1747            Language::Processing => "processing",
1748            Language::Procfile => "procfile",
1749            Language::Proguard => "proguard",
1750            Language::Prolog => "prolog",
1751            Language::Promela => "promela",
1752            Language::PropellerSpin => "propeller-spin",
1753            Language::ProtocolBuffer => "protocol-buffer",
1754            Language::ProtocolBufferTextFormat => "protocol-buffer-text-format",
1755            Language::PublicKey => "public-key",
1756            Language::Pug => "pug",
1757            Language::Puppet => "puppet",
1758            Language::PureData => "pure-data",
1759            Language::PureBasic => "purebasic",
1760            Language::PureScript => "purescript",
1761            Language::Pyret => "pyret",
1762            Language::Python => "python",
1763            Language::Pythonconsole => "python-console",
1764            Language::Pythontraceback => "python-traceback",
1765            Language::q => "q",
1766            Language::QSharp => "q%23",
1767            Language::QMake => "qmake",
1768            Language::QML => "qml",
1769            Language::QtScript => "qt-script",
1770            Language::Quake => "quake",
1771            Language::QuickBASIC => "quickbasic",
1772            Language::R => "r",
1773            Language::Racket => "racket",
1774            Language::Ragel => "ragel",
1775            Language::Raku => "raku",
1776            Language::RAML => "raml",
1777            Language::Rascal => "rascal",
1778            Language::Rawtokendata => "raw-token-data",
1779            Language::RBS => "rbs",
1780            Language::RDoc => "rdoc",
1781            Language::ReadlineConfig => "readline-config",
1782            Language::REALbasic => "realbasic",
1783            Language::Reason => "reason",
1784            Language::ReasonLIGO => "reasonligo",
1785            Language::Rebol => "rebol",
1786            Language::RecordJar => "record-jar",
1787            Language::Red => "red",
1788            Language::Redcode => "redcode",
1789            Language::RedirectRules => "redirect-rules",
1790            Language::RegularExpression => "regular-expression",
1791            Language::RenPy => "ren'py",
1792            Language::RenderScript => "renderscript",
1793            Language::ReScript => "rescript",
1794            Language::reStructuredText => "restructuredtext",
1795            Language::REXX => "rexx",
1796            Language::Rez => "rez",
1797            Language::RichTextFormat => "rich-text-format",
1798            Language::Ring => "ring",
1799            Language::Riot => "riot",
1800            Language::RMarkdown => "rmarkdown",
1801            Language::RobotFramework => "robotframework",
1802            Language::robotstxt => "robots.txt",
1803            Language::Roc => "roc",
1804            Language::RocqProver => "rocq-prover",
1805            Language::Roff => "roff",
1806            Language::RoffManpage => "roff-manpage",
1807            Language::RON => "ron",
1808            Language::Rouge => "rouge",
1809            Language::RouterOSScript => "routeros-script",
1810            Language::RPC => "rpc",
1811            Language::RPGLE => "rpgle",
1812            Language::RPMSpec => "rpm-spec",
1813            Language::Ruby => "ruby",
1814            Language::RUNOFF => "runoff",
1815            Language::Rust => "rust",
1816            Language::Sage => "sage",
1817            Language::Sail => "sail",
1818            Language::SaltStack => "saltstack",
1819            Language::SAS => "sas",
1820            Language::Sass => "sass",
1821            Language::Scala => "scala",
1822            Language::Scaml => "scaml",
1823            Language::Scenic => "scenic",
1824            Language::Scheme => "scheme",
1825            Language::Scilab => "scilab",
1826            Language::SCSS => "scss",
1827            Language::sed => "sed",
1828            Language::_Self => "self",
1829            Language::SELinuxPolicy => "selinux-policy",
1830            Language::ShaderLab => "shaderlab",
1831            Language::Shell => "shell",
1832            Language::ShellCheckConfig => "shellcheck-config",
1833            Language::ShellSession => "shellsession",
1834            Language::Shen => "shen",
1835            Language::Sieve => "sieve",
1836            Language::SimpleFileVerification => "simple-file-verification",
1837            Language::Singularity => "singularity",
1838            Language::Slang => "slang",
1839            Language::Slash => "slash",
1840            Language::Slice => "slice",
1841            Language::Slim => "slim",
1842            Language::Slint => "slint",
1843            Language::Smali => "smali",
1844            Language::Smalltalk => "smalltalk",
1845            Language::Smarty => "smarty",
1846            Language::Smithy => "smithy",
1847            Language::SmPL => "smpl",
1848            Language::SMT => "smt",
1849            Language::Snakemake => "snakemake",
1850            Language::Solidity => "solidity",
1851            Language::Soong => "soong",
1852            Language::SourcePawn => "sourcepawn",
1853            Language::SPARQL => "sparql",
1854            Language::SplineFontDatabase => "spline-font-database",
1855            Language::SQF => "sqf",
1856            Language::SQL => "sql",
1857            Language::SQLPL => "sqlpl",
1858            Language::Squirrel => "squirrel",
1859            Language::SRecodeTemplate => "srecode-template",
1860            Language::SSHConfig => "ssh-config",
1861            Language::Stan => "stan",
1862            Language::StandardML => "standard-ml",
1863            Language::STAR => "star",
1864            Language::Starlark => "starlark",
1865            Language::Stata => "stata",
1866            Language::STL => "stl",
1867            Language::STON => "ston",
1868            Language::StringTemplate => "stringtemplate",
1869            Language::Stylus => "stylus",
1870            Language::SubRipText => "subrip-text",
1871            Language::SugarSS => "sugarss",
1872            Language::SuperCollider => "supercollider",
1873            Language::SurvexData => "survex-data",
1874            Language::Svelte => "svelte",
1875            Language::SVG => "svg",
1876            Language::Sway => "sway",
1877            Language::Sweave => "sweave",
1878            Language::Swift => "swift",
1879            Language::SWIG => "swig",
1880            Language::SystemVerilog => "systemverilog",
1881            Language::Tact => "tact",
1882            Language::Talon => "talon",
1883            Language::Tcl => "tcl",
1884            Language::Tcsh => "tcsh",
1885            Language::Tea => "tea",
1886            Language::templ => "templ",
1887            Language::Terra => "terra",
1888            Language::TerraformTemplate => "terraform-template",
1889            Language::TeX => "tex",
1890            Language::Texinfo => "texinfo",
1891            Language::Text => "text",
1892            Language::TextGrid => "textgrid",
1893            Language::Textile => "textile",
1894            Language::TextMateProperties => "textmate-properties",
1895            Language::Thrift => "thrift",
1896            Language::TIProgram => "ti-program",
1897            Language::TLVerilog => "tl-verilog",
1898            Language::TLA => "tla",
1899            Language::Toit => "toit",
1900            Language::TOML => "toml",
1901            Language::TorConfig => "tor-config",
1902            Language::TreesitterQuery => "tree-sitter-query",
1903            Language::TSPLIBdata => "tsplib-data",
1904            Language::TSQL => "tsql",
1905            Language::TSV => "tsv",
1906            Language::TSX => "tsx",
1907            Language::Turing => "turing",
1908            Language::Turtle => "turtle",
1909            Language::Twig => "twig",
1910            Language::TXL => "txl",
1911            Language::TypeLanguage => "type-language",
1912            Language::TypeScript => "typescript",
1913            Language::TypeSpec => "typespec",
1914            Language::Typst => "typst",
1915            Language::UnifiedParallelC => "unified-parallel-c",
1916            Language::Unity3DAsset => "unity3d-asset",
1917            Language::UnixAssembly => "unix-assembly",
1918            Language::Uno => "uno",
1919            Language::UnrealScript => "unrealscript",
1920            Language::UntypedPlutusCore => "untyped-plutus-core",
1921            Language::UrWeb => "urweb",
1922            Language::V => "v",
1923            Language::Vala => "vala",
1924            Language::ValveDataFormat => "valve-data-format",
1925            Language::VBA => "vba",
1926            Language::VBScript => "vbscript",
1927            Language::vCard => "vcard",
1928            Language::VCL => "vcl",
1929            Language::VelocityTemplateLanguage => "velocity-template-language",
1930            Language::Vento => "vento",
1931            Language::Verilog => "verilog",
1932            Language::VHDL => "vhdl",
1933            Language::VimHelpFile => "vim-help-file",
1934            Language::VimScript => "vim-script",
1935            Language::VimSnippet => "vim-snippet",
1936            Language::VisualBasicNET => "visual-basic-.net",
1937            Language::VisualBasic6_0 => "visual-basic-6.0",
1938            Language::Volt => "volt",
1939            Language::Vue => "vue",
1940            Language::Vyper => "vyper",
1941            Language::WavefrontMaterial => "wavefront-material",
1942            Language::WavefrontObject => "wavefront-object",
1943            Language::WDL => "wdl",
1944            Language::WebOntologyLanguage => "web-ontology-language",
1945            Language::WebAssembly => "webassembly",
1946            Language::WebAssemblyInterfaceType => "webassembly-interface-type",
1947            Language::WebIDL => "webidl",
1948            Language::WebVTT => "webvtt",
1949            Language::WgetConfig => "wget-config",
1950            Language::WGSL => "wgsl",
1951            Language::Whiley => "whiley",
1952            Language::Wikitext => "wikitext",
1953            Language::Win32MessageFile => "win32-message-file",
1954            Language::WindowsRegistryEntries => "windows-registry-entries",
1955            Language::wisp => "wisp",
1956            Language::WitcherScript => "witcher-script",
1957            Language::Wollok => "wollok",
1958            Language::WorldofWarcraftAddonData => "world-of-warcraft-addon-data",
1959            Language::Wren => "wren",
1960            Language::XBitMap => "x-bitmap",
1961            Language::XFontDirectoryIndex => "x-font-directory-index",
1962            Language::XPixMap => "x-pixmap",
1963            Language::X10 => "x10",
1964            Language::xBase => "xbase",
1965            Language::XC => "xc",
1966            Language::XCompose => "xcompose",
1967            Language::Xmake => "xmake",
1968            Language::XML => "xml",
1969            Language::XMLPropertyList => "xml-property-list",
1970            Language::Xojo => "xojo",
1971            Language::Xonsh => "xonsh",
1972            Language::XPages => "xpages",
1973            Language::XProc => "xproc",
1974            Language::XQuery => "xquery",
1975            Language::XS => "xs",
1976            Language::XSLT => "xslt",
1977            Language::Xtend => "xtend",
1978            Language::Yacc => "yacc",
1979            Language::YAML => "yaml",
1980            Language::YANG => "yang",
1981            Language::YARA => "yara",
1982            Language::YASnippet => "yasnippet",
1983            Language::Yul => "yul",
1984            Language::ZAP => "zap",
1985            Language::Zeek => "zeek",
1986            Language::ZenScript => "zenscript",
1987            Language::Zephir => "zephir",
1988            Language::Zig => "zig",
1989            Language::ZIL => "zil",
1990            Language::Zimpl => "zimpl",
1991            Language::Zmodel => "zmodel",
1992        }
1993    }
1994}