companion config
This commit is contained in:
parent
3f8c7459a1
commit
c5f91f63f1
@ -282,22 +282,22 @@ require('lazy').setup({
|
||||
require('which-key').setup()
|
||||
|
||||
-- Document existing key chains
|
||||
require('which-key').register
|
||||
require('which-key').add
|
||||
{
|
||||
{ "<leader>c", group = "[C]ode" },
|
||||
{ "<leader>c_", hidden = true },
|
||||
{ "<leader>d", group = "[D]ocument" },
|
||||
{ "<leader>d_", hidden = true },
|
||||
{ "<leader>l", group = "[L]LM assistants" },
|
||||
{ "<leader>l_", hidden = true },
|
||||
{ "<leader>r", group = "[R]ename" },
|
||||
{ "<leader>r_", hidden = true },
|
||||
{ "<leader>s", group = "[S]earch" },
|
||||
{ "<leader>s_", hidden = true },
|
||||
{ "<leader>t", group = "[T]oggle" },
|
||||
{ "<leader>t_", hidden = true },
|
||||
{ "<leader>w", group = "[W]orkspace" },
|
||||
{ "<leader>w_", hidden = true },
|
||||
{ "", group = "[C]ode" },
|
||||
{ "", group = "[S]earch" },
|
||||
{ "", desc = "<leader>r_", hidden = true },
|
||||
{ "", desc = "<leader>s_", hidden = true },
|
||||
{ "", desc = "<leader>t_", hidden = true },
|
||||
{ "", group = "[T]oggle" },
|
||||
{ "", group = "[W]orkspace" },
|
||||
{ "", group = "[R]ename" },
|
||||
{ "", group = "[L]LM assistants" },
|
||||
{ "", desc = "<leader>c_", hidden = true },
|
||||
{ "", desc = "<leader>l_", hidden = true },
|
||||
{ "", group = "[D]ocument" },
|
||||
{ "", desc = "<leader>d_", hidden = true },
|
||||
{ "", desc = "<leader>w_", hidden = true },
|
||||
}
|
||||
end,
|
||||
},
|
||||
@ -852,19 +852,44 @@ require('lazy').setup({
|
||||
-- setting the keybinding for LazyGit with 'keys' is recommended in
|
||||
-- order to load the plugin when the command is run for the first time
|
||||
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',
|
||||
event = 'VeryLazy',
|
||||
@ -905,7 +930,7 @@ require('lazy').setup({
|
||||
},
|
||||
},
|
||||
|
||||
require('which-key').register {
|
||||
require('which-key').add {
|
||||
{ "", desc = "<leader>n_", hidden = true },
|
||||
{ "", group = "[N]oice" },
|
||||
},
|
||||
|
@ -1,196 +1,198 @@
|
||||
-- File: lua/custom/plugins/chatgpt.lua
|
||||
|
||||
return {
|
||||
'jackMort/ChatGPT.nvim',
|
||||
event = 'VeryLazy',
|
||||
config = function()
|
||||
vim.keymap.set('n', '<leader>lc', vim.cmd.ChatGPT, { desc = '[C]hatGPT' })
|
||||
vim.keymap.set('n', '<leader>lca', 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>lce', vim.cmd.ChatGPTEditWithInstructions, { desc = 'ChatGPT [E]dit With Instructions' })
|
||||
vim.keymap.set('v', '<leader>lce', vim.cmd.ChatGPTEditWithInstructions, { desc = 'ChatGPT [E]dit With Instructions' })
|
||||
vim.keymap.set('n', '<leader>lcd', '<cmd>ChatGPTRun docstring<CR>', { desc = 'ChatGPT [D]ocstring' })
|
||||
vim.keymap.set('n', '<leader>lco', '<cmd>ChatGPTRun optimize_code<CR>', { desc = 'ChatGPT [o]ptimize code' })
|
||||
vim.keymap.set('n', '<leader>lce', '<cmd>ChatGPTRun explain_code<CR>', { desc = 'ChatGPT [e]xplain code' })
|
||||
vim.keymap.set('n', '<leader>lcs', '<cmd>ChatGPTRun summarize<CR>', { desc = 'ChatGPT [s]ummarize' })
|
||||
vim.keymap.set('n', '<leader>lct', '<cmd>ChatGPTRun translate<CR>', { desc = 'ChatGPT [t]ranslate' })
|
||||
require('chatgpt').setup {
|
||||
yank_register = '+',
|
||||
edit_with_instructions = {
|
||||
diff = false,
|
||||
keymaps = {
|
||||
close = '<C-c>',
|
||||
accept = '<C-y>',
|
||||
toggle_diff = '<C-d>',
|
||||
toggle_settings = '<C-o>',
|
||||
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 ',
|
||||
'jackMort/ChatGPT.nvim',
|
||||
event = 'VeryLazy',
|
||||
config = function()
|
||||
vim.keymap.set('n', '<leader>lg', vim.cmd.ChatGPT, { desc = 'Chat[G]PT' })
|
||||
vim.keymap.set('n', '<leader>lga', vim.cmd.ChatGPTActAs, { desc = 'ChatGPT [A]ct As' })
|
||||
vim.keymap.set('n', '<leader>lgc', vim.cmd.ChatGPTCompleteCode, { desc = 'ChatGPT [C]omplete Code' })
|
||||
vim.keymap.set('n', '<leader>lge', vim.cmd.ChatGPTEditWithInstructions,
|
||||
{ desc = 'ChatGPT [E]dit With Instructions' })
|
||||
vim.keymap.set('v', '<leader>lge', vim.cmd.ChatGPTEditWithInstructions,
|
||||
{ desc = 'ChatGPT [E]dit With Instructions' })
|
||||
vim.keymap.set('n', '<leader>lgd', '<cmd>ChatGPTRun docstring<CR>', { desc = 'ChatGPT [D]ocstring' })
|
||||
vim.keymap.set('n', '<leader>lgo', '<cmd>ChatGPTRun optimize_code<CR>', { desc = 'ChatGPT [o]ptimize code' })
|
||||
vim.keymap.set('n', '<leader>lge', '<cmd>ChatGPTRun explain_code<CR>', { desc = 'ChatGPT [e]xplain code' })
|
||||
vim.keymap.set('n', '<leader>lgs', '<cmd>ChatGPTRun summarize<CR>', { desc = 'ChatGPT [s]ummarize' })
|
||||
vim.keymap.set('n', '<leader>lgt', '<cmd>ChatGPTRun translate<CR>', { desc = 'ChatGPT [t]ranslate' })
|
||||
require('chatgpt').setup {
|
||||
yank_register = '+',
|
||||
edit_with_instructions = {
|
||||
diff = false,
|
||||
keymaps = {
|
||||
close = '<C-c>',
|
||||
accept = '<C-y>',
|
||||
toggle_diff = '<C-d>',
|
||||
toggle_settings = '<C-o>',
|
||||
toggle_help = '<C-h>',
|
||||
cycle_windows = '<Tab>',
|
||||
use_output_as_input = '<C-i>',
|
||||
},
|
||||
},
|
||||
},
|
||||
win_options = {
|
||||
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
|
||||
},
|
||||
},
|
||||
keymaps = {
|
||||
close = '<C-c>',
|
||||
yank_last = '<C-y>',
|
||||
yank_last_code = '<C-k>',
|
||||
scroll_up = '<C-u>',
|
||||
scroll_down = '<C-d>',
|
||||
new_session = '<C-n>',
|
||||
cycle_windows = '<Tab>',
|
||||
cycle_modes = '<C-f>',
|
||||
next_message = '<C-j>',
|
||||
prev_message = '<C-k>',
|
||||
select_session = '<Space>',
|
||||
rename_session = 'r',
|
||||
delete_session = 'd',
|
||||
draft_message = '<C-r>',
|
||||
edit_message = 'e',
|
||||
delete_message = 'd',
|
||||
toggle_settings = '<C-o>',
|
||||
toggle_sessions = '<C-p>',
|
||||
toggle_help = '<C-h>',
|
||||
toggle_message_role = '<C-r>',
|
||||
toggle_system_role_open = '<C-s>',
|
||||
stop_generating = '<C-x>',
|
||||
},
|
||||
},
|
||||
popup_layout = {
|
||||
default = 'center',
|
||||
center = {
|
||||
width = '80%',
|
||||
height = '80%',
|
||||
},
|
||||
right = {
|
||||
width = '30%',
|
||||
width_settings_open = '50%',
|
||||
},
|
||||
},
|
||||
popup_window = {
|
||||
border = {
|
||||
highlight = 'FloatBorder',
|
||||
style = 'rounded',
|
||||
text = {
|
||||
top = ' ChatGPT ',
|
||||
},
|
||||
},
|
||||
win_options = {
|
||||
wrap = true,
|
||||
linebreak = true,
|
||||
foldcolumn = '1',
|
||||
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
|
||||
},
|
||||
buf_options = {
|
||||
filetype = 'markdown',
|
||||
},
|
||||
},
|
||||
system_window = {
|
||||
border = {
|
||||
highlight = 'FloatBorder',
|
||||
style = 'rounded',
|
||||
text = {
|
||||
top = ' SYSTEM ',
|
||||
},
|
||||
},
|
||||
win_options = {
|
||||
wrap = true,
|
||||
linebreak = true,
|
||||
foldcolumn = '2',
|
||||
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
|
||||
},
|
||||
},
|
||||
popup_input = {
|
||||
prompt = ' ',
|
||||
border = {
|
||||
highlight = 'FloatBorder',
|
||||
style = 'rounded',
|
||||
text = {
|
||||
top_align = 'center',
|
||||
top = ' Prompt ',
|
||||
},
|
||||
},
|
||||
win_options = {
|
||||
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
|
||||
},
|
||||
submit = '<C-Enter>',
|
||||
submit_n = '<Enter>',
|
||||
max_visible_lines = 20,
|
||||
},
|
||||
settings_window = {
|
||||
setting_sign = ' ',
|
||||
border = {
|
||||
style = 'rounded',
|
||||
text = {
|
||||
top = ' Settings ',
|
||||
},
|
||||
},
|
||||
win_options = {
|
||||
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
|
||||
},
|
||||
},
|
||||
help_window = {
|
||||
setting_sign = ' ',
|
||||
border = {
|
||||
style = 'rounded',
|
||||
text = {
|
||||
top = ' Help ',
|
||||
},
|
||||
},
|
||||
win_options = {
|
||||
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
|
||||
},
|
||||
},
|
||||
openai_params = {
|
||||
model = 'gpt-3.5-turbo-0125',
|
||||
frequency_penalty = 0,
|
||||
presence_penalty = 0,
|
||||
max_tokens = 1000,
|
||||
temperature = 0,
|
||||
top_p = 1,
|
||||
n = 1,
|
||||
},
|
||||
openai_edit_params = {
|
||||
model = 'gpt-3.5-turbo-0125',
|
||||
frequency_penalty = 0,
|
||||
presence_penalty = 0,
|
||||
temperature = 0,
|
||||
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',
|
||||
},
|
||||
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 ',
|
||||
},
|
||||
},
|
||||
win_options = {
|
||||
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
|
||||
},
|
||||
},
|
||||
keymaps = {
|
||||
close = '<C-c>',
|
||||
yank_last = '<C-y>',
|
||||
yank_last_code = '<C-k>',
|
||||
scroll_up = '<C-u>',
|
||||
scroll_down = '<C-d>',
|
||||
new_session = '<C-n>',
|
||||
cycle_windows = '<Tab>',
|
||||
cycle_modes = '<C-f>',
|
||||
next_message = '<C-j>',
|
||||
prev_message = '<C-k>',
|
||||
select_session = '<Space>',
|
||||
rename_session = 'r',
|
||||
delete_session = 'd',
|
||||
draft_message = '<C-r>',
|
||||
edit_message = 'e',
|
||||
delete_message = 'd',
|
||||
toggle_settings = '<C-o>',
|
||||
toggle_sessions = '<C-p>',
|
||||
toggle_help = '<C-h>',
|
||||
toggle_message_role = '<C-r>',
|
||||
toggle_system_role_open = '<C-s>',
|
||||
stop_generating = '<C-x>',
|
||||
},
|
||||
},
|
||||
popup_layout = {
|
||||
default = 'center',
|
||||
center = {
|
||||
width = '80%',
|
||||
height = '80%',
|
||||
},
|
||||
right = {
|
||||
width = '30%',
|
||||
width_settings_open = '50%',
|
||||
},
|
||||
},
|
||||
popup_window = {
|
||||
border = {
|
||||
highlight = 'FloatBorder',
|
||||
style = 'rounded',
|
||||
text = {
|
||||
top = ' ChatGPT ',
|
||||
},
|
||||
},
|
||||
win_options = {
|
||||
wrap = true,
|
||||
linebreak = true,
|
||||
foldcolumn = '1',
|
||||
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
|
||||
},
|
||||
buf_options = {
|
||||
filetype = 'markdown',
|
||||
},
|
||||
},
|
||||
system_window = {
|
||||
border = {
|
||||
highlight = 'FloatBorder',
|
||||
style = 'rounded',
|
||||
text = {
|
||||
top = ' SYSTEM ',
|
||||
},
|
||||
},
|
||||
win_options = {
|
||||
wrap = true,
|
||||
linebreak = true,
|
||||
foldcolumn = '2',
|
||||
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
|
||||
},
|
||||
},
|
||||
popup_input = {
|
||||
prompt = ' ',
|
||||
border = {
|
||||
highlight = 'FloatBorder',
|
||||
style = 'rounded',
|
||||
text = {
|
||||
top_align = 'center',
|
||||
top = ' Prompt ',
|
||||
},
|
||||
},
|
||||
win_options = {
|
||||
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
|
||||
},
|
||||
submit = '<C-Enter>',
|
||||
submit_n = '<Enter>',
|
||||
max_visible_lines = 20,
|
||||
},
|
||||
settings_window = {
|
||||
setting_sign = ' ',
|
||||
border = {
|
||||
style = 'rounded',
|
||||
text = {
|
||||
top = ' Settings ',
|
||||
},
|
||||
},
|
||||
win_options = {
|
||||
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
|
||||
},
|
||||
},
|
||||
help_window = {
|
||||
setting_sign = ' ',
|
||||
border = {
|
||||
style = 'rounded',
|
||||
text = {
|
||||
top = ' Help ',
|
||||
},
|
||||
},
|
||||
win_options = {
|
||||
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder',
|
||||
},
|
||||
},
|
||||
openai_params = {
|
||||
model = 'gpt-3.5-turbo-0125',
|
||||
frequency_penalty = 0,
|
||||
presence_penalty = 0,
|
||||
max_tokens = 1000,
|
||||
temperature = 0,
|
||||
top_p = 1,
|
||||
n = 1,
|
||||
},
|
||||
openai_edit_params = {
|
||||
model = 'gpt-3.5-turbo-0125',
|
||||
frequency_penalty = 0,
|
||||
presence_penalty = 0,
|
||||
temperature = 0,
|
||||
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',
|
||||
},
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user