Просмотр исходного кода

respect go.work when spawning LSP

Dax Raad 7 месяцев назад
Родитель
Сommit
085c0e4e2b
2 измененных файлов с 7 добавлено и 3 удалено
  1. 1 1
      packages/opencode/src/format/formatter.ts
  2. 6 2
      packages/opencode/src/lsp/server.ts

+ 1 - 1
packages/opencode/src/format/formatter.ts

@@ -31,7 +31,7 @@ export const mix: Info = {
 
 export const prettier: Info = {
   name: "prettier",
-  command: [BunProc.which(), "run", "prettier", "--write", "$FILE"],
+  command: [BunProc.which(), "x", "prettier", "--write", "$FILE"],
   environment: {
     BUN_BE_BUN: "1",
   },

+ 6 - 2
packages/opencode/src/lsp/server.ts

@@ -25,7 +25,7 @@ export namespace LSPServer {
   const SimpleRoots = (patterns: string[]): RootsFunction => {
     return async (app) => {
       const files = await Ripgrep.files({
-        glob: patterns.map(p => `**/${p}`),
+        glob: patterns.map((p) => `**/${p}`),
         cwd: app.path.root,
       })
       const dirs = files.map((file) => path.dirname(file))
@@ -85,7 +85,11 @@ export namespace LSPServer {
 
   export const Gopls: Info = {
     id: "golang",
-    roots: SimpleRoots(["go.mod", "go.sum"]),
+    roots: async (app) => {
+      const work = await SimpleRoots(["go.work"])(app)
+      if (work.length > 0) return work
+      return SimpleRoots(["go.mod", "go.sum"])(app)
+    },
     extensions: [".go"],
     async spawn(_, root) {
       let bin = Bun.which("gopls", {