From 3c02ba5c9d59d23384baf3b9de0b196879d6d928 Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Mon, 13 Oct 2025 09:42:03 -0400 Subject: [PATCH] refactor(nvim): simplify Neovim configuration with selene --- lua/config/terminals.lua | 36 ++++++++++++++--------------- lua/plugins/astrocore.lua | 1 + lua/plugins/opencode.lua | 48 --------------------------------------- 3 files changed, 19 insertions(+), 66 deletions(-) diff --git a/lua/config/terminals.lua b/lua/config/terminals.lua index 99a632d..0542ac2 100644 --- a/lua/config/terminals.lua +++ b/lua/config/terminals.lua @@ -22,65 +22,65 @@ function M.setup() local Terminal = require("toggleterm.terminal").Terminal -- Claude terminal configuration - local claude = Terminal:new({ - cmd = "claude", + local claude = Terminal:new { + cmd = "claude --dangerously-skip-permissions", hidden = true, direction = "tab", close_on_exit = true, on_open = function(term) - vim.cmd("startinsert!") + vim.cmd "startinsert!" vim.api.nvim_buf_set_keymap(term.bufnr, "n", "q", "close", { noremap = true, silent = true }) end, - }) + } -- Yazi file manager terminal - local yazi = Terminal:new({ - cmd = "yazi", + local opencode = Terminal:new { + cmd = "opencode", hidden = true, direction = "tab", close_on_exit = true, on_open = function(term) - vim.cmd("startinsert!") + vim.cmd "startinsert!" vim.api.nvim_buf_set_keymap(term.bufnr, "n", "q", "close", { noremap = true, silent = true }) end, - }) + } -- Scooter find and replace terminal - local scooter = Terminal:new({ + local scooter = Terminal:new { cmd = "scooter", hidden = true, direction = "vertical", on_open = function(term) - vim.cmd("startinsert!") + vim.cmd "startinsert!" vim.api.nvim_buf_set_keymap(term.bufnr, "n", "q", "close", { noremap = true, silent = true }) end, - }) + } -- Lazyjournal terminal - local lazyjournal = Terminal:new({ + local lazyjournal = Terminal:new { cmd = "lazyjournal", hidden = true, direction = "float", on_open = function(term) - vim.cmd("startinsert!") + vim.cmd "startinsert!" vim.api.nvim_buf_set_keymap(term.bufnr, "n", "q", "close", { noremap = true, silent = true }) end, - }) + } -- Mk (make) terminal - local mk = Terminal:new({ + local mk = Terminal:new { cmd = "mk", hidden = true, direction = "vertical", on_open = function(term) - vim.cmd("startinsert!") + vim.cmd "startinsert!" vim.api.nvim_buf_set_keymap(term.bufnr, "n", "q", "close", { noremap = true, silent = true }) end, - }) + } -- Export toggle functions to module instead of global namespace M.claude_toggle = function() claude:toggle() end - M.yazi_toggle = function() yazi:toggle() end + M.opencode_toggle = function() opencode:toggle() end M.scooter_toggle = function() scooter:toggle() end M.lazyjournal_toggle = function() lazyjournal:toggle() end M.mk_toggle = function() mk:toggle() end diff --git a/lua/plugins/astrocore.lua b/lua/plugins/astrocore.lua index 58fc8e8..7d4b4e3 100644 --- a/lua/plugins/astrocore.lua +++ b/lua/plugins/astrocore.lua @@ -401,6 +401,7 @@ return { }, -- AI/Assistant mappings [""] = { terminals.claude_toggle, desc = "Claude Toggle" }, + [""] = { terminals.opencode_toggle, desc = "Opencode Toggle" }, }, i = { [""] = { "wabd", desc = "Save, close buffer, and return to normal mode" }, diff --git a/lua/plugins/opencode.lua b/lua/plugins/opencode.lua index ba858c1..122247a 100644 --- a/lua/plugins/opencode.lua +++ b/lua/plugins/opencode.lua @@ -1,51 +1,3 @@ --- OpenCode integration for Neovim --- Provides AI-powered code assistance directly within the editor --- @module plugins.opencode - -return { - "NickvanDyke/opencode.nvim", - dependencies = { - -- Recommended for `ask()` and `select()`. - -- Required for `toggle()`. - { "folke/snacks.nvim", opts = { input = {}, picker = {} } }, - }, - config = function() - vim.g.opencode_opts = { - -- Your configuration, if any — see `lua/opencode/config.lua` - } - - -- Required for `vim.g.opencode_opts.auto_reload` - vim.opt.autoread = true - - -- Recommended/example keymaps - vim.keymap.set( - { "n", "x" }, - "a", - function() require("opencode").ask("@this: ", { submit = true }) end, - { desc = "Ask about this" } - ) - vim.keymap.set({ "n", "x" }, "A", function() require("opencode").prompt "@this" end, { desc = "Add this" }) - vim.keymap.set({ "n", "x" }, "p", function() require("opencode").select() end, { desc = "Select prompt" }) - vim.keymap.set("n", "", function() require("opencode").toggle() end, { desc = "Toggle embedded" }) - vim.keymap.set("n", "t", function() require("opencode").toggle() end, { desc = "Toggle embedded" }) - vim.keymap.set("n", "n", function() require("opencode").command "session_new" end, { desc = "New session" }) - vim.keymap.set( - "n", - "k", - function() require("opencode").command "session_interrupt" end, - { desc = "Interrupt session" } - ) - vim.keymap.set( - "n", - "U", - function() require("opencode").command "messages_half_page_up" end, - { desc = "Messages half page up" } - ) - vim.keymap.set( - "n", - "D", - function() require("opencode").command "messages_half_page_down" end, - { desc = "Messages half page down" } - ) - end, -}