return {
{
"coder/claudecode.nvim",
dependencies = { "folke/snacks.nvim" },
event = "User SidekickCliAttach",
keys = {
{ "<leader>aA", "<cmd>ClaudeCodeDiffAccept<cr>", desc = "Accept Diff" },
{ "<leader>aR", "<cmd>ClaudeCodeDiffDeny<cr>", desc = "Reject Diff" },
},
opts = {
terminal = {
provider = "none",
},
diff_opts = {
layout = "vertical",
open_in_new_tab = true,
},
},
},
{
"folke/sidekick.nvim",
dependencies = { "copilot.lua", "snacks.nvim" },
event = { "BufReadPre", "BufNewFile", "VeryLazy" },
keys = {
{
"<tab>",
function()
if not require("sidekick").nes_jump_or_apply() then
return "<Tab>"
end
end,
expr = true,
desc = "Goto/Apply Next Edit Suggestion",
},
{
"<c-.>",
function()
require("sidekick.cli").toggle({ filter = { installed = true } })
end,
desc = "Sidekick Toggle",
mode = { "n", "t", "i", "x" },
},
{
"<leader>as",
function()
require("sidekick.cli").select({ filter = { installed = true } })
end,
desc = "Select CLI",
},
{
"<leader>ad",
function()
require("sidekick.cli").close()
end,
desc = "Detach a CLI Session",
},
{
"<leader>at",
function()
require("sidekick.cli").send({ msg = "{this}" })
end,
mode = { "x", "n" },
desc = "Send This",
},
{
"<leader>af",
function()
require("sidekick.cli").send({ msg = "{file}" })
end,
desc = "Send File",
},
{
"<leader>av",
function()
require("sidekick.cli").send({ msg = "{selection}" })
end,
mode = { "x" },
desc = "Send Visual Selection",
},
{
"<leader>ap",
function()
require("sidekick.cli").prompt()
end,
mode = { "n", "x" },
desc = "Sidekick Select Prompt",
},
{
"<leader>ac",
function()
require("sidekick.cli").toggle({ name = "claude", focus = true })
end,
desc = "Sidekick Toggle Claude Code",
},
{
"<leader>ag",
function()
require("sidekick.cli").toggle({ name = "gemini", focus = true })
end,
desc = "Sidekick Toggle Gemini",
},
{
"<leader>ao",
function()
require("sidekick.cli").toggle({ name = "opencode", focus = true })
end,
desc = "Sidekick Toggle OpenCode",
},
},
---@type sidekick.Config
opts = {
cli = {
win = {
keys = {
buffers = false,
files = false,
hide_n = false,
hide_ctrl_q = false,
hide_ctrl_dot = false,
hide_ctrl_z = false,
prompt = { "<M-p>", "prompt", mode = "t", desc = "Insert prompt or context" },
stopinsert = { "<c-q>", "stopinsert", mode = "t", desc = "Enter normal mode" },
nav_left = vim.env.ZELLIJ and false,
nav_down = vim.env.ZELLIJ and false,
nav_up = vim.env.ZELLIJ and false,
nav_right = vim.env.ZELLIJ and false,
},
},
},
nes = {
enabled = function(buf)
local bufname = vim.api.nvim_buf_get_name(buf)
local ignore_buffers = { "%.env.*" }
return not vim.iter(ignore_buffers):any(function(pattern)
return string.match(bufname, pattern)
end)
end,
},
},
},
}
Bug Description
The help section
:help claudecode.nvim-working-with-diffsmentions that we can both accept and reject changes using:wor:q. Accepting seems to work fine, but rejecting simply closes one of the diff buffers and then proceeds to do absolutely nothing.To Reproduce
Steps to reproduce the behavior:
claudecode.nvimwithsidekick.nvim:<leader>acon the above configuration):qExpected Behavior
The tabpage with the diff closes and claude refuses the edit.
Environment
0.12.12.1.107Linux <redacted> 6.18.22-1-lts #1 SMP PREEMPT_DYNAMIC Sat, 11 Apr 2026 17:16:25 +0000 x86_64 GNU/Linuxcommit 432121f