aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorElvis Claros Castro <elvis@claros.ar>2025-07-30 12:10:50 -0300
committerElvis Claros Castro <elvis@claros.ar>2025-07-30 12:10:50 -0300
commit8f64f3b31fa69765b816000157aa7632a33bd08e (patch)
treee4297e6fd0a7601ca3a813ac68857093c4870c1c /lua
parent7475c20d79d26b397a029541d5801fb7b7324360 (diff)
downloadnvim-conf-8f64f3b31fa69765b816000157aa7632a33bd08e.tar.gz
nvim-conf-8f64f3b31fa69765b816000157aa7632a33bd08e.zip
feat(plugins): actualiza completions, agrega markview/img-clip/mini.diff, mejora codecompanion
- Se actualizó el lockfile de plugins a las últimas versiones y se añadieron nuevos plugins. - Se agregó `markview.nvim` para una mejor previsualización de markdown/codecompanion, reemplazando `render-markdown.nvim` por mayor compatibilidad y funcionalidades. - Se incorporó `img-clip.nvim` para pegar imágenes fácilmente en buffers de codecompanion, con plantilla personalizada y soporte de rutas absolutas. - Se añadió `mini.diff.nvim` para visualización ligera de diferencias, integrado como proveedor de diff en codecompanion. - Mejoras en la configuración de codecompanion: - Añadido selector de modelo preferido para adaptadores LLM, priorizando modelos Qwen2.5-coder. - Se cambió el adaptador por defecto de chat/inline a Copilot para mejores resultados. - Integración de la extensión `mcphub.nvim` para funcionalidades adicionales en codecompanion. - Mejor mapeo de iconos para autocompletado. - Limpieza en la configuración de fuentes de autocompletado para mayor consistencia. - Se eliminó la configuración del plugin `render-markdown.nvim` (obsoleto). Estos cambios mejoran el renderizado de markdown, manejo de imágenes, visualización de diferencias y el flujo de trabajo con LLM en Neovim.
Diffstat (limited to 'lua')
-rw-r--r--lua/pi/completition/init.lua4
-rw-r--r--lua/plugins/codecompanion.lua104
-rw-r--r--lua/plugins/img-clip.lua12
-rw-r--r--lua/plugins/markdown-render.lua5
-rw-r--r--lua/plugins/markview.lua10
-rw-r--r--lua/plugins/mini.diff.lua10
6 files changed, 117 insertions, 28 deletions
diff --git a/lua/pi/completition/init.lua b/lua/pi/completition/init.lua
index bf6d410..73f13d1 100644
--- a/lua/pi/completition/init.lua
+++ b/lua/pi/completition/init.lua
@@ -61,8 +61,7 @@ cmp.setup {
{ name = "path" },
{ name = "luasnip" },
{ name = "copilot" },
- { name = 'vimtex', },
- -- { name = "codeium" },
+ { name = "vimtex" },
-- { name = 'cmp_ai' },
{
name = "html-css",
@@ -114,6 +113,7 @@ cmp.setup {
local KIND_ICONS = {
Tailwind = "󰹞󰹞󰹞󰹞󰹞󰹞󰹞󰹞",
Copilot = "",
+ CodeCompanion = "",
Ollama = "",
Text = "󰉿",
Method = "󰆧",
diff --git a/lua/plugins/codecompanion.lua b/lua/plugins/codecompanion.lua
index 95edce8..e5f087f 100644
--- a/lua/plugins/codecompanion.lua
+++ b/lua/plugins/codecompanion.lua
@@ -1,3 +1,27 @@
+-- Choose default model from a list of preferred models. Fall back to first
+-- available.
+local function preferred_model_picker(preferred)
+ return function(self)
+ if self == nil then
+ -- Debug:render() calls Adapter.schema.model.default() but doesn't pass
+ -- in `self`. Just return an empty string in this case.
+ return ""
+ end
+
+ local choices = self.schema.model.choices(self)
+
+ for _, best in ipairs(preferred) do
+ for _, choice in ipairs(choices) do
+ if choice:find(best, 1, true) then
+ return choice
+ end
+ end
+ end
+
+ return choices[1]
+ end
+end
+
local IS_DEV = false
return {
{
@@ -8,6 +32,23 @@ return {
"nvim-treesitter/nvim-treesitter",
"ibhagwan/fzf-lua", -- For fzf provider, file or buffer picker
"jellydn/spinner.nvim", -- Show loading spinner when request is started
+ {
+ "echasnovski/mini.diff",
+ config = function()
+ local diff = require "mini.diff"
+ diff.setup { source = diff.gen_source.none() }
+ end,
+ },
+ {
+ "ravitemer/mcphub.nvim",
+ dependencies = {
+ "nvim-lua/plenary.nvim",
+ },
+ build = "npm install -g mcp-hub@latest", -- Installs `mcp-hub` node binary globally
+ config = function()
+ require("mcphub").setup()
+ end,
+ },
},
opts = {
log_level = "TRACE", -- or "DEBUG"
@@ -28,7 +69,13 @@ return {
},
schema = {
model = {
- default = "tinyllama:1.1b",
+ default = preferred_model_picker {
+ "qwen2.5-coder:14b",
+ "qwen2.5-coder:7b",
+ "qwen2.5-coder:3b",
+ "qwen2.5-coder:1.5b",
+ "qwen2.5-coder:0.5b",
+ },
},
},
})
@@ -49,7 +96,7 @@ return {
return require("codecompanion.adapters").extend("copilot", {
schema = {
model = {
- default = "o3-mini"
+ default = "gpt-4.1",
},
},
})
@@ -111,9 +158,9 @@ return {
},
schema = {
model = {
- default = "deepseek-chat"
- }
- }
+ default = "deepseek-chat",
+ },
+ },
})
end,
-- deepseek = function()
@@ -135,24 +182,28 @@ return {
-- },
-- })
-- end,
- azure_openai = function()
- return require("codecompanion.adapters").extend("azure_openai", {
- env = {
- api_key = "cmd:echo $AZ_DS_API_KEY",
- endpoint = "https://DeepSeek-R1-nphob.eastus2.models.ai.azure.com",
- },
- schema = {
- model = {
- default = "DeepSeek-R1-nphob",
+ azure_openai = function()
+ return require("codecompanion.adapters").extend("azure_openai", {
+ env = {
+ api_key = "cmd:echo $AZ_DS_API_KEY",
+ endpoint = "https://DeepSeek-R1-nphob.eastus2.models.ai.azure.com",
},
- },
- })
- end,
+ schema = {
+ model = {
+ default = "DeepSeek-R1-nphob",
+ },
+ },
+ })
+ end,
+ },
+ display = {
+ diff = {
+ provider = "mini_diff",
+ },
},
-
strategies = {
chat = {
- adapter = "deepseek",
+ adapter = "copilot",
-- roles = { llm = " Copilot Chat", user = "IT Man" },
},
inline = { adapter = "copilot" },
@@ -161,9 +212,20 @@ return {
},
config = function(_, options)
require("codecompanion").setup(options)
-
+ require("codecompanion").setup {
+ extensions = {
+ mcphub = {
+ callback = "mcphub.extensions.codecompanion",
+ opts = {
+ make_vars = true,
+ make_slash_commands = true,
+ show_result_in_chat = true,
+ },
+ },
+ },
+ }
-- Show loading spinner when request is started
- local spinner = require("spinner")
+ local spinner = require "spinner"
local group = vim.api.nvim_create_augroup("CodeCompanionHooks", {})
vim.api.nvim_create_autocmd({ "User" }, {
pattern = "CodeCompanionRequest*",
diff --git a/lua/plugins/img-clip.lua b/lua/plugins/img-clip.lua
new file mode 100644
index 0000000..3926bde
--- /dev/null
+++ b/lua/plugins/img-clip.lua
@@ -0,0 +1,12 @@
+return {
+ "HakonHarnes/img-clip.nvim",
+ opts = {
+ filetypes = {
+ codecompanion = {
+ prompt_for_file_name = false,
+ template = "[Image]($FILE_PATH)",
+ use_absolute_path = true,
+ },
+ },
+ },
+}
diff --git a/lua/plugins/markdown-render.lua b/lua/plugins/markdown-render.lua
deleted file mode 100644
index 6263fd9..0000000
--- a/lua/plugins/markdown-render.lua
+++ /dev/null
@@ -1,5 +0,0 @@
-return {
- "MeanderingProgrammer/render-markdown.nvim",
- ft = { "markdown", "codecompanion", "copilot-chat" },
-}
-
diff --git a/lua/plugins/markview.lua b/lua/plugins/markview.lua
new file mode 100644
index 0000000..63d2be6
--- /dev/null
+++ b/lua/plugins/markview.lua
@@ -0,0 +1,10 @@
+return {
+ "OXY2DEV/markview.nvim",
+ lazy = false,
+ opts = {
+ preview = {
+ filetypes = { "markdown", "codecompanion", "copilot-chat" },
+ ignore_buftypes = {},
+ },
+ },
+}
diff --git a/lua/plugins/mini.diff.lua b/lua/plugins/mini.diff.lua
new file mode 100644
index 0000000..de60be2
--- /dev/null
+++ b/lua/plugins/mini.diff.lua
@@ -0,0 +1,10 @@
+return {
+ "echasnovski/mini.diff",
+ config = function()
+ local diff = require "mini.diff"
+ diff.setup {
+ -- Disabled by default
+ source = diff.gen_source.none(),
+ }
+ end,
+}