Files
nvim-config/lua/plugins/ai.lua

66 lines
1.7 KiB
Lua

return {
{
"nickyvandyke/opencode.nvim",
version = "v0.10.1",
dependencies = {
{
---@module "snacks"
"folke/snacks.nvim",
optional = true,
opts = {
input = {}, -- Enhances `ask()`
picker = { -- Enhances `select()`
actions = {
opencode_send = function(...)
return require("opencode").snacks_picker_send(...)
end,
},
win = {
input = {
keys = {
["<a-a>"] = { "opencode_send", mode = { "n", "i" } },
},
},
},
},
},
},
},
config = function()
local opencode_cmd = "opencode --port"
---@type snacks.terminal.Opts
local snacks_terminal_opts = {
win = {
position = "right",
enter = false,
on_win = function(win)
-- Set up keymaps and cleanup for an arbitary terminal
require("opencode.terminal").setup(win.win)
end,
},
}
---@type opencode.Opts
vim.g.opencode_opts = {
-- Specific configuration around opencode
server = {
start = function()
require("snacks.terminal").open(opencode_cmd, snacks_terminal_opts)
end,
stop = function()
require("snacks.terminal").get(opencode_cmd, snacks_terminal_opts):close()
end,
toggle = function()
require("snacks.terminal").toggle(opencode_cmd, snacks_terminal_opts)
end,
},
lsp = {
enabled = true,
},
}
vim.o.autoreload = true -- Required for `opts.events.reload`
end,
},
}