nixvim-config/plugins/avante-custom.nix

73 lines
1.9 KiB
Nix
Raw Normal View History

{ 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 = "<api_key_name>",
},
openai = {
api_key_name = "<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 {};
}