Files
neovim/lua/custom/plugins/opencode.lua
T
2026-06-16 22:46:17 -04:00

44 lines
1.2 KiB
Lua

vim.pack.add {
{
src = 'https://github.com/nickjvandyke/opencode.nvim',
version = vim.version.range '*',
},
}
local opencode_port = 4096
local opencode_url = 'http://127.0.0.1:' .. opencode_port
---@type opencode.Opts
vim.g.opencode_opts = {
server = {
url = opencode_url,
start = false,
},
}
vim.o.autoread = true -- Required for `vim.g.opencode_opts.events.reload`.
vim.keymap.set({ 'n', 'x' }, '<leader>oa', function()
require('opencode').ask('@this: ')
end, { desc = 'Ask opencode' })
vim.keymap.set({ 'n', 'x' }, '<leader>os', function()
require('opencode').select()
end, { desc = 'Select opencode action' })
vim.keymap.set({ 'n', 'x' }, 'go', function()
return require('opencode').operator('@this ')
end, { desc = 'Add range to opencode', expr = true })
vim.keymap.set('n', 'goo', function()
return require('opencode').operator('@this ') .. '_'
end, { desc = 'Add line to opencode', expr = true })
vim.keymap.set('n', '<S-C-u>', function()
require('opencode').command('session.half.page.up')
end, { desc = 'Scroll opencode up' })
vim.keymap.set('n', '<S-C-d>', function()
require('opencode').command('session.half.page.down')
end, { desc = 'Scroll opencode down' })