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,66 +1,85 @@
return {
{ "MunifTanjim/nui.nvim", lazy = true },
{
"yetone/avante.nvim",
build = vim.fn.has("win32") ~= 0 and "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false"
or "make",
event = "VeryLazy",
version = false,
opts = {
provider = "copilot",
selection = {
hint_display = "none",
},
},
dependencies = {
"nvim-lua/plenary.nvim",
"MunifTanjim/nui.nvim",
"zbirenbaum/copilot.lua",
{ "nvim-mini/mini.pick", optional = true }, -- for file_selector provider mini.pick
{ "nvim-telescope/telescope.nvim", optional = true }, -- for file_selector provider telescope
{ "hrsh7th/nvim-cmp", optional = true }, -- autocompletion for avante commands and mentions
{ "ibhagwan/fzf-lua", optional = true }, -- for file_selector provider fzf
{ "stevearc/dressing.nvim", optional = true }, -- for input provider dressing
{ "folke/snacks.nvim", optional = true }, -- for input provider snacks
{ "nvim-tree/nvim-web-devicons", optional = true }, -- or echasnovski/mini.icons
{
-- support for image pasting
"HakonHarnes/img-clip.nvim",
event = "VeryLazy",
optional = true,
opts = {
-- recommended settings
default = {
embed_image_as_base64 = false,
prompt_for_file_name = false,
drag_and_drop = {
insert_mode = true,
},
-- required for Windows users
use_absolute_path = true,
},
cmd = {
"AvanteAsk",
"AvanteBuild",
"AvanteChat",
"AvanteClear",
"AvanteEdit",
"AvanteFocus",
"AvanteHistory",
"AvanteModels",
"AvanteRefresh",
"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
{
"HakonHarnes/img-clip.nvim",
event = "VeryLazy",
optional = true,
opts = {
-- recommended settings
default = {
embed_image_as_base64 = false,
prompt_for_file_name = false,
drag_and_drop = {
insert_mode = true,
},
-- required for Windows users
use_absolute_path = true,
},
{
-- Make sure to set this up properly if you have lazy=true
"MeanderingProgrammer/render-markdown.nvim",
optional = true,
opts = {
file_types = { "markdown", "Avante" },
},
ft = { "markdown", "Avante" },
},
{
"saghen/blink.cmp",
optional = true,
dependencies = {
"Kaiser-Yang/blink-cmp-avante",
},
opts = {
sources = {
default = { "avante" },
providers = { avante = { module = "blink-cmp-avante", name = "Avante" } },
},
},
},
},
-- Make sure to set this up properly if you have lazy=true
{
"MeanderingProgrammer/render-markdown.nvim",
optional = true,
opts = {
file_types = { "markdown", "Avante" },
},
ft = { "markdown", "Avante" },
},
-- blink.cmp source for avante.nvim
{
"saghen/blink.cmp",
optional = true,
specs = { "Kaiser-Yang/blink-cmp-avante" },
opts = {
sources = {
default = { "avante" },
providers = { avante = { module = "blink-cmp-avante", name = "Avante" } },
},
},
},