66 lines
1.7 KiB
Lua
66 lines
1.7 KiB
Lua
return {
|
|
{
|
|
"nickjvandyke/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.autoread = true -- Required for `opts.events.reload`
|
|
end,
|
|
},
|
|
}
|