summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-08-11 22:26:18 -0400
committerDax Raad <[email protected]>2025-08-11 22:27:24 -0400
commite6f3cf0839e401a8efa12614910852f9581b227b (patch)
tree2db95a68f2783d20c82b55402f4bab5772a519f4
parent9437cf4ff66c540533f200ae6ce35780c1b0fc03 (diff)
downloadopencode-e6f3cf0839e401a8efa12614910852f9581b227b.tar.gz
opencode-e6f3cf0839e401a8efa12614910852f9581b227b.zip
fix pyright
-rw-r--r--.gitignore1
-rw-r--r--packages/opencode/src/cli/cmd/debug/lsp.ts4
-rw-r--r--packages/opencode/src/lsp/server.ts19
3 files changed, 19 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore
index 2728097b9..33e3deb81 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,4 @@ node_modules
.vscode
openapi.json
playground
+tmp
diff --git a/packages/opencode/src/cli/cmd/debug/lsp.ts b/packages/opencode/src/cli/cmd/debug/lsp.ts
index 91b13df43..ac1bac7c1 100644
--- a/packages/opencode/src/cli/cmd/debug/lsp.ts
+++ b/packages/opencode/src/cli/cmd/debug/lsp.ts
@@ -2,7 +2,6 @@ import { LSP } from "../../../lsp"
import { bootstrap } from "../../bootstrap"
import { cmd } from "../cmd"
import { Log } from "../../../util/log"
-import { appendFile } from "fs/promises"
export const LSPCommand = cmd({
command: "lsp",
@@ -18,9 +17,6 @@ const DiagnosticsCommand = cmd({
await bootstrap({ cwd: process.cwd() }, async () => {
await LSP.touchFile(args.file, true)
console.log(await LSP.diagnostics())
- await appendFile(args.file, `\nconst x: number = "foo"`)
- await LSP.touchFile(args.file, true)
- console.log(await LSP.diagnostics())
})
},
})
diff --git a/packages/opencode/src/lsp/server.ts b/packages/opencode/src/lsp/server.ts
index 3da5a7e28..6cfba6d9d 100644
--- a/packages/opencode/src/lsp/server.ts
+++ b/packages/opencode/src/lsp/server.ts
@@ -210,7 +210,24 @@ export namespace LSPServer {
extensions: [".py", ".pyi"],
root: NearestRoot(["pyproject.toml", "setup.py", "setup.cfg", "requirements.txt", "Pipfile", "pyrightconfig.json"]),
async spawn(_, root) {
- const proc = spawn(BunProc.which(), ["x", "pyright-langserver", "--stdio"], {
+ let binary = Bun.which("pyright-langserver")
+ const args = []
+ if (!binary) {
+ const js = path.join(Global.Path.bin, "node_modules", "pyright", "dist", "pyright-langserver.js")
+ if (!(await Bun.file(js).exists())) {
+ await Bun.spawn([BunProc.which(), "install", "pyright"], {
+ cwd: Global.Path.bin,
+ env: {
+ ...process.env,
+ BUN_BE_BUN: "1",
+ },
+ }).exited
+ }
+ binary = BunProc.which()
+ args.push(...["run", js])
+ }
+ args.push("--stdio")
+ const proc = spawn(binary, args, {
cwd: root,
env: {
...process.env,