diff --git a/lua/claudecode/terminal/snacks.lua b/lua/claudecode/terminal/snacks.lua index 75e3bb1..5775992 100644 --- a/lua/claudecode/terminal/snacks.lua +++ b/lua/claudecode/terminal/snacks.lua @@ -45,7 +45,7 @@ end ---@param config ClaudeCodeTerminalConfig Terminal configuration ---@param env_table table Environment variables to set for the terminal process ---@param focus boolean|nil Whether to focus the terminal when opened (defaults to true) ----@return table options Snacks terminal options with start_insert/auto_insert controlled by focus parameter +---@return snacks.terminal.Opts opts Snacks terminal options with start_insert/auto_insert controlled by focus parameter local function build_opts(config, env_table, focus) focus = utils.normalize_focus(focus) return { @@ -58,8 +58,21 @@ local function build_opts(config, env_table, focus) width = config.split_width_percentage, height = 0, relative = "editor", - }, config.snacks_win_opts or {}), - } + keys = { + claude_new_line = { + "", + function() + vim.api.nvim_feedkeys("\\", "t", true) + vim.defer_fn(function() + vim.api.nvim_feedkeys("\r", "t", true) + end, 10) + end, + mode = "t", + desc = "New line", + }, + }, + } --[[@as snacks.win.Config]], config.snacks_win_opts or {}), + } --[[@as snacks.terminal.Opts]] end function M.setup() diff --git a/lua/claudecode/types.lua b/lua/claudecode/types.lua index 4acaac1..53f4217 100644 --- a/lua/claudecode/types.lua +++ b/lua/claudecode/types.lua @@ -75,7 +75,7 @@ ---@field provider_opts ClaudeCodeTerminalProviderOptions? ---@field auto_close boolean ---@field env table ----@field snacks_win_opts table +---@field snacks_win_opts snacks.win.Config -- Port range configuration ---@class ClaudeCodePortRange