Browse Source

Add prisma language server (#6462)

ravshansbox 1 month ago
parent
commit
94453eb1bd
2 changed files with 19 additions and 0 deletions
  1. 18 0
      packages/opencode/src/lsp/server.ts
  2. 1 0
      packages/web/src/content/docs/lsp.mdx

+ 18 - 0
packages/opencode/src/lsp/server.ts

@@ -1437,6 +1437,24 @@ export namespace LSPServer {
     },
   }
 
+  export const Prisma: Info = {
+    id: "prisma",
+    extensions: [".prisma"],
+    root: NearestRoot(["schema.prisma", "prisma/schema.prisma", "prisma"], ["package.json"]),
+    async spawn(root) {
+      const prisma = Bun.which("prisma")
+      if (!prisma) {
+        log.info("prisma not found, please install prisma")
+        return
+      }
+      return {
+        process: spawn(prisma, ["language-server"], {
+          cwd: root,
+        }),
+      }
+    },
+  }
+
   export const Dart: Info = {
     id: "dart",
     extensions: [".dart"],

+ 1 - 0
packages/web/src/content/docs/lsp.mdx

@@ -31,6 +31,7 @@ OpenCode comes with several built-in LSP servers for popular languages:
 | ocaml-lsp          | .ml, .mli                                                           | `ocamllsp` command available                                 |
 | oxlint             | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | `oxlint` dependency in project                               |
 | php intelephense   | .php                                                                | Auto-installs for PHP projects                               |
+| prisma             | .prisma                                                             | `prisma` command available                                   |
 | pyright            | .py, .pyi                                                           | `pyright` dependency installed                               |
 | ruby-lsp (rubocop) | .rb, .rake, .gemspec, .ru                                           | `ruby` and `gem` commands available                          |
 | rust               | .rs                                                                 | `rust-analyzer` command available                            |