Skip to content

Commit 183cebb

Browse files
committed
fix: toggle terminal instead of closing
1 parent c1cdcd5 commit 183cebb

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

lua/claudecode/init.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ function M._create_commands()
299299
if current_mode == "v" or current_mode == "V" or current_mode == "\22" then -- \22 is CTRL-V (blockwise visual mode)
300300
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("<Esc>", true, false, true), "n", false)
301301
end
302-
terminal.toggle({}) -- `opts.fargs` can be used for future enhancements.
302+
terminal.toggle_fallback_terminal() -- `opts.fargs` can be used for future enhancements.
303303
end, {
304304
nargs = "?",
305305
desc = "Toggle the Claude Code terminal window",

lua/claudecode/terminal.lua

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ local function open_fallback_terminal(cmd_string, env_table, effective_term_conf
238238

239239
managed_fallback_terminal_winid = new_winid
240240
managed_fallback_terminal_bufnr = vim.api.nvim_get_current_buf()
241-
vim.bo[managed_fallback_terminal_bufnr].bufhidden = "wipe" -- Wipe buffer when hidden (e.g., window closed)
241+
vim.bo[managed_fallback_terminal_bufnr].bufhidden = "hide" -- Wipe buffer when hidden (e.g., window closed)
242242
-- buftype=terminal is set by termopen
243243

244244
vim.api.nvim_set_current_win(managed_fallback_terminal_winid)
@@ -571,3 +571,16 @@ function M.get_active_terminal_bufnr()
571571
end
572572

573573
return M
574+
575+
--- Toggles the Claude terminal window.
576+
-- If the terminal is already open, it brings it to focus.
577+
-- If it's not open, it creates a new terminal.
578+
function M.toggle_fallback_terminal()
579+
if is_fallback_terminal_valid() then
580+
vim.api.nvim_set_current_win(managed_fallback_terminal_winid)
581+
else
582+
local cmd_string = get_claude_command()
583+
local env_table = { CLAUDE_TERMINAL_MODE = "true" }
584+
open_fallback_terminal(cmd_string, env_table, term_module_config)
585+
end
586+
end

0 commit comments

Comments
 (0)