From b098a3ffe02ea294a930dbdc207d71dcbc4db77d Mon Sep 17 00:00:00 2001 From: hlstwizard Date: Mon, 30 Mar 2026 12:52:57 +0800 Subject: [PATCH] Add toggleterm --- lazy-lock.json | 1 + lua/custom/plugins/opencode.lua | 44 +++++++++++++++---------------- lua/custom/plugins/toggleterm.lua | 19 +++++++++++++ 3 files changed, 41 insertions(+), 23 deletions(-) create mode 100644 lua/custom/plugins/toggleterm.lua diff --git a/lazy-lock.json b/lazy-lock.json index 54001ae1..92d1ba41 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -21,6 +21,7 @@ "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, "telescope.nvim": { "branch": "master", "commit": "5255aa27c422de944791318024167ad5d40aad20" }, "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, + "toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" }, "tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" }, "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } } diff --git a/lua/custom/plugins/opencode.lua b/lua/custom/plugins/opencode.lua index 9a61f6cf..39a1394c 100644 --- a/lua/custom/plugins/opencode.lua +++ b/lua/custom/plugins/opencode.lua @@ -1,22 +1,22 @@ return { - "nickjvandyke/opencode.nvim", - version = "*", -- Latest stable release + 'nickjvandyke/opencode.nvim', + version = '*', -- Latest stable release dependencies = { { -- `snacks.nvim` integration is recommended, but optional ---@module "snacks" <- Loads `snacks.nvim` types for configuration intellisense - "folke/snacks.nvim", + 'folke/snacks.nvim', optional = true, opts = { input = {}, -- Enhances `ask()` picker = { -- Enhances `select()` actions = { - opencode_send = function(...) return require("opencode").snacks_picker_send(...) end, + opencode_send = function(...) return require('opencode').snacks_picker_send(...) end, }, win = { input = { keys = { - [""] = { "opencode_send", mode = { "n", "i" } }, + [''] = { 'opencode_send', mode = { 'n', 'i' } }, }, }, }, @@ -29,18 +29,16 @@ return { vim.g.opencode_opts = { server = { start = function() - require("opencode.terminal").open("opencode --port", { - split = "right", - width = math.max(40, math.floor(vim.o.columns * 0.25)), + require('opencode.terminal').open('opencode --port', { + split = 'right', + width = math.max(40, math.floor(vim.o.columns * 0.4)), }) end, - stop = function() - require("opencode.terminal").close() - end, + stop = function() require('opencode.terminal').close() end, toggle = function() - require("opencode.terminal").toggle("opencode --port", { - split = "right", - width = math.max(40, math.floor(vim.o.columns * 0.25)), + require('opencode.terminal').toggle('opencode --port', { + split = 'right', + width = math.max(40, math.floor(vim.o.columns * 0.4)), }) end, }, @@ -49,18 +47,18 @@ return { vim.o.autoread = true -- Required for `opts.events.reload` -- 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' }, '', 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', '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" }) + 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 use the opinionated `` and `` keymaps above — otherwise consider `o…` (and remove terminal mode from the `toggle` keymap) - vim.keymap.set("n", "+", "", { desc = "Increment under cursor", noremap = true }) - vim.keymap.set("n", "-", "", { desc = "Decrement under cursor", noremap = true }) + vim.keymap.set('n', '+', '', { desc = 'Increment under cursor', noremap = true }) + vim.keymap.set('n', '-', '', { desc = 'Decrement under cursor', noremap = true }) end, } diff --git a/lua/custom/plugins/toggleterm.lua b/lua/custom/plugins/toggleterm.lua new file mode 100644 index 00000000..ae94cfb8 --- /dev/null +++ b/lua/custom/plugins/toggleterm.lua @@ -0,0 +1,19 @@ +---@module 'lazy' +---@type LazySpec +return { + { + 'akinsho/toggleterm.nvim', + version = '*', + cmd = { 'ToggleTerm', 'TermExec' }, + keys = { + { 'tt', 'ToggleTerm', desc = '[T]oggle [T]erminal' }, + }, + opts = { + open_mapping = [[]], + direction = 'float', + float_opts = { + border = 'curved', + }, + }, + }, +}