diff --git a/lua/claudecode/terminal/native.lua b/lua/claudecode/terminal/native.lua index 7cd24dd5..37241c07 100644 --- a/lua/claudecode/terminal/native.lua +++ b/lua/claudecode/terminal/native.lua @@ -134,6 +134,14 @@ local function open_terminal(cmd_string, env_table, effective_config, focus) vim.bo[bufnr].bufhidden = "hide" -- buftype=terminal is set by termopen + -- Shift+Enter inserts a line continuation (backslash + newline) in the terminal + vim.keymap.set("t", "", function() + vim.api.nvim_feedkeys("\\", "t", true) + vim.defer_fn(function() + vim.api.nvim_feedkeys("\r", "t", true) + end, 10) + end, { buffer = bufnr, desc = "New line" }) + if focus then -- Focus the terminal: switch to terminal window and enter insert mode vim.api.nvim_set_current_win(winid) diff --git a/tests/unit/native_terminal_toggle_spec.lua b/tests/unit/native_terminal_toggle_spec.lua index ddf4d700..6e352a43 100644 --- a/tests/unit/native_terminal_toggle_spec.lua +++ b/tests/unit/native_terminal_toggle_spec.lua @@ -151,6 +151,9 @@ describe("claudecode.terminal.native toggle behavior", function() return jobid end, }, + keymap = { + set = function() end, + }, schedule = function(callback) callback() -- Execute immediately in tests end,