diff --git a/lib/snippets/parsing/parser-factory.ts b/lib/snippets/parsing/parser-factory.ts index d7fd57e..9ddbf61 100644 --- a/lib/snippets/parsing/parser-factory.ts +++ b/lib/snippets/parsing/parser-factory.ts @@ -14,6 +14,8 @@ import Python from "tree-sitter-python"; // @ts-expect-error tree-sitter packages have no types import Lua from "tree-sitter-lua"; import R from "@davisvaughan/tree-sitter-r"; +// @ts-expect-error tree-sitter packages have no types +import Go from "tree-sitter-go"; import {convertLanguage} from "tree-sitter-compat"; export function getTSParser(languageId: string): Parser { @@ -46,6 +48,8 @@ function getLanguage(languageId: string) { return Lua; case "r": return R; + case "go": + return Go; default: throw new Error(`Language ${languageId} not supported.`); } diff --git a/next.config.ts b/next.config.ts index 6f32d2f..aa95e69 100644 --- a/next.config.ts +++ b/next.config.ts @@ -15,6 +15,7 @@ const nextConfig: NextConfig = { "tree-sitter", "tree-sitter-javascript", "tree-sitter-typescript/typescript", + "tree-sitter-go", "tree-sitter-c", "tree-sitter-cpp", "tree-sitter-c-sharp", diff --git a/package-lock.json b/package-lock.json index 1e3f4d4..475832a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,6 +38,7 @@ "tree-sitter-c-sharp": "0.23.1", "tree-sitter-compat": "0.1.2", "tree-sitter-cpp": "0.20.0", + "tree-sitter-go": "^0.20.0", "tree-sitter-java": "0.23.5", "tree-sitter-javascript": "0.23.1", "tree-sitter-lua": "2.1.3", @@ -8248,6 +8249,16 @@ "nan": "^2.14.0" } }, + "node_modules/tree-sitter-go": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/tree-sitter-go/-/tree-sitter-go-0.20.0.tgz", + "integrity": "sha512-5OBBND9ykffXZnaKrVpk8RnSaZJ26Si8yCfJKPSkEypWrywqCmZOZ74NveqMY0ogmHK2X8mFFuIL5jUnxOKyYw==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "nan": "^2.14.0" + } + }, "node_modules/tree-sitter-java": { "version": "0.23.5", "resolved": "https://registry.npmjs.org/tree-sitter-java/-/tree-sitter-java-0.23.5.tgz", diff --git a/package.json b/package.json index 8ebae79..2143156 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "tree-sitter-lua": "2.1.3", "tree-sitter-python": "0.20.0", "tree-sitter-typescript": "0.23.2", + "tree-sitter-go": "^0.20.0", "zod": "^4.1.12", "zustand": "^5.0.8" }, diff --git a/prisma/seed/languages.ts b/prisma/seed/languages.ts index f15b289..844146a 100644 --- a/prisma/seed/languages.ts +++ b/prisma/seed/languages.ts @@ -56,6 +56,12 @@ export const SUPPORTED_LANGUAGES: ILanguage[] = [ extensions: ["r", "R"], highlightAlias: "r", }, + { + id: "go", + name: "Go", + extensions: ["go"], + highlightAlias: "go", + }, ]; export async function seedLanguages(prisma: PrismaClient) {