diff --git a/modules/editor/vim/lua/plugins/opencode.lua b/modules/editor/vim/lua/plugins/opencode.lua index 8ac2413..5f0ddda 100644 --- a/modules/editor/vim/lua/plugins/opencode.lua +++ b/modules/editor/vim/lua/plugins/opencode.lua @@ -1,13 +1,26 @@ return { "NickvanDyke/opencode.nvim", config = function() + local function open_opencode_in_kitty_tab() + vim.fn.jobstart({ + "kitty", + "@", + "launch", + "--type=tab", + "--cwd", + vim.fn.getcwd(), + "sh", + "-lc", + "opencode --port", + }, { detach = true }) + end + ---@type opencode.Opts vim.g.opencode_opts = { - provider = { - enabled = "kitty", - kitty = { - location = "tab" - } + server = { + start = open_opencode_in_kitty_tab, + toggle = open_opencode_in_kitty_tab, + stop = function() end, }, events = { permissions = { @@ -17,19 +30,19 @@ return { } vim.o.autoread = true - vim.keymap.set({ "n", "x" }, "aa", function() + vim.keymap.set({ "n", "x" }, "oa", function() require("opencode").ask("@this: ", { submit = true }) end, { desc = "Ask opencode" }) - vim.keymap.set({ "n", "x" }, "ao", function() + vim.keymap.set({ "n", "x" }, "oo", function() require("opencode").select() end, { desc = "Execute opencode action…" }) - vim.keymap.set({ "n", "x" }, "as", function() + vim.keymap.set({ "n", "x" }, "os", function() require("opencode").prompt("@this") end, { desc = "Add to opencode" }) - vim.keymap.set({ "n", "t" }, "a.", function() + vim.keymap.set({ "n", "t" }, "o.", function() require("opencode").toggle() end, { desc = "Toggle opencode" }) end,