nixvim-config/plugins/codecompanion.nix

108 lines
2.7 KiB
Nix
Raw Normal View History

{ pkgs, ... }:
{
programs.nixvim = {
keymaps = [
{
mode = [ "n" ];
key = "<c-c>";
action = ":CodeCompanionActions<CR>";
}
{
mode = [ "n" ];
key = ",c";
action = ":CodeCompanionChat Toggle<CR>";
}
];
plugins.codecompanion = {
enable = true;
settings = {
adapters = {
anthropic.__raw = ''
function()
return require('codecompanion.adapters').extend('anthropic', {
env = {
api_key = "cmd:${pkgs.passage}/bin/passage /apis/ai/anthropic"
}
})
end
'';
copilot.__raw = ''
function()
return require('codecompanion.adapters').extend('copilot', {
env = {
-- api_key = "cmd:${pkgs.passage}/bin/passage /apis/ai/anthropic"
}
})
end
'';
openai.__raw = ''
function()
2025-02-16 23:22:51 -08:00
return require('codecompanion.adapters').extend('openai', {
env = {
api_key = "cmd:${pkgs.passage}/bin/passage /apis/ai/openai"
}
})
end
'';
deepseek.__raw = ''
function()
return require('codecompanion.adapters').extend('deepseek', {
env = {
api_key = "cmd:${pkgs.passage}/bin/passage /apis/ai/deepseek"
},
schema = {
model = {
default = "deepseek-reasoner",
},
},
})
end
'';
ollama.__raw = ''
function()
return require('codecompanion.adapters').extend('ollama', {
env = {
url = "http://127.0.0.1:11434",
},
schema = {
model = {
default = 'hf.co/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF',
},
temperature = {
default = 0.6,
},
num_ctx = {
default = 32768,
},
},
})
end
'';
};
opts = {
send_code = true;
use_default_actions = true;
use_default_prompts = true;
};
strategies = {
agent = {
adapter = "copilot";
};
chat = {
adapter = "copilot";
};
inline = {
adapter = "copilot";
};
};
};
};
};
}