feat: add sidekick.nvim and haunt.nvim with AI and bookmark integration

- Add sidekick.nvim: Next Edit Suggestions (NES) via Copilot LSP, integrated
  AI CLI terminal, and Snacks picker send action (<Alt-a>)
- Add haunt.nvim: in-buffer annotation/bookmark manager with Snacks picker
  and 6 keymaps (<leader>ha/ht/hd/hn/hp/hl)
- Wire blink.cmp <Tab> to chain snippet_forward -> NES -> inline completion
- Expose haunt_all and haunt_buffer as Sidekick prompt contexts
- Suppress lua_ls "Loading workspace" progress bar via Noice route
- Update README to document all new plugins, keymaps, and post-install steps
This commit is contained in:
2026-05-11 12:32:19 -04:00
parent 859cfc3793
commit 7f9c380eaa
4 changed files with 94 additions and 4 deletions
+50 -1
View File
@@ -56,6 +56,7 @@ Config.plugins.snacks = {
keys = {
["<a-s>"] = { "flash", mode = { "n", "i" } },
["s"] = { "flash" },
["<a-a>"] = { "sidekick_send", mode = { "n", "i" } },
},
},
},
@@ -78,6 +79,9 @@ Config.plugins.snacks = {
end,
})
end,
sidekick_send = function(...)
return require("sidekick.cli.picker.snacks").send(...)
end,
},
},
notifier = { enabled = true },
@@ -281,7 +285,19 @@ lazyload.on_vim_enter(function()
-- 3. Blink.cmp setup
require("blink.cmp").setup({
keymap = { preset = "default" },
keymap = {
preset = "default",
["<Tab>"] = {
"snippet_forward",
function()
return require("sidekick").nes_jump_or_apply()
end,
function()
return vim.lsp.inline_completion.get()
end,
"fallback",
},
},
appearance = {
use_nvim_cmp_as_default = true,
nerd_font_variant = "mono",
@@ -445,10 +461,43 @@ lazyload.on_vim_enter(function()
inc_rename = true, -- enables an input dialog for inc-rename.nvim
lsp_doc_border = false, -- add a border to hover docs and signature help
},
routes = {
{
filter = {
event = "lsp",
kind = "progress",
find = "Loading workspace",
},
opts = { skip = true },
},
},
})
-- Kitty Scrollback
vim.pack.add({ { src = "https://github.com/mikesmithgh/kitty-scrollback.nvim", name = "kitty-scrollback" } })
Config.plugins.kitty_scrollback = {}
require("kitty-scrollback").setup(Config.plugins.kitty_scrollback)
-- Haunt.nvim
vim.pack.add({ { src = "https://github.com/TheNoeTrevino/haunt.nvim", name = "haunt" } })
Config.plugins.haunt = {
picker = "snacks",
}
require("haunt").setup(Config.plugins.haunt)
-- Sidekick.nvim
vim.pack.add({ { src = "https://github.com/folke/sidekick.nvim", name = "sidekick" } })
Config.plugins.sidekick = {
cli = {
prompts = {
haunt_all = function()
return require("haunt.sidekick").get_locations()
end,
haunt_buffer = function()
return require("haunt.sidekick").get_locations({ current_buffer = true })
end,
},
},
}
require("sidekick").setup(Config.plugins.sidekick)
end)