companion config

This commit is contained in:
m3tam3re 2024-10-14 13:39:31 +02:00
parent 3f8c7459a1
commit c5f91f63f1
2 changed files with 245 additions and 218 deletions

View File

@ -282,22 +282,22 @@ require('lazy').setup({
require('which-key').setup() require('which-key').setup()
-- Document existing key chains -- Document existing key chains
require('which-key').register require('which-key').add
{ {
{ "<leader>c", group = "[C]ode" }, { "", group = "[C]ode" },
{ "<leader>c_", hidden = true }, { "", group = "[S]earch" },
{ "<leader>d", group = "[D]ocument" }, { "", desc = "<leader>r_", hidden = true },
{ "<leader>d_", hidden = true }, { "", desc = "<leader>s_", hidden = true },
{ "<leader>l", group = "[L]LM assistants" }, { "", desc = "<leader>t_", hidden = true },
{ "<leader>l_", hidden = true }, { "", group = "[T]oggle" },
{ "<leader>r", group = "[R]ename" }, { "", group = "[W]orkspace" },
{ "<leader>r_", hidden = true }, { "", group = "[R]ename" },
{ "<leader>s", group = "[S]earch" }, { "", group = "[L]LM assistants" },
{ "<leader>s_", hidden = true }, { "", desc = "<leader>c_", hidden = true },
{ "<leader>t", group = "[T]oggle" }, { "", desc = "<leader>l_", hidden = true },
{ "<leader>t_", hidden = true }, { "", group = "[D]ocument" },
{ "<leader>w", group = "[W]orkspace" }, { "", desc = "<leader>d_", hidden = true },
{ "<leader>w_", hidden = true }, { "", desc = "<leader>w_", hidden = true },
} }
end, end,
}, },
@ -852,19 +852,44 @@ require('lazy').setup({
-- setting the keybinding for LazyGit with 'keys' is recommended in -- setting the keybinding for LazyGit with 'keys' is recommended in
-- order to load the plugin when the command is run for the first time -- order to load the plugin when the command is run for the first time
keys = { keys = {
vim.keymap.set('n', '<leader>lg', '<cmd>LazyGit<cr>', { desc = 'LazyGit' }) vim.keymap.set('n', '<leader>g', '<cmd>LazyGit<cr>', { desc = 'LazyGit' })
} }
}, {
"olimorris/codecompanion.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
"hrsh7th/nvim-cmp", -- Optional: For using slash commands and variables in the chat buffer
"nvim-telescope/telescope.nvim", -- Optional: For using slash commands
{ "stevearc/dressing.nvim", opts = {} }, -- Optional: Improves `vim.ui.select`
}, },
config = true {
}, "olimorris/codecompanion.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
"hrsh7th/nvim-cmp", -- Optional: For using slash commands and variables in the chat buffer
"nvim-telescope/telescope.nvim", -- Optional: For using slash commands
{ "stevearc/dressing.nvim", opts = {} }, -- Optional: Improves `vim.ui.select`
},
config = function()
vim.keymap.set('n', '<leader>lc', vim.cmd.CodeCompanion, { desc = '[C]ode Companion' })
vim.keymap.set('n', '<leader>lca', '<cmd>CodeCompanionActions<CR>', { desc = 'ChatGPT [D]ocstring' })
vim.keymap.set('v', '<leader>lca', '<cmd>CodeCompanionActions<CR>', { desc = 'ChatGPT [D]ocstring' })
vim.keymap.set('n', '<leader>lct', '<cmd><cmd>CodeCompanionChat Toggle<CR>',
{ desc = 'ChatGPT [T]oggle Companion Chat' })
vim.keymap.set('v', '<leader>lct', '<cmd><cmd>CodeCompanionChat Toggle<CR>',
{ desc = 'ChatGPT [T]oggle Companion Chat' })
vim.keymap.set('n', '<leader>lca', '<cmd>CodeCompanionChat Add<CR>', { desc = '[A]dd Companion Chat' })
require("codecompanion").setup({
strategies = {
chat = {
adapter = "anthropic",
},
inline = {
adapter = "anthropic",
},
agent = {
adapter = "anthropic",
},
},
})
end,
},
{ {
'folke/noice.nvim', 'folke/noice.nvim',
event = 'VeryLazy', event = 'VeryLazy',
@ -905,7 +930,7 @@ require('lazy').setup({
}, },
}, },
require('which-key').register { require('which-key').add {
{ "", desc = "<leader>n_", hidden = true }, { "", desc = "<leader>n_", hidden = true },
{ "", group = "[N]oice" }, { "", group = "[N]oice" },
}, },

View File

