nvf/modules/plugins/assistant/codecompanion/config.nix
Marlon Rosenberg fd0c2a2548 assistant/codecompanion-nvim: add mappings
Add mappings for common commands in codecompanion-nvim
2025-03-24 17:33:05 +01:00

47 lines
1.3 KiB
Nix

{
config,
lib,
...
}: let
inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.binds) addDescriptionsToMappings mkSetBinding mkSetLuaBinding;
self = import ./codecompanion-nvim.nix {inherit lib;};
cfg = config.vim.assistant.codecompanion-nvim;
mappingDefinitions = self.options.vim.assistant.codecompanion-nvim.mappings;
mappings = addDescriptionsToMappings cfg.mappings mappingDefinitions;
maps = mkMerge [
(mkSetBinding mappings.inlineAssistant.open "<cmd>CodeCompanion<CR>")
(mkSetBinding mappings.chat.open "<cmd>CodeCompanionChat<CR>")
(mkSetBinding mappings.chat.toggle "<cmd>CodeCompanionChat Toggle<CR>")
(mkSetBinding mappings.actions.open "<cmd>CodeCompanionActions<CR>")
(mkSetLuaBinding mappings.command.open "function() vim.fn.feedkeys(\":CodeCompanionCmd \") end")
];
in {
config = mkIf cfg.enable {
vim = {
startPlugins = [
"plenary-nvim"
];
lazy.plugins = {
codecompanion-nvim = {
package = "codecompanion-nvim";
setupModule = "codecompanion";
inherit (cfg) setupOpts;
};
};
maps = {
visual = mkMerge [
(mkSetBinding mappings.chat.addToChatBuffer "<cmd>CodeCompanionChat Add<CR>")
maps
];
normal = maps;
};
treesitter.enable = true;
};
};
}