--- @type LazySpec | LazySpec[] return { 'NickvanDyke/opencode.nvim', dependencies = { -- Recommended for `ask()` and `select()`. -- Required for `snacks` provider. ---@module 'snacks' <- Loads `snacks.nvim` types for configuration intellisense. { 'folke/snacks.nvim', opts = { input = {}, picker = {}, terminal = {} } }, }, config = function() ---@type opencode.Opts vim.g.opencode_opts = { -- Your configuration, if any — see `lua/opencode/config.lua`, or "goto definition" on the type or field. } -- Required for `opts.events.reload`. vim.o.autoread = true -- Recommended/example keymaps. -- vim.keymap.set({ 'n', 'x' }, '', function() -- require('opencode').ask('@this: ', { submit = true }) -- end, { desc = 'Ask opencode…' }) -- vim.keymap.set({ 'n', 'x' }, '', function() -- require('opencode').select() -- end, { desc = 'Execute opencode action…' }) vim.keymap.set('n', 'do', function() require('opencode').toggle() end, { desc = '[O]pencode' }) -- 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' }) -- You may want these if you stick with the opinionated "" and "" above — otherwise consider "o…". -- vim.keymap.set('n', '+', '', { desc = 'Increment under cursor', noremap = true }) -- vim.keymap.set('n', '-', '', { desc = 'Decrement under cursor', noremap = true }) end, keys = { { 'do', desc = 'OpenCode' } }, }