diff options
| author | Josh Rahm <rahm@josher.dev> | 2026-08-11 11:19:51 -0600 |
|---|---|---|
| committer | Josh Rahm <rahm@josher.dev> | 2026-08-11 11:19:51 -0600 |
| commit | 19ca36dfe8cc99321fcbde26a9387e3fac74509d (patch) | |
| tree | c650df1c655df572bfaed31a0291bf84e7a036e3 /opencode/tools/live_read.ts | |
| parent | d7829c069b09d2115daa1aa33a729dd9ffee301e (diff) | |
| download | hobs.nvim-main.tar.gz hobs.nvim-main.tar.bz2 hobs.nvim-main.zip | |
Diffstat (limited to 'opencode/tools/live_read.ts')
| -rw-r--r-- | opencode/tools/live_read.ts | 27 |
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 + }, +}) |