From a4c4482840dd8e809db4efb17518a9077482ec64 Mon Sep 17 00:00:00 2001 From: Andre Padez Date: Sat, 18 Oct 2025 13:45:14 +0100 Subject: [PATCH] opencode.nvim --- lazy-lock.json | 1 + lua/plugins/opencode.lua | 48 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 lua/plugins/opencode.lua diff --git a/lazy-lock.json b/lazy-lock.json index b3f91c0..3049ff6 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -25,6 +25,7 @@ "nvim-treesitter": { "branch": "main", "commit": "de003000a287c501a6650a1ddd3be80ee34278d4" }, "nvim-treesitter-textobjects": { "branch": "main", "commit": "1b2d85d3de6114c4bcea89ffb2cd1ce9e3a19931" }, "nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" }, + "opencode.nvim": { "branch": "main", "commit": "f8a3a88ad5c0c01102fedaacb1c612a4b874ed54" }, "persistence.nvim": { "branch": "main", "commit": "51eef57272742b773468949f6bd0503ec3f83874" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "snacks.nvim": { "branch": "main", "commit": "d91fc7d3fa853422fe4d506220b23394d2c19d38" }, diff --git a/lua/plugins/opencode.lua b/lua/plugins/opencode.lua new file mode 100644 index 0000000..f346de4 --- /dev/null +++ b/lua/plugins/opencode.lua @@ -0,0 +1,48 @@ +return { + "NickvanDyke/opencode.nvim", + dependencies = { + -- Recommended for `ask()` and `select()`. + -- Required for `toggle()`. + { "folke/snacks.nvim", opts = { input = {}, picker = {} } }, + }, + config = function() + vim.g.opencode_opts = { + -- Your configuration, if any — see `lua/opencode/config.lua` + } + + -- Required for `vim.g.opencode_opts.auto_reload` + vim.opt.autoread = true + + -- Recommended/example keymaps + vim.keymap.set({ "n", "x" }, "oa", function() + require("opencode").ask("@this: ", { submit = true }) + end, { desc = "Ask about this" }) + vim.keymap.set({ "n", "x" }, "os", function() + require("opencode").select() + end, { desc = "Select prompt" }) + vim.keymap.set({ "n", "x" }, "o+", function() + require("opencode").prompt("@this") + end, { desc = "Add this" }) + vim.keymap.set("n", "ot", function() + require("opencode").toggle() + end, { desc = "Toggle embedded" }) + vim.keymap.set("n", "oc", function() + require("opencode").command() + end, { desc = "Select command" }) + vim.keymap.set("n", "on", function() + require("opencode").command("session_new") + end, { desc = "New session" }) + vim.keymap.set("n", "oi", function() + require("opencode").command("session_interrupt") + end, { desc = "Interrupt session" }) + vim.keymap.set("n", "oA", function() + require("opencode").command("agent_cycle") + end, { desc = "Cycle selected agent" }) + vim.keymap.set("n", "", function() + require("opencode").command("messages_half_page_up") + end, { desc = "Messages half page up" }) + vim.keymap.set("n", "", function() + require("opencode").command("messages_half_page_down") + end, { desc = "Messages half page down" }) + end, +}