---@class CopilotChat.integrations.actions ---@field prompt string: The prompt to display ---@field actions table: A table with the actions to pick from local chat = require('CopilotChat') local M = {} --- User prompt actions ---@param config CopilotChat.config.shared?: The chat configuration ---@return CopilotChat.integrations.actions?: The prompt actions ---@deprecated Use |CopilotChat.select_prompt| instead function M.prompt_actions(config) local actions = {} for name, prompt in pairs(chat.prompts()) do if prompt.prompt then actions[name] = vim.tbl_extend('keep', prompt, config or {}) end end return { prompt = 'Copilot Chat Prompt Actions', actions = actions, } end --- Pick an action from a list of actions ---@param pick_actions CopilotChat.integrations.actions?: A table with the actions to pick from ---@param opts table?: vim.ui.select options ---@deprecated Use |CopilotChat.select_prompt| instead function M.pick(pick_actions, opts) if not pick_actions or not pick_actions.actions or vim.tbl_isempty(pick_actions.actions) then return end opts = vim.tbl_extend('force', { prompt = pick_actions.prompt .. '> ', }, opts or {}) vim.ui.select(vim.tbl_keys(pick_actions.actions), opts, function(selected) if not selected then return end vim.defer_fn(function() chat.ask(pick_actions.actions[selected].prompt, pick_actions.actions[selected]) end, 100) end) end return M