aboutsummaryrefslogtreecommitdiff
path: root/opencode/tools/live_read.ts
diff options
context:
space:
mode:
authorJosh Rahm <rahm@josher.dev>2026-08-11 11:19:51 -0600
committerJosh Rahm <rahm@josher.dev>2026-08-11 11:19:51 -0600
commit19ca36dfe8cc99321fcbde26a9387e3fac74509d (patch)
treec650df1c655df572bfaed31a0291bf84e7a036e3 /opencode/tools/live_read.ts
parentd7829c069b09d2115daa1aa33a729dd9ffee301e (diff)
downloadhobs.nvim-main.tar.gz
hobs.nvim-main.tar.bz2
hobs.nvim-main.zip
[feat] add the opencode tools directory.HEADmain
Diffstat (limited to 'opencode/tools/live_read.ts')
-rw-r--r--opencode/tools/live_read.ts27
1 files changed, 27 insertions, 0 deletions
diff --git a/opencode/tools/live_read.ts b/opencode/tools/live_read.ts
new file mode 100644
index 0000000..2174015
--- /dev/null
+++ b/opencode/tools/live_read.ts
@@ -0,0 +1,27 @@
+import { tool } from "@opencode-ai/plugin"
+
+export default tool({
+ description: "Read the current live Neovim buffer. Use this instead of read when you need the current unsaved contents of the user's active buffer.",
+
+ args: {},
+
+ async execute() {
+ const nvim = process.env.NVIM
+
+ if (!nvim) {
+ throw new Error("$NVIM is not set; live_read must be run from a Neovim-spawned OpenCode process")
+ }
+
+ const expr = `join(getline(1, "$"), "\n")`
+ console.error(`[hobs.nvim] live_read tool called =${expr} =${nvim}`)
+
+ // const result = await Bun.$`echo "hello, there"`.text()
+ const result =
+ await Bun.$`nvim --headless --server ${nvim} --remote-expr ${expr}`.text()
+
+ console.error(`live tool returned ${result}`)
+ console.error(`done`)
+
+ return result
+ },
+})