73 lines
1.9 KiB
Nix
73 lines
1.9 KiB
Nix
![]() |
{ 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 {};
|
||
|
}
|