"""Canonical extension identities shared by discovery, parsing and freshness."""

LANG_EXTENSIONS: dict[str, str] = {
    '.bash': 'bash',
    '.c': 'c',
    '.cc': 'cpp',
    '.cjs': 'javascript',
    '.clj': 'clojure',
    '.cljc': 'clojure',
    '.cljs': 'clojure',
    '.cpp': 'cpp',
    '.cr': 'crystal',
    '.cs': 'csharp',
    '.css': 'css',
    '.cts': 'typescript',
    '.cxx': 'cpp',
    '.dart': 'dart',
    '.erl': 'erlang',
    '.ex': 'elixir',
    '.exs': 'elixir',
    '.fs': 'fsharp',
    '.fsi': 'fsharp',
    '.fsx': 'fsharp',
    '.go': 'go',
    '.h': 'c',
    '.hcl': 'hcl',
    '.hh': 'cpp',
    '.hpp': 'cpp',
    '.hrl': 'erlang',
    '.hs': 'haskell',
    '.htm': 'html',
    '.html': 'html',
    '.hxx': 'cpp',
    '.java': 'java',
    '.jl': 'julia',
    '.js': 'javascript',
    '.json': 'json',
    '.jsonc': 'json',
    '.jsx': 'javascript',
    '.kt': 'kotlin',
    '.kts': 'kotlin',
    '.lhs': 'haskell',
    '.lua': 'lua',
    '.m': 'objc',
    '.metal': 'cpp',
    '.mjs': 'javascript',
    '.ml': 'ocaml',
    '.mli': 'ocaml',
    '.mm': 'objc',
    '.mts': 'typescript',
    '.nim': 'nim',
    '.nimble': 'nim',
    '.php': 'php',
    '.pl': 'perl',
    '.pm': 'perl',
    '.py': 'python',
    '.pyi': 'python',
    '.r': 'r',
    '.rb': 'ruby',
    '.rs': 'rust',
    '.sc': 'scala',
    '.scala': 'scala',
    '.scss': 'css',
    '.sh': 'bash',
    '.swift': 'swift',
    '.tf': 'hcl',
    '.tfvars': 'hcl',
    '.toml': 'toml',
    '.ts': 'typescript',
    '.tsx': 'typescript',
    '.yaml': 'yaml',
    '.yml': 'yaml',
    '.zig': 'zig',
    '.zsh': 'bash',
}
