[Nvim] Gen -> CodeCompanion

This commit is contained in:
coja
2026-04-11 02:19:46 +02:00
parent e7da0a5f93
commit bdb669bb73
4 changed files with 48 additions and 56 deletions

View File

@@ -0,0 +1,34 @@
local model = "Qwen3-Coder-30B-Instruct-IQ4_XS"
return {
adapters = {
http = {
llama_cpp = function()
return require("codecompanion.adapters").extend("openai_compatible", {
env = {
url = "http://localhost:11343",
chat_url = "/v1/chat/completions",
models_endpoint = "/v1/models",
api_key = "dummy",
},
schema = {
model = {
default = model,
},
},
})
end,
},
},
interactions = {
chat = {
adapter = "llama_cpp",
},
inline = {
adapter = "llama_cpp",
},
cmd = {
adapter = "llama_cpp",
},
},
}

View File

@@ -24,7 +24,7 @@ return {
-- Only intended to be used for plugin development / debugging.
log_runtime = false,
-- Filetypes this plugin will run on.
file_types = { "markdown" },
file_types = { "markdown", "gitcommit", "codecompanion" },
-- Takes buffer as input, if it returns true this plugin will not attach to the buffer
ignore = function()
return false

View File

@@ -19,7 +19,10 @@ map("n", "<leader>fs", "<cmd>Telescope grep_string<CR>", { desc = "Find selected
map("n", "<leader>fk", "<cmd>Telescope keymaps<CR>", { desc = "Find keymaps" })
map("n", "<leader>fd", "<cmd>Telescope diagnostics<CR>", { desc = "Diagnostics" })
map({ "n", "v" }, "<leader>ge", "<cmd>Gen<CR>", { desc = "Gen.nvim" })
map({ "n", "v" }, "<leader>ge", "<cmd>CodeCompanion<CR>", { desc = "CodeCompanion" })
map({ "n", "v" }, "<leader>ga", "<cmd>CodeCompanionActions<CR>", { desc = "CodeCompanion actions" })
map("n", "<leader>gc", "<cmd>CodeCompanionChat Toggle<CR>", { desc = "CodeCompanion chat" })
map("v", "<leader>gc", "<cmd>CodeCompanionChat Add<CR>", { desc = "Send selection to CodeCompanion chat" })
-- P paste with
-- global marks

View File

@@ -12,66 +12,21 @@ return {
end,
},
-- Custom Parameters (with defaults)
{
"David-Kunz/gen.nvim",
cmd = "Gen",
opts = {
-- model = "llama3.2:3b", -- The default model to use.
model = "qwen3-coder:30b",
quit_map = "q", -- set keymap to close the response window
retry_map = "<c-r>", -- set keymap to re-send the current prompt
accept_map = "<c-cr>", -- set keymap to replace the previous selection with the last result
-- host = "localhost", -- The host running the Ollama service.
host = "192.168.0.204", -- The host running the Ollama service.
port = "11434", -- The port on which the Ollama service is listening.
display_mode = "vertical-split", -- The display mode. Can be "float" or "split" or "horizontal-split" or "vertical-split".
show_prompt = true, -- Shows the prompt submitted to Ollama. Can be true (3 lines) or "full".
show_model = true, -- Displays which model you are using at the beginning of your chat session.
no_auto_close = false, -- Never closes the window automatically.
file = false, -- Write the payload to a temporary file to keep the command short.
hidden = false, -- Hide the generation window (if true, will implicitly set `prompt.replace = true`), requires Neovim >= 0.10
-- Function to initialize Ollama
command = function(options)
local body = { model = options.model, stream = true }
return "curl --silent --no-buffer -X POST http://"
.. options.host
.. ":"
.. options.port
.. "/api/chat -d $body"
end,
-- The command for the Ollama service. You can use placeholders $prompt, $model and $body (shellescaped).
-- This can also be a command string.
-- The executed command must return a JSON object with { response, context }
-- (context property is optional).
-- list_models = '<omitted lua function>', -- Retrieves a list of model names
result_filetype = "markdown", -- Configure filetype of the result buffer
debug = false, -- Prints errors and the command which is run.
"olimorris/codecompanion.nvim",
version = "^19.0.0",
lazy = false,
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
},
config = function(_, opts)
require("gen").setup(opts)
local prompts = require("gen").prompts
prompts["Markdown_links"] = {
prompt = "Make markdown links wherever you find link in the following text, and generate the namas accordingly:\n$text",
replace = true,
}
prompts["Optimize code"] = {
prompt = "Check if code can be optimized for speed and readability:\n$text",
replace = true,
}
prompts["Genetrate types "] = {
prompt = "Check if types are correct in this code, fix and optimize if something is needed:\n$text",
replace = true,
}
opts = function()
return require "configs.codecompanion"
end,
},
{
"MeanderingProgrammer/render-markdown.nvim",
ft = { "markdown", "gitcommit" },
ft = { "markdown", "gitcommit", "codecompanion" },
opts = function()
return require "configs.render-markdown"
end,