import type { BuiltinCatalog, FiletypeRules } from "./schema.js"; export const BUILTIN_FILETYPE_RULES: Required = { exactFilenames: {}, extensions: { ".js": "javascript", ".jsx": "javascriptreact", ".ts": "typescript", ".tsx": "typescriptreact", ".py": "python", ".go": "go", ".rs": "rust", ".yaml": "yaml", ".yml": "yaml", ".json": "json", ".jsonc": "jsonc", ".java": "java", }, }; export const BUILTIN_CATALOG: BuiltinCatalog = { servers: { vtsls: { id: "vtsls", displayName: "JavaScript/TypeScript Language Server (VTSLS)", filetypes: ["javascript", "javascriptreact", "typescript", "typescriptreact"], rootMarkers: [ "package.json", "tsconfig.json", "jsconfig.json", "pnpm-workspace.yaml", "bun.lock", "bun.lockb", "yarn.lock", ".git", ], install: { type: "npm", packages: { "@vtsls/language-server": "0.3.0", typescript: "6.0.3", }, bin: "vtsls", }, command: ["{installBin}/vtsls", "--stdio"], env: {}, settings: {}, initializationOptions: {}, lazy: true, }, pyright: { id: "pyright", displayName: "Pyright", filetypes: ["python"], rootMarkers: ["pyproject.toml", "setup.py", "setup.cfg", "requirements.txt", "uv.lock", "poetry.lock", ".git"], install: { type: "npm", packages: { pyright: "1.1.410", }, bin: "pyright-langserver", }, command: ["{installBin}/pyright-langserver", "--stdio"], env: {}, settings: {}, initializationOptions: {}, lazy: true, }, gopls: { id: "gopls", displayName: "gopls", filetypes: ["go"], rootMarkers: ["go.work", "go.mod", ".git"], install: { type: "go", module: "golang.org/x/tools/gopls", version: "v0.22.0", bin: "gopls", }, command: ["{installBin}/gopls"], env: {}, settings: {}, initializationOptions: {}, lazy: true, }, "rust-analyzer": { id: "rust-analyzer", displayName: "rust-analyzer", filetypes: ["rust"], rootMarkers: ["Cargo.toml", "rust-project.json", ".git"], install: { type: "github", repo: "rust-lang/rust-analyzer", version: "2026-05-25", asset: "rust-analyzer-{platform}.gz", bin: "rust-analyzer", }, command: ["{installBin}/rust-analyzer"], env: {}, settings: {}, initializationOptions: {}, lazy: true, }, yamlls: { id: "yamlls", displayName: "YAML Language Server", filetypes: ["yaml"], rootMarkers: [".yamlls.yaml", ".git"], install: { type: "npm", packages: { "yaml-language-server": "1.23.0", }, bin: "yaml-language-server", }, command: ["{installBin}/yaml-language-server", "--stdio"], env: {}, settings: {}, initializationOptions: {}, lazy: true, }, jsonls: { id: "jsonls", displayName: "JSON Language Server", filetypes: ["json", "jsonc"], rootMarkers: ["package.json", ".git"], install: { type: "npm", packages: { "vscode-langservers-extracted": "4.10.0", }, bin: "vscode-json-language-server", }, command: ["{installBin}/vscode-json-language-server", "--stdio"], env: {}, settings: {}, initializationOptions: {}, lazy: true, }, jdtls: { id: "jdtls", displayName: "Eclipse JDT LS", filetypes: ["java"], rootMarkers: ["pom.xml", "build.gradle", "build.gradle.kts", "settings.gradle", ".project", ".git"], install: { type: "github", repo: "eclipse-jdtls/eclipse.jdt.ls", version: "1.58.0", asset: "jdt-language-server-1.58.0-202604151538.tar.gz", downloadUrl: "https://download.eclipse.org/jdtls/milestones/{version}/{asset}", bin: "jdtls", }, command: [ "java", "-Declipse.application=org.eclipse.jdt.ls.core.id1", "-Dosgi.bundles.defaultStartLevel=4", "-Declipse.product=org.eclipse.jdt.ls.core.product", "-jar", "{installDir}/plugins/org.eclipse.equinox.launcher_*.jar", "-configuration", "{installDir}/config_{platform}", "-data", "{workspaceDir}", ], env: {}, settings: {}, initializationOptions: {}, lazy: true, }, }, };