#[derive(Debug)]
struct LanguageInfo {
name: &'static str,
extensions: &'static [&'static str],
}
static LANGUAGE_INFO: &[LanguageInfo] = &[
LanguageInfo {
name: "Rust",
extensions: &["rs"],
},
LanguageInfo {
name: "C",
extensions: &["c", "h"],
},
LanguageInfo {
name: "C++",
extensions: &["cpp", "cc", "cxx", "hpp", "hxx", "cu", "cuh", "C", "H"],
},
LanguageInfo {
name: "Go",
extensions: &["go"],
},
LanguageInfo {
name: "Zig",
extensions: &["zig"],
},
LanguageInfo {
name: "Java",
extensions: &["java"],
},
LanguageInfo {
name: "Kotlin",
extensions: &["kt", "kts"],
},
LanguageInfo {
name: "Scala",
extensions: &["scala", "sc"],
},
LanguageInfo {
name: "Groovy",
extensions: &["groovy", "gvy", "gy", "gsh"],
},
LanguageInfo {
name: "Clojure",
extensions: &["clj", "cljs", "cljc", "edn"],
},
LanguageInfo {
name: "C#",
extensions: &["cs"],
},
LanguageInfo {
name: "F#",
extensions: &["fs", "fsi", "fsx"],
},
LanguageInfo {
name: "Visual Basic",
extensions: &["vb"],
},
LanguageInfo {
name: "Python",
extensions: &["py", "pyw", "pyi", "pyx", "pxd"],
},
LanguageInfo {
name: "JavaScript",
extensions: &["js", "jsx", "mjs", "cjs"],
},
LanguageInfo {
name: "TypeScript",
extensions: &["ts", "tsx", "d.ts"],
},
LanguageInfo {
name: "Ruby",
extensions: &["rb", "rbw", "rake", "gemspec"],
},
LanguageInfo {
name: "PHP",
extensions: &["php", "phtml", "php3", "php4", "php5", "phps"],
},
LanguageInfo {
name: "Perl",
extensions: &["pl", "pm", "t", "pod"],
},
LanguageInfo {
name: "Lua",
extensions: &["lua"],
},
LanguageInfo {
name: "Haskell",
extensions: &["hs", "lhs"],
},
LanguageInfo {
name: "Elixir",
extensions: &["ex", "exs"],
},
LanguageInfo {
name: "Erlang",
extensions: &["erl", "hrl"],
},
LanguageInfo {
name: "OCaml",
extensions: &["ml", "mli"],
},
LanguageInfo {
name: "ReasonML",
extensions: &["re", "rei"],
},
LanguageInfo {
name: "Elm",
extensions: &["elm"],
},
LanguageInfo {
name: "PureScript",
extensions: &["purs"],
},
LanguageInfo {
name: "Lean",
extensions: &["lean"],
},
LanguageInfo {
name: "Swift",
extensions: &["swift"],
},
LanguageInfo {
name: "Objective-C",
extensions: &["m", "mm", "M"],
},
LanguageInfo {
name: "Dart",
extensions: &["dart"],
},
LanguageInfo {
name: "Bash",
extensions: &["sh", "bash", "zsh"],
},
LanguageInfo {
name: "Zsh",
extensions: &["zsh"],
},
LanguageInfo {
name: "Fish",
extensions: &["fish"],
},
LanguageInfo {
name: "PowerShell",
extensions: &["ps1", "psm1", "psd1"],
},
LanguageInfo {
name: "SQL",
extensions: &["sql", "ddl", "dml"],
},
LanguageInfo {
name: "HCL",
extensions: &["tf", "tfvars", "hcl"],
},
LanguageInfo {
name: "YAML",
extensions: &["yml", "yaml"],
},
LanguageInfo {
name: "TOML",
extensions: &["toml"],
},
LanguageInfo {
name: "JSON",
extensions: &["json", "jsonc"],
},
LanguageInfo {
name: "XML",
extensions: &["xml", "xsd", "xsl", "xslt"],
},
LanguageInfo {
name: "Markdown",
extensions: &["md", "markdown", "mdown", "mkd"],
},
LanguageInfo {
name: "LaTeX",
extensions: &["tex", "latex", "sty", "cls"],
},
LanguageInfo {
name: "AsciiDoc",
extensions: &["adoc", "asciidoc"],
},
LanguageInfo {
name: "Makefile",
extensions: &["mk", "make"],
},
LanguageInfo {
name: "CMake",
extensions: &["cmake"],
},
LanguageInfo {
name: "Bazel",
extensions: &["bazel", "bzl"],
},
LanguageInfo {
name: "Gradle",
extensions: &["gradle"],
},
LanguageInfo {
name: "Maven",
extensions: &["pom"],
},
LanguageInfo {
name: "Solidity",
extensions: &["sol"],
},
LanguageInfo {
name: "VHDL",
extensions: &["vhd", "vhdl"],
},
LanguageInfo {
name: "Verilog",
extensions: &["v", "vh"],
},
LanguageInfo {
name: "R",
extensions: &["r", "R"],
},
LanguageInfo {
name: "Julia",
extensions: &["jl"],
},
LanguageInfo {
name: "Matlab",
extensions: &["m"],
},
LanguageInfo {
name: "Assembly",
extensions: &["s", "S", "asm"],
},
LanguageInfo {
name: "PTX",
extensions: &["ptx"],
},
LanguageInfo {
name: "Unknown",
extensions: &[],
},
];