local function dmx(model) return { __inherited_from = "openai", api_key_name = "DMX_API_KEY", endpoint = "https://www.dmxapi.cn/v1/", model = model, } end local llm_main = dmx("glm-4.6") return { { "yetone/avante.nvim", build = vim.fn.has("win32") ~= 0 and "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" or "make", 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 = {}, }, -- Key mappings for diff functionality mappings = { diff = { theirs = "", ours = "", }, }, -- providers provider = "dsv3", providers = { main = llm_main, air = dmx("glm-4.5-air"), dsv3 = dmx("deepseek-v3.2-exp"), }, acp_providers = { ["qwen-code"] = { command = "qwen", args = { "--experimental-acp" }, env = { NODE_NO_WARNINGS = "1", }, }, }, }, }, { "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 }, }, minuet = { name = "minuet", module = "minuet.blink", score_offset = 100, }, }, }, }, }, { "milanglacier/minuet-ai.nvim", event = "InsertEnter", config = function() require("minuet").setup({ virtualtext = { auto_trigger_ft = { "*" }, keymap = { accept = "", accept_line = "", next = "", prev = "", dismiss = "", }, }, }) end, }, }