assistant/codecompanion-nvim: add mappings

Add mappings for common commands in codecompanion-nvim
This commit is contained in:
Marlon Rosenberg 2025-03-24 17:33:05 +01:00
parent df1b3f7968
commit fd0c2a2548
3 changed files with 37 additions and 1 deletions

View file

@ -276,3 +276,7 @@
[rice-cracker-dev](https://github.com/rice-cracker-dev):
- `eslint_d` now checks for configuration files to load.
[Sc3l3t0n](https://github.com/Sc3l3t0n):
- Add some mappings to [codecompanion-nvim]

View file

@ -1,6 +1,7 @@
{lib, ...}: let
inherit (lib.options) mkOption mkEnableOption;
inherit (lib.types) int str enum nullOr attrs;
inherit (lib.nvim.binds) mkMappingOption;
inherit (lib.nvim.types) mkPluginSetupOption luaInline;
in {
options.vim.assistant = {
@ -273,6 +274,17 @@ in {
'';
};
};
mappings = {
inlineAssistant.open = mkMappingOption "[CodeCompanion] Open inline Assistant" "<leader>aa";
chat = {
open = mkMappingOption "[CodeCompanion] Open chat" "<leader>ao";
toggle = mkMappingOption "[CodeCompanion] Toggle chat" "<leader>ac";
addToChatBuffer = mkMappingOption "[CodeCompanion] Add selection to chat" "<leader>ab";
};
actions.open = mkMappingOption "[CodeCompanion] Open actions" "<C-a>";
command.open = mkMappingOption "[CodeCompanion] Open cli command generation prompt" "<leader>ag";
};
};
};
}

View file

@ -3,9 +3,21 @@
lib,
...
}: let
inherit (lib.modules) mkIf;
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 = {
@ -21,6 +33,14 @@ in {
};
};
maps = {
visual = mkMerge [
(mkSetBinding mappings.chat.addToChatBuffer "<cmd>CodeCompanionChat Add<CR>")
maps
];
normal = maps;
};
treesitter.enable = true;
};
};