feat(ai): add avante.nvim

- Add proper lazy-loading with cmd and keys
- Move nui.nvim to separate spec with lazy=true
- Remove optional dependencies without configuration
- Keep only optional specs with actual config (img-clip, render-markdown, blink.cmp)
- Fix blink.cmp to use specs instead of dependencies

🤖 Action performed by [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Folke Lemaitre 2025-10-20 10:46:44 +02:00
parent b0a0a44f43
commit 2a14509903
No known key found for this signature in database
GPG key ID: 9B52594D560070AB

View file

@ -1,29 +1,49 @@
return { return {
{ "MunifTanjim/nui.nvim", lazy = true },
{ {
"yetone/avante.nvim", "yetone/avante.nvim",
build = vim.fn.has("win32") ~= 0 and "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" build = vim.fn.has("win32") ~= 0 and "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false"
or "make", or "make",
event = "VeryLazy", event = "VeryLazy",
version = false,
opts = { opts = {
provider = "copilot", provider = "copilot",
selection = { selection = {
hint_display = "none", hint_display = "none",
}, },
}, },
dependencies = { cmd = {
"nvim-lua/plenary.nvim", "AvanteAsk",
"MunifTanjim/nui.nvim", "AvanteBuild",
"zbirenbaum/copilot.lua", "AvanteChat",
{ "nvim-mini/mini.pick", optional = true }, -- for file_selector provider mini.pick "AvanteClear",
{ "nvim-telescope/telescope.nvim", optional = true }, -- for file_selector provider telescope "AvanteEdit",
{ "hrsh7th/nvim-cmp", optional = true }, -- autocompletion for avante commands and mentions "AvanteFocus",
{ "ibhagwan/fzf-lua", optional = true }, -- for file_selector provider fzf "AvanteHistory",
{ "stevearc/dressing.nvim", optional = true }, -- for input provider dressing "AvanteModels",
{ "folke/snacks.nvim", optional = true }, -- for input provider snacks "AvanteRefresh",
{ "nvim-tree/nvim-web-devicons", optional = true }, -- or echasnovski/mini.icons "AvanteShowRepoMap",
{ "AvanteStop",
"AvanteSwitchProvider",
"AvanteToggle",
},
keys = {
{ "n", "<leader>aa", "<cmd>AvanteAsk<CR>", desc = "Ask Avante" },
{ "n", "<leader>ac", "<cmd>AvanteChat<CR>", desc = "Chat with Avante" },
{ "n", "<leader>ae", "<cmd>AvanteEdit<CR>", desc = "Edit Avante" },
{ "n", "<leader>af", "<cmd>AvanteFocus<CR>", desc = "Focus Avante" },
{ "n", "<leader>ah", "<cmd>AvanteHistory<CR>", desc = "Avante History" },
{ "n", "<leader>am", "<cmd>AvanteModels<CR>", desc = "Select Avante Model" },
{ "n", "<leader>an", "<cmd>AvanteChatNew<CR>", desc = "New Avante Chat" },
{ "n", "<leader>ap", "<cmd>AvanteSwitchProvider<CR>", desc = "Switch Avante Provider" },
{ "n", "<leader>ar", "<cmd>AvanteRefresh<CR>", desc = "Refresh Avante" },
{ "n", "<leader>as", "<cmd>AvanteStop<CR>", desc = "Stop Avante" },
{ "n", "<leader>at", "<cmd>AvanteToggle<CR>", desc = "Toggle Avante" },
},
},
-- support for image pasting -- support for image pasting
{
"HakonHarnes/img-clip.nvim", "HakonHarnes/img-clip.nvim",
event = "VeryLazy", event = "VeryLazy",
optional = true, optional = true,
@ -40,8 +60,9 @@ return {
}, },
}, },
}, },
{
-- Make sure to set this up properly if you have lazy=true -- Make sure to set this up properly if you have lazy=true
{
"MeanderingProgrammer/render-markdown.nvim", "MeanderingProgrammer/render-markdown.nvim",
optional = true, optional = true,
opts = { opts = {
@ -49,12 +70,12 @@ return {
}, },
ft = { "markdown", "Avante" }, ft = { "markdown", "Avante" },
}, },
-- blink.cmp source for avante.nvim
{ {
"saghen/blink.cmp", "saghen/blink.cmp",
optional = true, optional = true,
dependencies = { specs = { "Kaiser-Yang/blink-cmp-avante" },
"Kaiser-Yang/blink-cmp-avante",
},
opts = { opts = {
sources = { sources = {
default = { "avante" }, default = { "avante" },
@ -62,6 +83,4 @@ return {
}, },
}, },
}, },
},
},
} }