Use mkPluginSetupOption for plugin config

This commit is contained in:
Kalle Jepsen 2024-03-24 14:22:03 +01:00
commit 77436fd51c
2 changed files with 10 additions and 5 deletions

View file

@ -1,9 +1,14 @@
{lib, ...}: let {
inherit (lib.options) mkEnableOption; lib,
inherit (lib) mkMappingOption; ...
}: let
inherit (lib.options) mkEnableOption mkOption;
inherit (lib) mkMappingOption types;
inherit (lib.nvim.types) mkPluginSetupOption;
in { in {
options.vim.assistant.chatgpt = { options.vim.assistant.chatgpt = {
enable = mkEnableOption "ChatGPT AI assistant. Requires the environment variable OPENAI_API_KEY to be set"; enable = mkEnableOption "ChatGPT AI assistant. Requires the environment variable OPENAI_API_KEY to be set";
setupOpts = mkPluginSetupOption "chatgpt" {};
mappings = { mappings = {
chatGpt = mkMappingOption "ChatGPT" "<leader>ac"; chatGpt = mkMappingOption "ChatGPT" "<leader>ac";
editWithInstructions = mkMappingOption "[ChatGPT] Edit with instructions" "<leader>ae"; editWithInstructions = mkMappingOption "[ChatGPT] Edit with instructions" "<leader>ae";

View file

@ -6,6 +6,7 @@
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.dag) entryAnywhere; inherit (lib.nvim.dag) entryAnywhere;
inherit (lib) addDescriptionsToMappings mkSetBinding; inherit (lib) addDescriptionsToMappings mkSetBinding;
inherit (lib.nvim.lua) toLuaObject;
cfg = config.vim.assistant.chatgpt; cfg = config.vim.assistant.chatgpt;
@ -33,8 +34,7 @@ in {
"chatgpt" "chatgpt"
]; ];
luaConfigRC.chagpt = entryAnywhere '' luaConfigRC.chagpt = entryAnywhere ''
require("chatgpt").setup({ require("chatgpt").setup(${toLuaObject cfg.setupOpts})
})
''; '';
maps.normal = mkMerge [ maps.normal = mkMerge [
(mkSetBinding mappings.chatGpt "<cmd>ChatGPT<CR>") (mkSetBinding mappings.chatGpt "<cmd>ChatGPT<CR>")