-- Claude Code IDE integration via WebSocket MCP. -- opens/focuses a near-fullscreen snacks float; the same key inside -- the terminal hides it (toggle). Visual-mode sends the selection. -- Neo-tree's is wired separately (see lua/plugins/neotree.lua). local toggle_key = "" ---@type LazySpec return { "coder/claudecode.nvim", dependencies = { "folke/snacks.nvim" }, cmd = { "ClaudeCode", "ClaudeCodeFocus", "ClaudeCodeSend", "ClaudeCodeAdd", "ClaudeCodeTreeAdd", "ClaudeCodeSelectModel", "ClaudeCodeDiffAccept", "ClaudeCodeDiffDeny", "ClaudeCodeStatus", }, keys = { { toggle_key, "ClaudeCodeFocus", mode = { "n", "x" }, desc = "Toggle Claude Code" }, { "am", "ClaudeCodeSelectModel", desc = "Select Claude model" }, { "ar", "ClaudeCode --resume", desc = "Resume Claude" }, { "aC", "ClaudeCode --continue", desc = "Continue Claude" }, { "ab", "ClaudeCodeAdd %", desc = "Add current buffer to Claude" }, { "ay", "ClaudeCodeDiffAccept", desc = "Accept Claude diff" }, { "an", "ClaudeCodeDiffDeny", desc = "Deny Claude diff" }, }, opts = { git_repo_cwd = true, terminal = { provider = "snacks", ---@module "snacks" ---@type snacks.win.Config|{} snacks_win_opts = { position = "right", width = 0.3, height = 1, border = "rounded", backdrop = 60, keys = { claude_hide = { toggle_key, function(self) self:hide() end, mode = { "t", "n" }, desc = "Hide Claude Code", }, }, }, }, diff_opts = { layout = "vertical", open_in_new_tab = false, }, }, config = true, }