From 2c09bed8dd12bfcce2b7b8272aedfa261ef223ed Mon Sep 17 00:00:00 2001 From: tkrnts-sr <238653383+tkrnts-sr@users.noreply.github.com> Date: Fri, 6 Feb 2026 03:45:21 +0900 Subject: [PATCH] add: opencode.lua --- lua/custom/plugins/opencode.lua | 47 +++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 lua/custom/plugins/opencode.lua diff --git a/lua/custom/plugins/opencode.lua b/lua/custom/plugins/opencode.lua new file mode 100644 index 00000000..d55cf2c9 --- /dev/null +++ b/lua/custom/plugins/opencode.lua @@ -0,0 +1,47 @@ +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', 't' }, '', function() + require('opencode').toggle() + end, { desc = 'Toggle opencode' }) + + 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, +}