From 928fc1a16f02e16ff9b81300da64899143703a86 Mon Sep 17 00:00:00 2001 From: Heitor Augusto Date: Sun, 18 May 2025 15:26:09 -0300 Subject: [PATCH] plugins/copilot-chat: `helpers` -> `lib.nixvim` --- plugins/by-name/copilot-chat/default.nix | 95 +++++++++++------------- 1 file changed, 44 insertions(+), 51 deletions(-) diff --git a/plugins/by-name/copilot-chat/default.nix b/plugins/by-name/copilot-chat/default.nix index 2df35ea5..999d294c 100644 --- a/plugins/by-name/copilot-chat/default.nix +++ b/plugins/by-name/copilot-chat/default.nix @@ -1,10 +1,7 @@ -{ - lib, - helpers, - ... -}: +{ lib, ... }: let inherit (lib) types; + inherit (lib.nixvim) defaultNullOpts; in lib.nixvim.plugins.mkNeovimPlugin { name = "copilot-chat"; @@ -15,72 +12,72 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ lib.maintainers.GaetanLepage ]; settingsOptions = { - debug = helpers.defaultNullOpts.mkBool false '' + debug = defaultNullOpts.mkBool false '' Enable debug logging. ''; - proxy = helpers.defaultNullOpts.mkStr null '' + proxy = defaultNullOpts.mkStr null '' Custom proxy to use, formatted as `[protocol://]host[:port]`. ''; - allow_insecure = helpers.defaultNullOpts.mkBool false '' + allow_insecure = defaultNullOpts.mkBool false '' Allow insecure server connections. ''; - system_prompt = helpers.defaultNullOpts.mkLua "require('CopilotChat.prompts').COPILOT_INSTRUCTIONS" '' + system_prompt = defaultNullOpts.mkLua "require('CopilotChat.prompts').COPILOT_INSTRUCTIONS" '' System prompt to use. ''; - model = helpers.defaultNullOpts.mkStr "gpt-4" '' + model = defaultNullOpts.mkStr "gpt-4" '' GPT model to use, 'gpt-3.5-turbo' or 'gpt-4'. ''; - temperature = helpers.defaultNullOpts.mkProportion 0.1 '' + temperature = defaultNullOpts.mkProportion 0.1 '' GPT temperature. ''; - question_header = helpers.defaultNullOpts.mkStr "## User " '' + question_header = defaultNullOpts.mkStr "## User " '' Header to use for user questions. ''; - answer_header = helpers.defaultNullOpts.mkStr "## Copilot " '' + answer_header = defaultNullOpts.mkStr "## Copilot " '' Header to use for AI answers. ''; - error_header = helpers.defaultNullOpts.mkStr "## Error " '' + error_header = defaultNullOpts.mkStr "## Error " '' Header to use for errors. ''; - separator = helpers.defaultNullOpts.mkStr "───" '' + separator = defaultNullOpts.mkStr "───" '' Separator to use in chat. ''; - show_folds = helpers.defaultNullOpts.mkBool true '' + show_folds = defaultNullOpts.mkBool true '' Shows folds for sections in chat. ''; - show_help = helpers.defaultNullOpts.mkBool true '' + show_help = defaultNullOpts.mkBool true '' Shows help message as virtual lines when waiting for user input. ''; - auto_follow_cursor = helpers.defaultNullOpts.mkBool true '' + auto_follow_cursor = defaultNullOpts.mkBool true '' Auto-follow cursor in chat. ''; - auto_insert_mode = helpers.defaultNullOpts.mkBool false '' + auto_insert_mode = defaultNullOpts.mkBool false '' Automatically enter insert mode when opening window and if auto follow cursor is enabled on new prompt. ''; - clear_chat_on_new_prompt = helpers.defaultNullOpts.mkBool false '' + clear_chat_on_new_prompt = defaultNullOpts.mkBool false '' Clears chat on every new prompt. ''; - highlight_selection = helpers.defaultNullOpts.mkBool true '' + highlight_selection = defaultNullOpts.mkBool true '' Highlight selection. ''; context = - helpers.defaultNullOpts.mkEnum + defaultNullOpts.mkEnum [ "buffers" "buffer" @@ -90,18 +87,18 @@ lib.nixvim.plugins.mkNeovimPlugin { Default context to use, `"buffers"`, `"buffer"` or `null` (can be specified manually in prompt via @). ''; - history_path = helpers.defaultNullOpts.mkStr (helpers.mkRaw "vim.fn.stdpath('data') .. '/copilotchat_history'") '' + history_path = defaultNullOpts.mkStr (lib.nixvim.mkRaw "vim.fn.stdpath('data') .. '/copilotchat_history'") '' Default path to stored history. ''; - callback = helpers.defaultNullOpts.mkLuaFn null '' + callback = defaultNullOpts.mkLuaFn null '' Callback to use when ask response is received. `fun(response: string, source: CopilotChat.config.source)` ''; selection = - helpers.defaultNullOpts.mkLuaFn + defaultNullOpts.mkLuaFn '' function(source) local select = require('CopilotChat.select') @@ -118,22 +115,22 @@ lib.nixvim.plugins.mkNeovimPlugin { promptType = types.submodule { freeformType = with types; attrsOf anything; options = { - prompt = helpers.mkNullOrStr "Prompt text."; + prompt = lib.nixvim.mkNullOrStr "Prompt text."; - description = helpers.mkNullOrStr "Description for this prompt."; + description = lib.nixvim.mkNullOrStr "Description for this prompt."; - kind = helpers.mkNullOrStr "Kind of this prompt."; + kind = lib.nixvim.mkNullOrStr "Kind of this prompt."; - mapping = helpers.mkNullOrStr "A key to bind to this prompt."; + mapping = lib.nixvim.mkNullOrStr "A key to bind to this prompt."; - system_prompt = helpers.mkNullOrStr "System prompt to use."; + system_prompt = lib.nixvim.mkNullOrStr "System prompt to use."; - callback = helpers.mkNullOrLuaFn '' + callback = lib.nixvim.mkNullOrLuaFn '' Callback to trigger when this prompt is executed. `fun(response: string, source: CopilotChat.config.source)` ''; - selection = helpers.mkNullOrLuaFn '' + selection = lib.nixvim.mkNullOrLuaFn '' Selection for this prompt. `fun(source: CopilotChat.config.source):CopilotChat.config.selection` ''; @@ -172,13 +169,13 @@ lib.nixvim.plugins.mkNeovimPlugin { }; }; in - helpers.defaultNullOpts.mkAttrsOf (with types; either str promptType) default '' + defaultNullOpts.mkAttrsOf (with types; either str promptType) default '' Default prompts. ''; window = { layout = - helpers.defaultNullOpts.mkEnumFirstDefault + defaultNullOpts.mkEnumFirstDefault [ "vertical" "horizontal" @@ -190,23 +187,19 @@ lib.nixvim.plugins.mkNeovimPlugin { ''; width = - helpers.defaultNullOpts.mkNullableWithRaw - (with types; either (numbers.between 0.0 1.0) ints.positive) - 0.5 + defaultNullOpts.mkNullableWithRaw (with types; either (numbers.between 0.0 1.0) ints.positive) 0.5 '' Fractional width of parent, or absolute width in columns when > 1. ''; height = - helpers.defaultNullOpts.mkNullableWithRaw - (with types; either (numbers.between 0.0 1.0) ints.positive) - 0.5 + defaultNullOpts.mkNullableWithRaw (with types; either (numbers.between 0.0 1.0) ints.positive) 0.5 '' Fractional height of parent, or absolute height in rows when > 1. ''; relative = - helpers.defaultNullOpts.mkEnumFirstDefault + defaultNullOpts.mkEnumFirstDefault [ "editor" "win" @@ -219,7 +212,7 @@ lib.nixvim.plugins.mkNeovimPlugin { ''; border = - helpers.defaultNullOpts.mkEnum + defaultNullOpts.mkEnum [ "none" "single" @@ -234,39 +227,39 @@ lib.nixvim.plugins.mkNeovimPlugin { (Only for floating windows.) ''; - row = helpers.defaultNullOpts.mkUnsignedInt null '' + row = defaultNullOpts.mkUnsignedInt null '' Row position of the window, default is centered. (Only for floating windows.) ''; - col = helpers.defaultNullOpts.mkUnsignedInt null '' + col = defaultNullOpts.mkUnsignedInt null '' Column position of the window, default is centered. (Only for floating windows.) ''; - title = helpers.defaultNullOpts.mkStr "Copilot Chat" '' + title = defaultNullOpts.mkStr "Copilot Chat" '' Title of chat window. ''; - footer = helpers.defaultNullOpts.mkStr null '' + footer = defaultNullOpts.mkStr null '' Footer of chat window. ''; - zindex = helpers.defaultNullOpts.mkUnsignedInt 1 '' + zindex = defaultNullOpts.mkUnsignedInt 1 '' Determines if window is on top or below other floating windows. ''; }; mappings = - helpers.defaultNullOpts.mkAttrsOf + defaultNullOpts.mkAttrsOf (types.submodule { freeformType = with types; attrsOf anything; options = { - normal = helpers.mkNullOrStr "Key for normal mode."; + normal = lib.nixvim.mkNullOrStr "Key for normal mode."; - insert = helpers.mkNullOrStr "Key for insert mode."; + insert = lib.nixvim.mkNullOrStr "Key for insert mode."; - detail = helpers.mkNullOrStr "A description for this binding."; + detail = lib.nixvim.mkNullOrStr "A description for this binding."; }; }) {