diff options
| author | Dax Raad <[email protected]> | 2025-07-09 22:54:47 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-07-09 22:54:47 -0400 |
| commit | 085c0e4e2b8518d740f75372367a44d19b22f90e (patch) | |
| tree | ca448a39f3a69c1d85c25d212f4d5ef53e90de75 | |
| parent | 8404a97c3e04bc415309a24da19a995c5c4c6fef (diff) | |
| download | opencode-085c0e4e2b8518d740f75372367a44d19b22f90e.tar.gz opencode-085c0e4e2b8518d740f75372367a44d19b22f90e.zip | |
respect go.work when spawning LSP
| -rw-r--r-- | packages/opencode/src/format/formatter.ts | 2 | ||||
| -rw-r--r-- | packages/opencode/src/lsp/server.ts | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/packages/opencode/src/format/formatter.ts b/packages/opencode/src/format/formatter.ts index 353a50668..1c0c9721f 100644 --- a/packages/opencode/src/format/formatter.ts +++ b/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", }, diff --git a/packages/opencode/src/lsp/server.ts b/packages/opencode/src/lsp/server.ts index 1a3f711c7..76c377772 100644 --- a/packages/opencode/src/lsp/server.ts +++ b/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", { |
