From b16d4246be691d3245f11daccc79ccd40675c94a Mon Sep 17 00:00:00 2001 From: Thomas Smallwood Date: Thu, 26 Feb 2026 18:39:02 +0000 Subject: [PATCH] claude code config --- .claude/settings.local.json | 7 ++++++ lazy-lock.json | 21 ++++++++-------- lazyvim.json | 1 + lua/plugins/claude-code.lua | 50 +++++++++++++++++++++++++++++++++++++ 4 files changed, 69 insertions(+), 10 deletions(-) create mode 100644 .claude/settings.local.json create mode 100644 lua/plugins/claude-code.lua diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..90dc654 --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,7 @@ +{ + "permissions": { + "allow": [ + "Bash(grep -rn \"nvim_exec_autocmds\\\\|User.*ClaudeCode\\\\|ClaudeCode.*User\" /home/user/.local/share/nvim/lazy/claudecode.nvim/ --include=\"*.lua\" 2>/dev/null | grep -v test | grep -v spec)" + ] + } +} diff --git a/lazy-lock.json b/lazy-lock.json index 7d1b13f..e3ab192 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -4,8 +4,9 @@ "blink.cmp": { "branch": "main", "commit": "4b18c32adef2898f95cdef6192cbd5796c1a332d" }, "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, "catppuccin": { "branch": "main", "commit": "0a5de4da015a175f416d6ef1eda84661623e0500" }, - "conform.nvim": { "branch": "master", "commit": "c2526f1cde528a66e086ab1668e996d162c75f4f" }, - "copilot.lua": { "branch": "master", "commit": "dd3e345d59051464573d821b042f0a0c82410b5d" }, + "claudecode.nvim": { "branch": "main", "commit": "aa9a5cebebdbfa449c1c5ff229ba5d98e66bafed" }, + "conform.nvim": { "branch": "master", "commit": "e969e302bced7ffb9a0a0323629f31feb0ca35a6" }, + "copilot.lua": { "branch": "master", "commit": "ef4bfc579b404c531c1738bacca82ed61501d877" }, "flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" }, "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" }, "gitsigns.nvim": { "branch": "main", "commit": "9f3c6dd7868bcc116e9c1c1929ce063b978fa519" }, @@ -13,18 +14,18 @@ "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, "lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" }, "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "21c2a84ce368e99b18f52ab348c4c02c32c02fcf" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "2ab512d3d8e2fd1f679543c13e0dc4606c3d3d2e" }, "mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" }, - "mini.ai": { "branch": "main", "commit": "9eae720f2b20f6ad28cbfa0ddc524e10dc2c3201" }, - "mini.icons": { "branch": "main", "commit": "68c178e0958d95b3977a771f3445429b1bded985" }, - "mini.pairs": { "branch": "main", "commit": "4089aa6ea6423e02e1a8326a7a7a00159f6f5e04" }, - "mini.surround": { "branch": "main", "commit": "d648a5601e1c48f175b07d10eba141da338a0a2a" }, + "mini.ai": { "branch": "main", "commit": "4b0a6207341d895b6cfe9bcb1e4d3e8607bfe4f4" }, + "mini.icons": { "branch": "main", "commit": "5b9076dae1bfbe47ba4a14bc8b967cde0ab5d77e" }, + "mini.pairs": { "branch": "main", "commit": "b7fde3719340946feb75017ef9d75edebdeb0566" }, + "mini.surround": { "branch": "main", "commit": "d205d1741d1fcc1f3117b4e839bf00f74ad72fa2" }, "noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" }, "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, - "nvim-lint": { "branch": "master", "commit": "bcd1a44edbea8cd473af7e7582d3f7ffc60d8e81" }, - "nvim-lspconfig": { "branch": "master", "commit": "44acfe887d4056f704ccc4f17513ed41c9e2b2e6" }, + "nvim-lint": { "branch": "master", "commit": "606b823a57b027502a9ae00978ebf4f5d5158098" }, + "nvim-lspconfig": { "branch": "master", "commit": "a40d22e75d951ad2fcf236ceb013d88f81d2cc9a" }, "nvim-osc52": { "branch": "main", "commit": "04cfaba1865ae5c53b6f887c3ca7304973824fb2" }, - "nvim-treesitter": { "branch": "main", "commit": "4d9466677a5ceadef104eaa0fe08d60d91c4e9a7" }, + "nvim-treesitter": { "branch": "main", "commit": "957f86ae3f049ab6681ed64c05b05768fcaed0d2" }, "nvim-treesitter-textobjects": { "branch": "main", "commit": "a0e182ae21fda68c59d1f36c9ed45600aef50311" }, "nvim-ts-autotag": { "branch": "main", "commit": "8e1c0a389f20bf7f5b0dd0e00306c1247bda2595" }, "persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" }, diff --git a/lazyvim.json b/lazyvim.json index 1ca8e66..3daaf7b 100644 --- a/lazyvim.json +++ b/lazyvim.json @@ -1,5 +1,6 @@ { "extras": [ + "lazyvim.plugins.extras.ai.claudecode", "lazyvim.plugins.extras.ai.copilot", "lazyvim.plugins.extras.ai.copilot-chat", "lazyvim.plugins.extras.coding.mini-surround" diff --git a/lua/plugins/claude-code.lua b/lua/plugins/claude-code.lua new file mode 100644 index 0000000..1e741a9 --- /dev/null +++ b/lua/plugins/claude-code.lua @@ -0,0 +1,50 @@ +return { + "coder/claudecode.nvim", + lazy = false, + dependencies = { "folke/snacks.nvim" }, + opts = { + log_level = "info", + focus_after_send = true, + terminal = { + git_repo_cwd = true, + snacks_win_opts = { + position = "float", + width = 0.85, + height = 0.85, + border = "rounded", + keys = { + hide = { + "jj", + function(self) + self:hide() + end, + mode = "t", + desc = "Hide Claude", + }, + }, + }, + }, + }, + keys = { + { "j", nil, desc = "Claude Code" }, + -- { "", "ClaudeCode", desc = "Toggle Claude" }, -- not working + { "jj", "ClaudeCode", desc = "Toggle Claude" }, + { "jb", "ClaudeCodeAdd %", desc = "Add current buffer" }, + { "js", "ClaudeCodeSend", mode = "v", desc = "Send selection" }, + + -- I use snacks_picker_list, not supported yet. Claude Code currently only supports these 5. + -- { + -- "js", + -- "ClaudeCodeTreeAdd", + -- desc = "Add file", + -- ft = { "NvimTree", "neo-tree", "oil", "minifiles", "netrw" }, + -- }, + { "jr", "ClaudeCode --resume", desc = "Resume session" }, + { "jc", "ClaudeCode --continue", desc = "Continue session" }, + { "jm", "ClaudeCodeSelectModel", desc = "Select model" }, + + -- Diff actions + { "ja", "ClaudeCodeDiffAccept", desc = "Accept diff" }, + { "jd", "ClaudeCodeDiffDeny", desc = "Deny diff" }, + }, +}