irongit

My nvim configuration

feat: claude has prompt shortcut

huncholanehuncholaneauthored
parent 526cb14commit 216ff0c1f45c203f38145e0fb4ed35cc7cea565cBrowse files

2 files changed, +19 -1

+1-0claude-nvim/lua/claude/init.lua
@@ -36,6 +36,7 @@ function M.setup(opts)
3636 vim.keymap.set("n", "<leader>cr", ui.resume_last, { desc = "Claude: Resume last session" })
3737 vim.keymap.set("n", "<leader>cq", pickers.prompts_picker, { desc = "Claude: Prompts → quickfix" })
3838 vim.keymap.set("n", "<leader>cl", pickers.qf_last, { desc = "Claude: Last prompt → quickfix" })
39+ vim.keymap.set("n", "<leader>cp", ui.open_prompt_keep_focus, { desc = "Claude: Prompt (keep focus)" })
3940
4041 vim.keymap.set("v", "<leader>c", function()
4142 edit.prompt_visual()
+18-1claude-nvim/lua/claude/ui.lua
@@ -220,11 +220,13 @@ function M.resume_last()
220220 append_lines({ "Press `i` to send a prompt.", "" })
221221 end
222222
223-function M.open_input()
223+function M.open_input(opts)
224+ opts = opts or {}
224225 if not panel.sid then
225226 M.start_new()
226227 end
227228 local sid = panel.sid
229+ local return_to = opts.return_to
228230 local input_buf = vim.api.nvim_create_buf(false, true)
229231 vim.bo[input_buf].bufhidden = "wipe"
230232 vim.bo[input_buf].filetype = "markdown"
@@ -252,6 +254,9 @@ function M.open_input()
252254 if vim.api.nvim_win_is_valid(win) then
253255 vim.api.nvim_win_close(win, true)
254256 end
257+ if return_to and vim.api.nvim_win_is_valid(return_to) then
258+ pcall(vim.api.nvim_set_current_win, return_to)
259+ end
255260 end
256261 local function send()
257262 if closed then return end
@@ -272,6 +277,18 @@ function M.open_input()
272277 vim.keymap.set("n", "<Esc>", close, km)
273278 end
274279
280+function M.open_prompt_keep_focus()
281+ local origin = vim.api.nvim_get_current_win()
282+ if not M.is_open() then
283+ if panel.sid then
284+ M.open_panel()
285+ else
286+ M.start_new()
287+ end
288+ end
289+ M.open_input({ return_to = origin })
290+end
291+
275292 -- runner callbacks
276293
277294 function M.append_user_prompt(sid, text)