diff --git a/lua/plugins/sidekick.lua b/lua/plugins/sidekick.lua new file mode 100644 index 0000000..3a1bcdb --- /dev/null +++ b/lua/plugins/sidekick.lua @@ -0,0 +1,73 @@ +return { + "folke/sidekick.nvim", + opts = { + -- add any options here + cli = { + mux = { + backend = "zellij", + enabled = true, + }, + }, + }, + -- stylua: ignore + keys = { + { + "", + function() + -- if there is a next edit, jump to it, otherwise apply it if any + if not require("sidekick").nes_jump_or_apply() then + return "" -- fallback to normal tab + end + end, + expr = true, + desc = "Goto/Apply Next Edit Suggestion", + }, + { + "", + function() require("sidekick.cli").toggle() end, + desc = "Sidekick Toggle", + mode = { "n", "t", "i", "x" }, + }, + { + "aa", + function() require("sidekick.cli").toggle() end, + desc = "Sidekick Toggle CLI", + }, + { + "as", + function() require("sidekick.cli").select() end, + -- Or to select only installed tools: + -- require("sidekick.cli").select({ filter = { installed = true } }) + desc = "Select CLI", + }, + { + "at", + function() require("sidekick.cli").send({ msg = "{this}" }) end, + mode = { "x", "n" }, + desc = "Send This", + }, + { + "af", + function() require("sidekick.cli").send({ msg = "{file}" }) end, + desc = "Send File", + }, + { + "av", + function() require("sidekick.cli").send({ msg = "{selection}" }) end, + mode = { "x" }, + desc = "Send Visual Selection", + }, + { + "ap", + function() require("sidekick.cli").prompt() end, + mode = { "n", "x" }, + desc = "Sidekick Select Prompt", + }, + -- Example of a keybinding to open Claude directly + { + "ac", + function() require("sidekick.cli").toggle({ name = "claude", focus = true }) end, + desc = "Sidekick Toggle Claude", + }, + }, +}