summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-07-09 22:54:47 -0400
committerDax Raad <[email protected]>2025-07-09 22:54:47 -0400
commit085c0e4e2b8518d740f75372367a44d19b22f90e (patch)
treeca448a39f3a69c1d85c25d212f4d5ef53e90de75
parent8404a97c3e04bc415309a24da19a995c5c4c6fef (diff)
downloadopencode-085c0e4e2b8518d740f75372367a44d19b22f90e.tar.gz
opencode-085c0e4e2b8518d740f75372367a44d19b22f90e.zip
respect go.work when spawning LSP
-rw-r--r--packages/opencode/src/format/formatter.ts2
-rw-r--r--packages/opencode/src/lsp/server.ts8
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", {