@ -1,196 +1,198 @@
-- File: lua/custom/plugins/chatgpt.lua -- File: lua/custom/plugins/chatgpt.lua
return { return {
'jackMort/ChatGPT.nvim', 'jackMort/ChatGPT.nvim',
event = 'VeryLazy', event = 'VeryLazy',
config = function() config = function()
vim.keymap.set('n', '<leader>lc', vim.cmd.ChatGPT, { desc = '[C]hatGPT' }) vim.keymap.set('n', '<leader>lg', vim.cmd.ChatGPT, { desc = 'Chat[G]PT' })
vim.keymap.set('n', '<leader>lca', vim.cmd.ChatGPTActAs, { desc = 'ChatGPT [A]ct As' }) vim.keymap.set('n', '<leader>lga', vim.cmd.ChatGPTActAs, { desc = 'ChatGPT [A]ct As' })
vim.keymap.set('n', '<leader>lcc', vim.cmd.ChatGPTCompleteCode, { desc = 'ChatGPT [C]omplete Code' }) vim.keymap.set('n', '<leader>lgc', vim.cmd.ChatGPTCompleteCode, { desc = 'ChatGPT [C]omplete Code' })
vim.keymap.set('n', '<leader>lce', vim.cmd.ChatGPTEditWithInstructions, { desc = 'ChatGPT [E]dit With Instructions' }) vim.keymap.set('n', '<leader>lge', vim.cmd.ChatGPTEditWithInstructions,
vim.keymap.set('v', '<leader>lce', vim.cmd.ChatGPTEditWithInstructions, { desc = 'ChatGPT [E]dit With Instructions' }) { desc = 'ChatGPT [E]dit With Instructions' })
vim.keymap.set('n', '<leader>lcd', '<cmd>ChatGPTRun docstring<CR>', { desc = 'ChatGPT [D]ocstring' }) vim.keymap.set('v', '<leader>lge', vim.cmd.ChatGPTEditWithInstructions,
vim.keymap.set('n', '<leader>lco', '<cmd>ChatGPTRun optimize_code<CR>', { desc = 'ChatGPT [o]ptimize code' }) { desc = 'ChatGPT [E]dit With Instructions' })
vim.keymap.set('n', '<leader>lce', '<cmd>ChatGPTRun explain_code<CR>', { desc = 'ChatGPT [e]xplain code' }) vim.keymap.set('n', '<leader>lgd', '<cmd>ChatGPTRun docstring<CR>', { desc = 'ChatGPT [D]ocstring' })
vim.keymap.set('n', '<leader>lcs', '<cmd>ChatGPTRun summarize<CR>', { desc = 'ChatGPT [s]ummarize' }) vim.keymap.set('n', '<leader>lgo', '<cmd>ChatGPTRun optimize_code<CR>', { desc = 'ChatGPT [o]ptimize code' })
vim.keymap.set('n', '<leader>lct', '<cmd>ChatGPTRun translate<CR>', { desc = 'ChatGPT [t]ranslate' }) vim.keymap.set('n', '<leader>lge', '<cmd>ChatGPTRun explain_code<CR>', { desc = 'ChatGPT [e]xplain code' })
require('chatgpt').setup { vim.keymap.set('n', '<leader>lgs', '<cmd>ChatGPTRun summarize<CR>', { desc = 'ChatGPT [s]ummarize' })
yank_register = '+', vim.keymap.set('n', '<leader>lgt', '<cmd>ChatGPTRun translate<CR>', { desc = 'ChatGPT [t]ranslate' })
edit_with_instructions = { require('chatgpt').setup {
diff = false, yank_register = '+',
keymaps = { edit_with_instructions = {
close = '<C-c>', diff = false,
accept = '<C-y>', keymaps = {
toggle_diff = '<C-d>', close = '<C-c>',
toggle_settings = '<C-o>', accept = '<C-y>',
toggle_help = '<C-h>', toggle_diff = '<C-d>',
cycle_windows = '<Tab>', toggle_settings = '<C-o>',
use_output_as_input = '<C-i>', toggle_help = '<C-h>',
}, cycle_windows = '<Tab>',
}, use_output_as_input = '<C-i>',
chat = { },
welcome_message = 'Welcome Human!',
loading_text = 'Loading, please wait ...',
question_sign = '', -- 🙂
answer_sign = '', -- 🤖
border_left_sign = '',
border_right_sign = '',
max_line_length = 120,
sessions_window = {
active_sign = '',
inactive_sign = '',
current_line_sign = '',
border = {
style = 'rounded',
text = {
top = ' Sessions ',
}, },
}, chat = {
win_options = { welcome_message = 'Welcome Human!',
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder', loading_text = 'Loading, please wait ...',
}, question_sign = '', -- 🙂
}, answer_sign = '', -- 🤖
keymaps = { border_left_sign = '',
close = '<C-c>', border_right_sign = '',
yank_last = '<C-y>', max_line_length = 120,
yank_last_code = '<C-k>', sessions_window = {
scroll_up = '<C-u>', active_sign = '',
scroll_down = '<C-d>', inactive_sign = '',
new_session = '<C-n>', current_line_sign = '',
cycle_windows = '<Tab>', border = {
cycle_modes = '<C-f>', style = 'rounded',
next_message = '<C-j>', text = {
prev_message = '<C-k>', top = ' Sessions ',
select_session = '<Space>', },
rename_session = 'r', },
delete_session = 'd', win_options = {
draft_message = '<C-r>', winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
edit_message = 'e', },
delete_message = 'd', },
toggle_settings = '<C-o>', keymaps = {
toggle_sessions = '<C-p>', close = '<C-c>',
toggle_help = '<C-h>', yank_last = '<C-y>',
toggle_message_role = '<C-r>', yank_last_code = '<C-k>',
toggle_system_role_open = '<C-s>', scroll_up = '<C-u>',
stop_generating = '<C-x>', scroll_down = '<C-d>',
}, new_session = '<C-n>',
}, cycle_windows = '<Tab>',
popup_layout = { cycle_modes = '<C-f>',
default = 'center', next_message = '<C-j>',
center = { prev_message = '<C-k>',
width = '80%', select_session = '<Space>',
height = '80%', rename_session = 'r',
}, delete_session = 'd',
right = { draft_message = '<C-r>',
width = '30%', edit_message = 'e',
width_settings_open = '50%', delete_message = 'd',
}, toggle_settings = '<C-o>',
}, toggle_sessions = '<C-p>',
popup_window = { toggle_help = '<C-h>',
border = { toggle_message_role = '<C-r>',
highlight = 'FloatBorder', toggle_system_role_open = '<C-s>',
style = 'rounded', stop_generating = '<C-x>',
text = { },
top = ' ChatGPT ', },
}, popup_layout = {
}, default = 'center',
win_options = { center = {
wrap = true, width = '80%',
linebreak = true, height = '80%',
foldcolumn = '1', },
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder', right = {
}, width = '30%',
buf_options = { width_settings_open = '50%',
filetype = 'markdown', },
}, },
}, popup_window = {
system_window = { border = {
border = { highlight = 'FloatBorder',
highlight = 'FloatBorder', style = 'rounded',
style = 'rounded', text = {
text = { top = ' ChatGPT ',
top = ' SYSTEM ', },
}, },
}, win_options = {
win_options = { wrap = true,
wrap = true, linebreak = true,
linebreak = true, foldcolumn = '1',
foldcolumn = '2', winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder', },
}, buf_options = {
}, filetype = 'markdown',
popup_input = { },
prompt = '', },
border = { system_window = {
highlight = 'FloatBorder', border = {
style = 'rounded', highlight = 'FloatBorder',
text = { style = 'rounded',
top_align = 'center', text = {
top = ' Prompt ', top = ' SYSTEM ',
}, },
}, },
win_options = { win_options = {
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder', wrap = true,
}, linebreak = true,
submit = '<C-Enter>', foldcolumn = '2',
submit_n = '<Enter>', winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
max_visible_lines = 20, },
}, },
settings_window = { popup_input = {
setting_sign = '', prompt = '',
border = { border = {
style = 'rounded', highlight = 'FloatBorder',
text = { style = 'rounded',
top = ' Settings ', text = {
}, top_align = 'center',
}, top = ' Prompt ',
win_options = { },
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder', },
}, win_options = {
}, winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
help_window = { },
setting_sign = '', submit = '<C-Enter>',
border = { submit_n = '<Enter>',
style = 'rounded', max_visible_lines = 20,
text = { },
top = ' Help ', settings_window = {
}, setting_sign = '',
}, border = {
win_options = { style = 'rounded',
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder', text = {
}, top = ' Settings ',
}, },
openai_params = { },
model = 'gpt-3.5-turbo-0125', win_options = {
frequency_penalty = 0, winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
presence_penalty = 0, },
max_tokens = 1000, },
temperature = 0, help_window = {
top_p = 1, setting_sign = '',
n = 1, border = {
}, style = 'rounded',
openai_edit_params = { text = {
model = 'gpt-3.5-turbo-0125', top = ' Help ',
frequency_penalty = 0, },
presence_penalty = 0, },
temperature = 0, win_options = {
top_p = 1, winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
n = 1, },
}, },
use_openai_functions_for_edits = false, openai_params = {
actions_paths = {}, model = 'gpt-3.5-turbo-0125',
show_quickfixes_cmd = 'Trouble quickfix', frequency_penalty = 0,
predefined_chat_gpt_prompts = 'https://raw.githubusercontent.com/f/awesome-chatgpt-prompts/main/prompts.csv', presence_penalty = 0,
highlights = { max_tokens = 1000,
help_key = '@symbol', temperature = 0,
help_description = '@comment', top_p = 1,
}, n = 1,
} },
end, openai_edit_params = {
dependencies = { model = 'gpt-3.5-turbo-0125',
'MunifTanjim/nui.nvim', frequency_penalty = 0,
'nvim-lua/plenary.nvim', presence_penalty = 0,
'folke/trouble.nvim', temperature = 0,
'nvim-telescope/telescope.nvim', top_p = 1,
}, n = 1,
},
use_openai_functions_for_edits = false,
actions_paths = {},
show_quickfixes_cmd = 'Trouble quickfix',
predefined_chat_gpt_prompts = 'https://raw.githubusercontent.com/f/awesome-chatgpt-prompts/main/prompts.csv',
highlights = {
help_key = '@symbol',
help_description = '@comment',
},
}
end,
dependencies = {
'MunifTanjim/nui.nvim',
'nvim-lua/plenary.nvim',
'folke/trouble.nvim',
'nvim-telescope/telescope.nvim',
},
} }