nvim/lua/plugins/ai.lua

43 lines
1.8 KiB
Lua

return {
{
'NickvanDyke/opencode.nvim',
dependencies = { 'folke/snacks.nvim', },
---@type opencode.Config
opts = {
port = 48291,
},
-- stylua: ignore
keys = {
{ '<leader>ot', function() require('opencode').toggle({ port = 48291 }) end, desc = 'Toggle embedded opencode', },
{ '<leader>oa', function() require('opencode').ask() end, desc = 'Ask opencode', mode = 'n', },
{ '<leader>oa', function() require('opencode').ask('@selection: ') end, desc = 'Ask opencode about selection', mode = 'v', },
{ '<leader>op', function() require('opencode').select_prompt() end, desc = 'Select prompt', mode = { 'n', 'v', }, },
{ '<leader>on', function() require('opencode').command('session_new') end, desc = 'New session', },
{ '<leader>oy', function() require('opencode').command('messages_copy') end, desc = 'Copy last message', },
{ '<S-C-u>', function() require('opencode').command('messages_half_page_up') end, desc = 'Scroll messages up', },
{ '<S-C-d>', function() require('opencode').command('messages_half_page_down') end, desc = 'Scroll messages down', },
},
},
{
'milanglacier/minuet-ai.nvim',
dependencies = { 'hrsh7th/nvim-cmp', 'nvim-lua/plenary.nvim' },
config = function()
require('minuet').setup {
-- Your configuration options here
provider_options = {
codestral = {
model = 'codestral-latest',
end_point = 'https://codestral.mistral.ai/v1/fim/completions',
api_key = 'CODESTRAL_API_KEY',
stream = true,
optional = {
stop = { '\n\n' }, -- the identifier to stop the completion generation
max_tokens = 256,
},
},
}
}
end,
},
}