mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-20 16:15:43 +02:00
plugins/avante: init
This commit is contained in:
parent
c06d598315
commit
2c4e4681db
2 changed files with 286 additions and 0 deletions
86
plugins/by-name/avante/default.nix
Normal file
86
plugins/by-name/avante/default.nix
Normal file
|
@ -0,0 +1,86 @@
|
|||
{ lib, ... }:
|
||||
let
|
||||
inherit (lib.nixvim) defaultNullOpts mkNullOrOption' toLuaObject;
|
||||
in
|
||||
lib.nixvim.neovim-plugin.mkNeovimPlugin {
|
||||
name = "avante";
|
||||
originalName = "avante.nvim";
|
||||
package = "avante-nvim";
|
||||
|
||||
maintainers = [ lib.maintainers.GaetanLepage ];
|
||||
|
||||
settingsOptions = {
|
||||
provider = defaultNullOpts.mkStr "claude" ''
|
||||
The LLM provider (`"claude"`, `"openai"`, `"azure"`, ...)
|
||||
'';
|
||||
|
||||
auto_suggestions_frequency = defaultNullOpts.mkStr "claude" ''
|
||||
The provider for automatic suggestions.
|
||||
|
||||
Since auto-suggestions are a high-frequency operation and therefore expensive, it is
|
||||
recommended to specify an inexpensive provider or even a free provider: `"copilot"`.
|
||||
'';
|
||||
|
||||
mappings = mkNullOrOption' {
|
||||
type = with lib.types; attrsOf (either str (attrsOf str));
|
||||
example = {
|
||||
diff = {
|
||||
ours = "co";
|
||||
theirs = "ct";
|
||||
none = "c0";
|
||||
both = "cb";
|
||||
next = "]x";
|
||||
prev = "[x";
|
||||
};
|
||||
jump = {
|
||||
next = "]]";
|
||||
prev = "[[";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
settingsExample = {
|
||||
provider = "claude";
|
||||
claude = {
|
||||
endpoint = "https://api.anthropic.com";
|
||||
model = "claude-3-5-sonnet-20240620";
|
||||
temperature = 0;
|
||||
max_tokens = 4096;
|
||||
};
|
||||
mappings = {
|
||||
diff = {
|
||||
ours = "co";
|
||||
theirs = "ct";
|
||||
none = "c0";
|
||||
both = "cb";
|
||||
next = "]x";
|
||||
prev = "[x";
|
||||
};
|
||||
};
|
||||
hints.enabled = true;
|
||||
windows = {
|
||||
wrap = true;
|
||||
width = 30;
|
||||
sidebar_header = {
|
||||
align = "center";
|
||||
rounded = true;
|
||||
};
|
||||
};
|
||||
highlights.diff = {
|
||||
current = "DiffText";
|
||||
incoming = "DiffAdd";
|
||||
};
|
||||
diff = {
|
||||
debug = false;
|
||||
autojump = true;
|
||||
list_opener = "copen";
|
||||
};
|
||||
};
|
||||
|
||||
extraConfig = _: {
|
||||
plugins.avante.luaConfig.pre = ''
|
||||
require('avante_lib').load()
|
||||
'';
|
||||
};
|
||||
}
|
200
tests/test-sources/plugins/by-name/avante/default.nix
Normal file
200
tests/test-sources/plugins/by-name/avante/default.nix
Normal file
|
@ -0,0 +1,200 @@
|
|||
{
|
||||
empty = {
|
||||
plugins.avante.enable = true;
|
||||
};
|
||||
|
||||
defaults = {
|
||||
plugins.avante = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
debug = false;
|
||||
provider = "claude";
|
||||
auto_suggestions_provider = "claude";
|
||||
tokenizer = "tiktoken";
|
||||
system_prompt = ''
|
||||
You are an excellent programming expert.
|
||||
'';
|
||||
openai = {
|
||||
endpoint = "https://api.openai.com/v1";
|
||||
model = "gpt-4o";
|
||||
timeout = 30000;
|
||||
temperature = 0;
|
||||
max_tokens = 4096;
|
||||
local = false;
|
||||
};
|
||||
copilot = {
|
||||
endpoint = "https://api.githubcopilot.com";
|
||||
model = "gpt-4o-2024-05-13";
|
||||
proxy = null;
|
||||
allow_insecure = false;
|
||||
timeout = 30000;
|
||||
temperature = 0;
|
||||
max_tokens = 4096;
|
||||
};
|
||||
azure = {
|
||||
endpoint = "";
|
||||
deployment = "";
|
||||
api_version = "2024-06-01";
|
||||
timeout = 30000;
|
||||
temperature = 0;
|
||||
max_tokens = 4096;
|
||||
local = false;
|
||||
};
|
||||
claude = {
|
||||
endpoint = "https://api.anthropic.com";
|
||||
model = "claude-3-5-sonnet-20240620";
|
||||
timeout = 30000;
|
||||
temperature = 0;
|
||||
max_tokens = 8000;
|
||||
local = false;
|
||||
};
|
||||
gemini = {
|
||||
endpoint = "https://generativelanguage.googleapis.com/v1beta/models";
|
||||
model = "gemini-1.5-flash-latest";
|
||||
timeout = 30000;
|
||||
temperature = 0;
|
||||
max_tokens = 4096;
|
||||
local = false;
|
||||
};
|
||||
cohere = {
|
||||
endpoint = "https://api.cohere.com/v1";
|
||||
model = "command-r-plus-08-2024";
|
||||
timeout = 30000;
|
||||
temperature = 0;
|
||||
max_tokens = 4096;
|
||||
local = false;
|
||||
};
|
||||
vendors = { };
|
||||
behaviour = {
|
||||
auto_suggestions = false;
|
||||
auto_set_highlight_group = true;
|
||||
auto_set_keymaps = true;
|
||||
auto_apply_diff_after_generation = false;
|
||||
support_paste_from_clipboard = false;
|
||||
};
|
||||
history = {
|
||||
storage_path.__raw = "vim.fn.stdpath('state') .. '/avante'";
|
||||
paste = {
|
||||
extension = "png";
|
||||
filename = "pasted-%Y-%m-%d-%H-%M-%S";
|
||||
};
|
||||
};
|
||||
highlights = {
|
||||
diff = {
|
||||
current = "DiffText";
|
||||
incoming = "DiffAdd";
|
||||
};
|
||||
};
|
||||
mappings = {
|
||||
diff = {
|
||||
ours = "co";
|
||||
theirs = "ct";
|
||||
all_theirs = "ca";
|
||||
both = "cb";
|
||||
cursor = "cc";
|
||||
next = "]x";
|
||||
prev = "[x";
|
||||
};
|
||||
suggestion = {
|
||||
accept = "<M-l>";
|
||||
next = "<M-]>";
|
||||
prev = "<M-[>";
|
||||
dismiss = "<C-]>";
|
||||
};
|
||||
jump = {
|
||||
next = "]]";
|
||||
prev = "[[";
|
||||
};
|
||||
submit = {
|
||||
normal = "<CR>";
|
||||
insert = "<C-s>";
|
||||
};
|
||||
ask = "<leader>aa";
|
||||
edit = "<leader>ae";
|
||||
refresh = "<leader>ar";
|
||||
toggle = {
|
||||
default = "<leader>at";
|
||||
debug = "<leader>ad";
|
||||
hint = "<leader>ah";
|
||||
suggestion = "<leader>as";
|
||||
};
|
||||
sidebar = {
|
||||
switch_windows = "<Tab>";
|
||||
reverse_switch_windows = "<S-Tab>";
|
||||
};
|
||||
};
|
||||
windows = {
|
||||
position = "right";
|
||||
wrap = true;
|
||||
width = 30;
|
||||
height = 30;
|
||||
sidebar_header = {
|
||||
align = "center";
|
||||
rounded = true;
|
||||
};
|
||||
input = {
|
||||
prefix = "> ";
|
||||
};
|
||||
edit = {
|
||||
border = "rounded";
|
||||
};
|
||||
};
|
||||
diff = {
|
||||
autojump = true;
|
||||
};
|
||||
hints = {
|
||||
enabled = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
example = {
|
||||
plugins.avante = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
provider = "claude";
|
||||
claude = {
|
||||
endpoint = "https://api.anthropic.com";
|
||||
model = "claude-3-5-sonnet-20240620";
|
||||
temperature = 0;
|
||||
max_tokens = 4096;
|
||||
};
|
||||
mappings = {
|
||||
diff = {
|
||||
ours = "co";
|
||||
theirs = "ct";
|
||||
none = "c0";
|
||||
both = "cb";
|
||||
next = "]x";
|
||||
prev = "[x";
|
||||
};
|
||||
jump = {
|
||||
next = "]]";
|
||||
prev = "[[";
|
||||
};
|
||||
};
|
||||
hints.enabled = true;
|
||||
windows = {
|
||||
wrap = true;
|
||||
width = 30;
|
||||
sidebar_header = {
|
||||
align = "center";
|
||||
rounded = true;
|
||||
};
|
||||
};
|
||||
highlights.diff = {
|
||||
current = "DiffText";
|
||||
incoming = "DiffAdd";
|
||||
};
|
||||
diff = {
|
||||
debug = false;
|
||||
autojump = true;
|
||||
list_opener = "copen";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue