{ config, pkgs,... }: { programs.nixvim = if config.nixvim-config.enable-ai then { extraPlugins = [ pkgs.vimPlugins.avante-nvim # (pkgs.vimUtils.buildVimPlugin { # name = "avante"; # src = pkgs.fetchFromGitHub { # owner = "yetone"; # repo = "avante.nvim"; # rev = "v0.0.19"; # hash = "sha256-/WvkMsyhaYa3TLOg6QBVz1dvHO4vr1PdeSF7zVIOUcY="; # }; # }) ]; # Use "post" to make sure dependencies are loaded first extraConfigLuaPost = '' -- MunifTanjim/nui.nvim -- stevearc/dressing.nvim -- nvim-lua/plenary.nvim require('nui').setup({}); require('dressing').setup({}); require('plenary').setup({}); require('avante_lib').load() require('avante').setup ({ provider = "copilot", claude = { api_key_name = "", }, openai = { api_key_name = "", }, files = { auto_include = true, -- Automatically include relevant files max_files = 50, ---------------- Maximum number of files to include in context max_size_kb = 1000, -- Maximum total size of files in KB -- Define which files to include/exclude include = { "*.lua", "*.nix", "*.rs", "*.ts", "*.js", "*.jsx", "*.tsx", -- Add more patterns as needed }, exclude = { "node_modules/**", "dist/**", ".git/**", }, }, web_search_engine = { provider = "tavily", -- tavily, serpapi, searchapi, google, kagi }, -- depends on docker rag_service = { enable = true, -- requires OPENAI_API_KEY to be set }, }) ''; } else {}; }