/** * The ast-grep language catalog. * * Generated by scripts/gen-languages.mjs against ast-grep 0.45.0 on 2026-08-05. * Content is probed from the installed binary: aliases via --lang, * extensions via per-extension temp-file detection. * The alias is the value accepted by `--lang` and the YAML `language:` field. */ export interface LanguageInfo { aliases: string[]; extensions: string[]; name: string; } export const LANGUAGES: readonly LanguageInfo[] = [ { name: "Bash", aliases: ["bash"], extensions: ["sh", "bash", "bats", "cgi", "command", "env", "fcgi", "ksh", "tmux", "tool", "zsh"], }, { name: "C", aliases: ["c"], extensions: ["c", "h"] }, { name: "CSharp", aliases: ["cs", "csharp"], extensions: ["cs"] }, { name: "Cpp", aliases: ["cc", "c++", "cpp", "cxx"], extensions: ["cc", "cpp", "cxx", "hpp", "hh", "c++", "cu", "ino"], }, { name: "Css", aliases: ["css"], extensions: ["css", "scss"] }, { name: "Dart", aliases: ["dart"], extensions: ["dart"] }, { name: "Elixir", aliases: ["ex", "elixir"], extensions: ["ex", "exs"] }, { name: "Go", aliases: ["go", "golang"], extensions: ["go"] }, { name: "Haskell", aliases: ["hs", "haskell"], extensions: ["hs"] }, { name: "Hcl", aliases: ["hcl"], extensions: ["hcl", "nomad", "tf", "tfvars", "workflow"] }, { name: "Html", aliases: ["html"], extensions: ["html", "htm", "xhtml"] }, { name: "Java", aliases: ["java"], extensions: ["java"] }, { name: "JavaScript", aliases: ["javascript", "js", "jsx"], extensions: ["js", "jsx", "mjs", "cjs"] }, { name: "Json", aliases: ["json"], extensions: ["json"] }, { name: "Kotlin", aliases: ["kotlin", "kt"], extensions: ["kt", "kts", "ktm"] }, { name: "Lua", aliases: ["lua"], extensions: ["lua"] }, { name: "Markdown", aliases: ["markdown", "md"], extensions: ["md", "markdown"] }, { name: "Nix", aliases: ["nix"], extensions: ["nix"] }, { name: "Php", aliases: ["php"], extensions: ["php"] }, { name: "Python", aliases: ["py", "python"], extensions: ["py", "py3", "pyi", "bzl", "bazel"] }, { name: "Ruby", aliases: ["rb", "ruby"], extensions: ["rb", "rbw", "gemspec"] }, { name: "Rust", aliases: ["rs", "rust"], extensions: ["rs"] }, { name: "Scala", aliases: ["scala"], extensions: ["scala", "sc", "sbt"] }, { name: "Solidity", aliases: ["solidity", "sol"], extensions: ["sol"] }, { name: "Swift", aliases: ["swift"], extensions: ["swift"] }, { name: "Tsx", aliases: ["tsx"], extensions: ["tsx"] }, { name: "TypeScript", aliases: ["ts", "typescript"], extensions: ["ts", "mts", "cts"] }, { name: "Yaml", aliases: ["yml", "yaml"], extensions: ["yaml", "yml"] }, ]; /** Renders the catalog as a compact table for the languages tool. */ export function formatLanguages(): string { return LANGUAGES.map((language) => { const aliases = language.aliases.join(", "); const extensions = language.extensions.join(", "); return `${language.name}: aliases [${aliases}], extensions [${extensions}]`; }).join("\n"); }