2025-05-28 18:33:04 +02:00

92 lines
2.4 KiB
Lua

-- ~/.config/nvim/lua/plugins/neoai.lua
return {
"Bryley/neoai.nvim",
dependencies = {
"MunifTanjim/nui.nvim",
},
lazy = false, -- Fuerza la carga del plugin al iniciar Neovim
config = function()
require("neoai").setup({
ui = {
output_popup_text = "NeoAI",
input_popup_text = "Prompt",
width = 30, -- Porcentaje, ej. 30%
output_popup_height = 80, -- Porcentaje, ej. 80%
submit = "<Enter>", -- Tecla para enviar el prompt
},
models = {
{
name = "openai",
model = "gpt-4", -- Cambiado a GPT-4
params = nil,
},
},
register_output = {
["g"] = function(output)
return output
end,
["c"] = require("neoai.utils").extract_code_snippets,
},
inject = {
cutoff_width = 75,
},
prompts = {
context_prompt = function(context)
return "Hey, I'd like to provide some context for future "
.. "messages. Here is the code/text that I want to refer "
.. "to in our upcoming conversations:\n\n"
.. context
end,
},
mappings = {
["select_up"] = "<C-k>",
["select_down"] = "<C-j>",
},
open_ai = {
api_key = {
env = "OPENAI_API_KEY",
value = nil,
-- Puedes descomentar y personalizar la función `get` si deseas obtener la clave API de otra fuente
-- get = function()
-- local key = vim.fn.system("pass show openai/mytestkey")
-- key = string.gsub(key, "\n", "")
-- return key
-- end,
},
},
shortcuts = {
{
name = "textify",
key = "<leader>as",
desc = "Fix text with AI",
use_context = true,
prompt = [[
Please rewrite the text to make it more readable, clear,
concise, and fix any grammatical, punctuation, or spelling
errors
]],
modes = { "v" },
strip_function = nil,
},
{
name = "gitcommit",
key = "<leader>ag",
desc = "Generate git commit message",
use_context = false,
prompt = function()
return [[
Using the following git diff generate a concise and
clear git commit message, with a short title summary
that is 75 characters or less:
]] .. vim.fn.system("git diff --cached")
end,
modes = { "n" },
strip_function = nil,
},
},
})
end,
}