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' }, 'oa', function() require('opencode').ask('@this: ') end, { desc = 'Ask opencode' }) vim.keymap.set({ 'n', 'x' }, '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', '', function() require('opencode').command('session.half.page.up') end, { desc = 'Scroll opencode up' }) vim.keymap.set('n', '', function() require('opencode').command('session.half.page.down') end, { desc = 'Scroll opencode down' })