From fd0c2a254841f0541861dc7b8b9142f1a58d0858 Mon Sep 17 00:00:00 2001 From: Marlon Rosenberg Date: Mon, 24 Mar 2025 17:33:05 +0100 Subject: [PATCH] assistant/codecompanion-nvim: add mappings Add mappings for common commands in codecompanion-nvim --- docs/release-notes/rl-0.8.md | 4 ++++ .../codecompanion/codecompanion-nvim.nix | 12 ++++++++++ .../assistant/codecompanion/config.nix | 22 ++++++++++++++++++- 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 5e09bb35..147cc680 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -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] diff --git a/modules/plugins/assistant/codecompanion/codecompanion-nvim.nix b/modules/plugins/assistant/codecompanion/codecompanion-nvim.nix index 9ebe30c0..98684e19 100644 --- a/modules/plugins/assistant/codecompanion/codecompanion-nvim.nix +++ b/modules/plugins/assistant/codecompanion/codecompanion-nvim.nix @@ -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" "aa"; + chat = { + open = mkMappingOption "[CodeCompanion] Open chat" "ao"; + toggle = mkMappingOption "[CodeCompanion] Toggle chat" "ac"; + addToChatBuffer = mkMappingOption "[CodeCompanion] Add selection to chat" "ab"; + }; + actions.open = mkMappingOption "[CodeCompanion] Open actions" ""; + command.open = mkMappingOption "[CodeCompanion] Open cli command generation prompt" "ag"; + }; }; }; } diff --git a/modules/plugins/assistant/codecompanion/config.nix b/modules/plugins/assistant/codecompanion/config.nix index 6b427d28..72edd6c8 100644 --- a/modules/plugins/assistant/codecompanion/config.nix +++ b/modules/plugins/assistant/codecompanion/config.nix @@ -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 "CodeCompanion") + (mkSetBinding mappings.chat.open "CodeCompanionChat") + (mkSetBinding mappings.chat.toggle "CodeCompanionChat Toggle") + (mkSetBinding mappings.actions.open "CodeCompanionActions") + (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 "CodeCompanionChat Add") + maps + ]; + normal = maps; + }; + treesitter.enable = true; }; };