161 lines
3.1 KiB
Lua
161 lines
3.1 KiB
Lua
local M = {
|
|
{
|
|
"zbirenbaum/copilot.lua",
|
|
dependencies = {
|
|
"copilotlsp-nvim/copilot-lsp",
|
|
},
|
|
cmd = "Copilot",
|
|
build = ":Copilot auth",
|
|
event = "BufReadPost",
|
|
config = function()
|
|
require("copilot").setup({
|
|
suggestion = {
|
|
enabled = true,
|
|
auto_trigger = true,
|
|
keymap = {
|
|
accept = "<C-j>",
|
|
accept_line = "<C-l>",
|
|
accept_word = "<C-k>",
|
|
-- next = "<C-]>",
|
|
-- prev = "<C-[>",
|
|
dismiss = "<C-c>",
|
|
},
|
|
},
|
|
nes = {
|
|
enabled = false,
|
|
keymap = {
|
|
accept_and_goto = "<leader>p",
|
|
accept = false,
|
|
dismiss = "<Esc>",
|
|
},
|
|
},
|
|
panel = { enabled = false },
|
|
filetypes = {
|
|
lua = true,
|
|
markdown = true,
|
|
help = true,
|
|
},
|
|
})
|
|
-- vim.api.nvim_create_autocmd("User", {
|
|
-- pattern = "BlinkCmpMenuOpen",
|
|
-- callback = function()
|
|
-- vim.b.copilot_suggestion_hidden = true
|
|
-- end,
|
|
-- })
|
|
--
|
|
-- vim.api.nvim_create_autocmd("User", {
|
|
-- pattern = "BlinkCmpMenuClose",
|
|
-- callback = function()
|
|
-- vim.b.copilot_suggestion_hidden = false
|
|
-- end,
|
|
-- })
|
|
end,
|
|
},
|
|
{
|
|
"olimorris/codecompanion.nvim",
|
|
version = "^19.0.0",
|
|
opts = {},
|
|
dependencies = {
|
|
"nvim-lua/plenary.nvim",
|
|
"nvim-treesitter/nvim-treesitter",
|
|
},
|
|
},
|
|
{
|
|
"folke/sidekick.nvim",
|
|
opts = {
|
|
-- add any options here
|
|
cli = {
|
|
mux = {
|
|
backend = "zellij",
|
|
enabled = true,
|
|
},
|
|
},
|
|
},
|
|
keys = {
|
|
{
|
|
"<tab>",
|
|
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 "<Tab>" -- fallback to normal tab
|
|
end
|
|
end,
|
|
expr = true,
|
|
desc = "Goto/Apply Next Edit Suggestion",
|
|
},
|
|
{
|
|
"<c-.>",
|
|
function()
|
|
require("sidekick.cli").focus()
|
|
end,
|
|
desc = "Sidekick Focus",
|
|
mode = { "n", "t", "i", "x" },
|
|
},
|
|
{
|
|
"<leader>aa",
|
|
function()
|
|
require("sidekick.cli").toggle()
|
|
end,
|
|
desc = "Sidekick Toggle CLI",
|
|
},
|
|
{
|
|
"<leader>as",
|
|
function()
|
|
require("sidekick.cli").select()
|
|
end,
|
|
-- Or to select only installed tools:
|
|
-- require("sidekick.cli").select({ filter = { installed = true } })
|
|
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",
|
|
},
|
|
-- Example of a keybinding to open Claude directly
|
|
{
|
|
"<leader>ac",
|
|
function()
|
|
require("sidekick.cli").toggle({ name = "claude", focus = true })
|
|
end,
|
|
desc = "Sidekick Toggle Claude",
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
return M
|