Files
neovim/lua/plugins/ai.lua
T
Christopher Williams 977864875c Add rust plugins
2026-06-06 11:11:34 -04:00

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