nvim-configs/lua/plugins/avante.lua

113 lines
2.7 KiB
Lua
Raw Normal View History

2025-03-30 16:27:30 +08:00
local function qwen(model)
return {
__inherited_from = "openai",
api_key_name = "QWEN_API_KEY",
endpoint = "https://dashscope.aliyuncs.com/compatible-mode/v1/",
model = model,
}
end
return {
{
"yetone/avante.nvim",
2025-08-16 14:37:08 +08:00
build = vim.fn.has("win32") ~= 0 and "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false"
or "make",
2025-03-30 16:27:30 +08:00
event = "VeryLazy",
dependencies = {
"stevearc/dressing.nvim",
"nvim-lua/plenary.nvim",
"MunifTanjim/nui.nvim",
{
"MeanderingProgrammer/render-markdown.nvim",
opts = {
file_types = { "markdown", "Avante" },
},
ft = { "markdown", "Avante" },
},
},
opts = {
file_selector = {
provider = "fzf-lua",
provider_opts = {},
},
2025-08-16 14:37:08 +08:00
provider = "qwen3coder",
auto_suggestions_provider = "qwen332b",
2025-03-30 16:27:30 +08:00
2025-08-16 14:37:08 +08:00
providers = {
qwen3coder = qwen("qwen3-coder-480b-a35b-instruct"),
qwen332b = qwen("qwen3-32b"),
2025-03-30 16:27:30 +08:00
},
2025-04-01 00:49:11 +08:00
-- Key mappings for diff functionality
mappings = {
diff = {
theirs = "<M-l>",
ours = "<M-L>",
},
},
2025-03-30 16:27:30 +08:00
},
},
2025-03-30 16:40:50 +08:00
{
"nvim-neo-tree/neo-tree.nvim",
config = function()
require("neo-tree").setup({
filesystem = {
commands = {
avante_add_files = function(state)
local node = state.tree:get_node()
local filepath = node:get_id()
local relative_path = require("avante.utils").relative_path(filepath)
local sidebar = require("avante").get()
local open = sidebar:is_open()
-- ensure avante sidebar is open
if not open then
require("avante.api").ask()
sidebar = require("avante").get()
end
sidebar.file_selector:add_selected_file(relative_path)
-- remove neo tree buffer
if not open then
sidebar.file_selector:remove_selected_file("neo-tree filesystem [1]")
end
end,
},
window = {
mappings = {
["oa"] = "avante_add_files",
},
},
},
})
end,
},
{
"saghen/blink.cmp",
dependencies = {
"Kaiser-Yang/blink-cmp-avante",
-- ... Other dependencies
},
opts = {
sources = {
-- Add 'avante' to the list
default = { "avante", "lsp", "path", "snippets", "buffer" },
providers = {
avante = {
module = "blink-cmp-avante",
name = "Avante",
opts = {
-- options for blink-cmp-avante
},
},
},
},
},
},
2025-03-30 16:27:30 +08:00
}