Files
cnix/home/modules/devtools/neovim/plugins/ai.nix

60 lines
1.2 KiB
Nix

{ lib
, config
, ...
}:
let
inherit (lib) mkEnableOption mkIf;
cfg = config.modules.devtools.neovim.plugins.ai;
in
{
options = {
modules.devtools.neovim.plugins.ai.enable = mkEnableOption "Enables AI tools for Neovim";
};
config = mkIf cfg.enable {
programs.nixvim = {
plugins = {
chatgpt = {
enable = true;
settings = {
api_key_cmd = "cat ${config.sops.secrets.openai_api_key.path}";
};
};
copilot-chat.enable = true;
copilot-lua = {
enable = true;
suggestion = {
enabled = true;
autoTrigger = true;
keymap.accept = "<C-CR>";
};
panel.enabled = false;
};
};
keymaps = [
{
action = "<cmd>CopilotChatToggle<CR>";
key = "<leader>ac";
options = {
desc = "Toggle Coilot chat";
};
mode = [
"n"
];
}
{
action = "<cmd>ChatGPT<CR>";
key = "<leader>ag";
options = {
desc = "Toggle ChatGPT";
};
mode = [
"n"
];
}
];
};
};
}