init
This commit is contained in:
20
nvim/lua/plugins/extras/coding/ai/avante.lua
Normal file
20
nvim/lua/plugins/extras/coding/ai/avante.lua
Normal file
@@ -0,0 +1,20 @@
|
||||
return {
|
||||
{
|
||||
"yetone/avante.nvim",
|
||||
event = "VeryLazy",
|
||||
build = "make",
|
||||
opts = {
|
||||
openai = {
|
||||
endpoint = "http://127.0.0.1:11434",
|
||||
model = "deepseek-coder-v2",
|
||||
temperature = 60,
|
||||
max_tokens = 4096,
|
||||
["local"] = true,
|
||||
},
|
||||
},
|
||||
dependencies = {
|
||||
"MeanderingProgrammer/render-markdown.nvim",
|
||||
ft = { "markdown", "norg", "rmd", "org", "Avante" },
|
||||
},
|
||||
},
|
||||
}
|
||||
91
nvim/lua/plugins/extras/coding/ai/codecompanion.lua
Normal file
91
nvim/lua/plugins/extras/coding/ai/codecompanion.lua
Normal file
@@ -0,0 +1,91 @@
|
||||
local prefix = "<leader>a"
|
||||
local user = vim.env.USER or "User"
|
||||
|
||||
vim.api.nvim_create_autocmd("User", {
|
||||
pattern = "CodeCompanionChatAdapter",
|
||||
callback = function(args)
|
||||
if args.data.adapter == nil or vim.tbl_isempty(args.data) then
|
||||
return
|
||||
end
|
||||
vim.g.llm_name = args.data.adapter.name
|
||||
end,
|
||||
})
|
||||
|
||||
return {
|
||||
{
|
||||
"olimorris/codecompanion.nvim",
|
||||
cmd = { "CodeCompanion", "CodeCompanionActions", "CodeCompanionToggle", "CodeCompanionAdd", "CodeCompanionChat" },
|
||||
opts = {
|
||||
adapters = {
|
||||
deepseek_coder = function()
|
||||
return require("codecompanion.adapters").extend("ollama", {
|
||||
name = "deepseek_coder",
|
||||
schema = {
|
||||
model = {
|
||||
default = "deepseek-coder-v2:latest",
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
deepseek_r1 = function()
|
||||
return require("codecompanion.adapters").extend("ollama", {
|
||||
name = "deepseek_r1",
|
||||
schema = {
|
||||
model = {
|
||||
default = "deepseek-r1:14b",
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
strategies = {
|
||||
chat = {
|
||||
adapter = "deepseek_r1",
|
||||
roles = {
|
||||
llm = " CodeCompanion",
|
||||
user = " " .. user:sub(1, 1):upper() .. user:sub(2),
|
||||
},
|
||||
keymaps = {
|
||||
close = { modes = { n = "q", i = "<C-c>" } },
|
||||
stop = { modes = { n = "<C-c>" } },
|
||||
},
|
||||
},
|
||||
inline = { adapter = "deepseek_r1" },
|
||||
agent = { adapter = "deepseek_r1" },
|
||||
},
|
||||
display = {
|
||||
chat = {
|
||||
show_settings = true,
|
||||
render_headers = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{ prefix .. "a", "<cmd>CodeCompanionActions<cr>", mode = { "n", "v" }, desc = "Action Palette" },
|
||||
{ prefix .. "c", "<cmd>CodeCompanionChat<cr>", mode = { "n", "v" }, desc = "New Chat" },
|
||||
{ prefix .. "A", "<cmd>CodeCompanionAdd<cr>", mode = "v", desc = "Add Code" },
|
||||
{ prefix .. "i", "<cmd>CodeCompanion<cr>", mode = "n", desc = "Inline Prompt" },
|
||||
{ prefix .. "C", "<cmd>CodeCompanionToggle<cr>", mode = "n", desc = "Toggle Chat" },
|
||||
},
|
||||
},
|
||||
{
|
||||
"folke/which-key.nvim",
|
||||
opts = {
|
||||
spec = {
|
||||
{ prefix, group = "ai", icon = " ", mode = { "n", "v" } },
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"folke/edgy.nvim",
|
||||
optional = true,
|
||||
opts = function(_, opts)
|
||||
opts.right = opts.right or {}
|
||||
table.insert(opts.right, {
|
||||
ft = "codecompanion",
|
||||
title = "CodeCompanion",
|
||||
size = { width = 70 },
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
||||
65
nvim/lua/plugins/extras/coding/ai/codeium.lua
Normal file
65
nvim/lua/plugins/extras/coding/ai/codeium.lua
Normal file
@@ -0,0 +1,65 @@
|
||||
return {
|
||||
{
|
||||
"Exafunction/codeium.vim",
|
||||
event = "InsertEnter",
|
||||
config = function()
|
||||
if vim.g.codeium_cmp_hide == true then
|
||||
local cmp = require("cmp")
|
||||
cmp.event:on("menu_opened", function()
|
||||
vim.g.codeium_manual = true
|
||||
vim.fn["codeium#Clear"]()
|
||||
end)
|
||||
cmp.event:on("menu_closed", function()
|
||||
vim.g.codeium_manual = false
|
||||
vim.fn["codeium#Complete"]()
|
||||
end)
|
||||
end
|
||||
|
||||
vim.g.codeium_filetypes = {
|
||||
TelescopePrompt = false,
|
||||
DressingInput = false,
|
||||
["neo-tree-popup"] = false,
|
||||
["dap-repl"] = false,
|
||||
["snacks_picker_input"] = false,
|
||||
}
|
||||
|
||||
local opts = { expr = true, silent = true }
|
||||
vim.g.codeium_disable_bindings = 1
|
||||
|
||||
vim.keymap.set("i", "<M-CR>", function()
|
||||
return vim.fn["codeium#Accept"]()
|
||||
end, opts)
|
||||
|
||||
vim.keymap.set("n", "<leader>ch", function()
|
||||
return vim.fn["codeium#Chat"]()
|
||||
end, { desc = "Chat with IA (Codeium)" })
|
||||
|
||||
vim.keymap.set("i", "<M-]>", function()
|
||||
return vim.fn["codeium#CycleCompletions"](1)
|
||||
end, opts)
|
||||
|
||||
vim.keymap.set("i", "<M-[>", function()
|
||||
return vim.fn["codeium#CycleCompletions"](-1)
|
||||
end, opts)
|
||||
|
||||
vim.keymap.set("i", "<M-c>", function()
|
||||
return vim.fn["codeium#Clear"]()
|
||||
end, opts)
|
||||
|
||||
vim.keymap.set("n", "<leader>cI", "<cmd>CodeiumToggle<cr>", { desc = "Toggle IA (Codeium)" })
|
||||
end,
|
||||
},
|
||||
{
|
||||
"nvim-lualine/lualine.nvim",
|
||||
optional = true,
|
||||
opts = function(_, opts)
|
||||
local icon = require("lazyvim.config").icons.kinds.Codeium
|
||||
local function show_codeium_status()
|
||||
return icon .. vim.fn["codeium#GetStatusString"]()
|
||||
end
|
||||
|
||||
-- Insert the icon
|
||||
table.insert(opts.sections.lualine_x, 2, show_codeium_status)
|
||||
end,
|
||||
},
|
||||
}
|
||||
24
nvim/lua/plugins/extras/coding/ai/copilot.lua
Normal file
24
nvim/lua/plugins/extras/coding/ai/copilot.lua
Normal file
@@ -0,0 +1,24 @@
|
||||
return {
|
||||
{ import = "lazyvim.plugins.extras.ai.copilot" },
|
||||
{
|
||||
"zbirenbaum/copilot.lua",
|
||||
event = "InsertEnter",
|
||||
opts = {
|
||||
suggestion = {
|
||||
enabled = true,
|
||||
auto_trigger = true,
|
||||
keymap = {
|
||||
accept = "<M-CR>",
|
||||
accept_line = "<M-l>",
|
||||
accept_word = "<M-k>",
|
||||
next = "<M-]>",
|
||||
prev = "<M-[>",
|
||||
dismiss = "<M-c>",
|
||||
},
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>cI", "<cmd>Copilot toggle<cr>", desc = "Toggle IA (Copilot)" },
|
||||
},
|
||||
},
|
||||
}
|
||||
65
nvim/lua/plugins/extras/coding/ai/gen.lua
Normal file
65
nvim/lua/plugins/extras/coding/ai/gen.lua
Normal file
@@ -0,0 +1,65 @@
|
||||
local prefix = "<leader>a"
|
||||
|
||||
return {
|
||||
{
|
||||
"jellydn/gen.nvim",
|
||||
opts = {
|
||||
model = "codellama",
|
||||
host = "localhost",
|
||||
port = "11434",
|
||||
display_mode = "split",
|
||||
show_prompt = true,
|
||||
show_model = true,
|
||||
no_auto_close = false,
|
||||
init = function(options)
|
||||
pcall(io.popen, "ollama serve > /dev/null 2>&1 &")
|
||||
end,
|
||||
command = function(options)
|
||||
local body = { model = options.model, stream = true }
|
||||
return "curl --silent --no-buffer -X POST http://"
|
||||
.. options.host
|
||||
.. ":"
|
||||
.. options.port
|
||||
.. "/api/generate -d $body"
|
||||
end,
|
||||
},
|
||||
config = function(_, opts)
|
||||
local gen = require("gen")
|
||||
gen.setup(opts)
|
||||
|
||||
gen.prompts["Elaborate_Text"] = {
|
||||
prompt = "Elaborate the following text:\n$text",
|
||||
}
|
||||
gen.prompts["Fix_Code"] = {
|
||||
prompt = "Fix the following code. Only output the result in format ```$filetype\n...\n```:\n```$filetype\n$text\n```",
|
||||
extract = "```$filetype\n(.-)```",
|
||||
}
|
||||
end,
|
||||
keys = {
|
||||
{ prefix .. "i", "<cmd>Gen<cr>", mode = { "n", "v" }, desc = "IA (Gen)" },
|
||||
{ prefix .. "g", "<cmd>Gen Generate<cr>", mode = { "n" }, desc = "Generate" },
|
||||
{ prefix .. "c", "<cmd>Gen Chat<cr>", mode = { "n" }, desc = "Chat" },
|
||||
{ prefix .. "s", "<cmd>Gen Summarize<cr>", mode = { "n", "v" }, desc = "Summarize" },
|
||||
{ prefix .. "a", "<cmd>Gen Ask<cr>", mode = { "v" }, desc = "Ask" },
|
||||
{ prefix .. "H", "<cmd>Gen Change<cr>", mode = { "v" }, desc = "Change" },
|
||||
{ prefix .. "G", "<cmd>Gen Enhance_Grammar_Spelling<cr>", mode = { "v" }, desc = "Enhance Grammar Spelling" },
|
||||
{ prefix .. "w", "<cmd>Gen Enhance_Wording<cr>", mode = { "v" }, desc = "Enhance Wording" },
|
||||
{ prefix .. "C", "<cmd>Gen Make_Concise<cr>", mode = { "v" }, desc = "Make Concise" },
|
||||
{ prefix .. "l", "<cmd>Gen Make_List<cr>", mode = { "v" }, desc = "Make List" },
|
||||
{ prefix .. "t", "<cmd>Gen Make_Table<cr>", mode = { "v" }, desc = "Make Table" },
|
||||
{ prefix .. "r", "<cmd>Gen Review_Code<cr>", mode = { "v" }, desc = "Review Code" },
|
||||
{ prefix .. "e", "<cmd>Gen Enhance_Code<cr>", mode = { "v" }, desc = "Enhance Code" },
|
||||
{ prefix .. "h", "<cmd>Gen Change_Code<cr>", mode = { "v" }, desc = "Change Code" },
|
||||
{ prefix .. "f", "<cmd>Gen Fix_Code<cr>", mode = { "v" }, desc = "Fix Code" },
|
||||
{ prefix .. "E", "<cmd>Gen Elaborate_Text<cr>", mode = { "v" }, desc = "Elaborate Text" },
|
||||
},
|
||||
},
|
||||
{
|
||||
"folke/which-key.nvim",
|
||||
opts = {
|
||||
spec = {
|
||||
{ prefix, group = "IA (Gen)", icon = " " },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
108
nvim/lua/plugins/extras/coding/ai/gpt.lua
Normal file
108
nvim/lua/plugins/extras/coding/ai/gpt.lua
Normal file
@@ -0,0 +1,108 @@
|
||||
local prefix = "<leader>C"
|
||||
|
||||
return {
|
||||
{
|
||||
"jackMort/ChatGPT.nvim",
|
||||
dependencies = {
|
||||
"MunifTanjim/nui.nvim",
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-telescope/telescope.nvim",
|
||||
},
|
||||
cond = function()
|
||||
local api_key = os.getenv("OPENAI_API_KEY")
|
||||
return api_key and api_key ~= "" and true or false
|
||||
end,
|
||||
opts = {
|
||||
edit_with_instructions = {
|
||||
diff = false,
|
||||
keymaps = {
|
||||
close = "<C-c>",
|
||||
accept = "<C-y>",
|
||||
toggle_diff = "<C-d>",
|
||||
toggle_settings = "<C-o>",
|
||||
cycle_windows = "<Tab>",
|
||||
use_output_as_input = "<C-i>",
|
||||
},
|
||||
},
|
||||
chat = {
|
||||
welcome_message = "",
|
||||
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>", "o", "<cr>" },
|
||||
rename_session = "r",
|
||||
delete_session = "d",
|
||||
draft_message = "<C-d>",
|
||||
edit_message = "e",
|
||||
delete_message = "d",
|
||||
toggle_settings = "<C-o>",
|
||||
toggle_message_role = "<C-r>",
|
||||
toggle_system_role_open = "<C-s>",
|
||||
stop_generating = "<C-x>",
|
||||
},
|
||||
},
|
||||
openai_params = {
|
||||
model = "gpt-3.5-turbo-16k",
|
||||
-- model = "gpt-4",
|
||||
frequency_penalty = 0,
|
||||
presence_penalty = 0,
|
||||
max_tokens = 300,
|
||||
temperature = 0.3,
|
||||
top_p = 0.3,
|
||||
n = 1,
|
||||
-- temperature = 0,
|
||||
-- top_p = 1,
|
||||
},
|
||||
openai_edit_params = {
|
||||
model = "gpt-3.5-turbo-16k",
|
||||
-- model = "gpt-4",
|
||||
frequency_penalty = 0,
|
||||
presence_penalty = 0,
|
||||
temperature = 0,
|
||||
top_p = 1,
|
||||
n = 1,
|
||||
},
|
||||
show_quickfixes_cmd = "Trouble quickfix",
|
||||
-- actions_paths = { "~/.config/nvim/custom_actions.json" },
|
||||
},
|
||||
cmd = {
|
||||
"ChatGPT",
|
||||
"ChatGPTActAs",
|
||||
"ChatGPTCompleteCode",
|
||||
"ChatGPTEditWithInstructions",
|
||||
"ChatGPTRun",
|
||||
},
|
||||
-- stylua: ignore
|
||||
keys = {
|
||||
{ prefix .. "c", "<cmd>ChatGPT<CR>", desc = "ChatGPT" },
|
||||
{ prefix .. "e", "<cmd>ChatGPTEditWithInstruction<CR>", desc = "Edit With Instruction", mode = { "n", "v" } },
|
||||
{ prefix .. "g", "<cmd>ChatGPTRun grammar_correction<CR>", desc = "Grammar Correction", mode = { "n", "v" } },
|
||||
{ prefix .. "t", "<cmd>ChatGPTRun translate<CR>", desc = "Translate", mode = { "n", "v" } },
|
||||
{ prefix .. "k", "<cmd>ChatGPTRun keywords<CR>", desc = "Keywords", mode = { "n", "v" } },
|
||||
{ prefix .. "d", "<cmd>ChatGPTRun docstring<CR>", desc = "Docstring", mode = { "n", "v" } },
|
||||
{ prefix .. "T", "<cmd>ChatGPTRun add_tests<CR>", desc = "Add Tests", mode = { "n", "v" } },
|
||||
{ prefix .. "o", "<cmd>ChatGPTRun optimize_code<CR>", desc = "Optimize Code", mode = { "n", "v" } },
|
||||
{ prefix .. "s", "<cmd>ChatGPTRun summarize<CR>", desc = "Summarize", mode = { "n", "v" } },
|
||||
{ prefix .. "f", "<cmd>ChatGPTRun fix_bugs<CR>", desc = "Fix Bugs", mode = { "n", "v" } },
|
||||
{ prefix .. "x", "<cmd>ChatGPTRun explain_code<CR>", desc = "Explain Code", mode = { "n", "v" } },
|
||||
{ prefix .. "r", "<cmd>ChatGPTRun roxygen_edit<CR>", desc = "Roxygen Edit", mode = { "n", "v" } },
|
||||
{ prefix .. "l", "<cmd>ChatGPTRun code_readability_analysis<CR>", desc = "Code Readability Analysis", mode = { "n", "v" }, },
|
||||
},
|
||||
},
|
||||
{
|
||||
"folke/which-key.nvim",
|
||||
opts = {
|
||||
spec = {
|
||||
{ prefix, group = "chatGPT", icon = " " },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
40
nvim/lua/plugins/extras/coding/ai/neocodeium.lua
Normal file
40
nvim/lua/plugins/extras/coding/ai/neocodeium.lua
Normal file
@@ -0,0 +1,40 @@
|
||||
return {
|
||||
"monkoose/neocodeium",
|
||||
event = "InsertEnter",
|
||||
config = function()
|
||||
local neocodeium = require("neocodeium")
|
||||
neocodeium.setup()
|
||||
|
||||
local commands = require("neocodeium.commands")
|
||||
if vim.g.codeium_cmp_hide == true then
|
||||
local cmp = require("cmp")
|
||||
cmp.event:on("menu_opened", function()
|
||||
commands.disable()
|
||||
neocodeium.clear()
|
||||
end)
|
||||
|
||||
cmp.event:on("menu_closed", function()
|
||||
commands.enable()
|
||||
end)
|
||||
end
|
||||
|
||||
vim.keymap.set("i", "<M-CR>", function()
|
||||
require("neocodeium").accept()
|
||||
end)
|
||||
vim.keymap.set("i", "<A-w>", function()
|
||||
require("neocodeium").accept_word()
|
||||
end)
|
||||
vim.keymap.set("i", "<A-a>", function()
|
||||
require("neocodeium").accept_line()
|
||||
end)
|
||||
vim.keymap.set("i", "<M-]>", function()
|
||||
require("neocodeium").cycle_or_complete()
|
||||
end)
|
||||
vim.keymap.set("i", "<M-[>", function()
|
||||
require("neocodeium").cycle_or_complete(-1)
|
||||
end)
|
||||
vim.keymap.set("i", "<M-c>", function()
|
||||
require("neocodeium").clear()
|
||||
end)
|
||||
end,
|
||||
}
|
||||
Reference in New Issue
Block a user