feat: add agentic plugin to nvim

This commit is contained in:
Thiago Sposito 2025-09-07 12:08:16 -03:00
parent e40e98533c
commit 76cf8e414f
Signed by: thiago
GPG key ID: 3065EA73A976D430
4 changed files with 68 additions and 36 deletions

View file

@ -5,7 +5,7 @@
{
imports = [
./gnome
./vim.nix
./nvim
./zsh.nix
];
@ -20,6 +20,7 @@
"steam-original"
"steam-run"
"steamtinkerlaunch"
"ollama-cuda"
];
};
};
@ -43,6 +44,7 @@
nixfmt-rfc-style
nordic
obsidian
ollama-cuda
pinentry-curses
python3
ripgrep
@ -52,6 +54,7 @@
unzip
waydroid
wl-clipboard
zed-editor
];
username = "thiago";
};
@ -80,11 +83,16 @@
lfs.enable = true;
signing = {
key = "EC7C84664FF515B63AD510B63065EA73A976D430";
signByDefault = true;
signByDefault = false;
};
userEmail = "th.spo@pm.me";
userName = "Thiago Sposito";
};
gpg = {
enable = true;
package = pkgs.gnupg;
};
home-manager.enable = true;
@ -116,6 +124,12 @@
};
};
services.gpg-agent = {
enable = true;
enableZshIntegration = true;
pinentry.package = pkgs.pinentry-curses;
};
systemd.user.startServices = "sd-switch";
home.stateVersion = "25.11";
}

View file

@ -21,6 +21,10 @@
};
plugins = {
avante = {
enable = true;
};
dressing.enable = true;
lsp.enable = true;
lsp.servers = {
lua_ls.enable = true;
@ -61,38 +65,6 @@
conform-nvim.enable = true;
};
extraConfigLua = ''
local cmp = require'cmp'
cmp.setup({
mapping = {
['<C-Space>'] = cmp.mapping.complete(), -- trigger manually
['<CR>'] = cmp.mapping.confirm({ select = true }), -- confirm with Enter
['<Tab>'] = cmp.mapping.select_next_item(),
['<S-Tab>'] = cmp.mapping.select_prev_item(),
},
sources = {
{ name = 'nvim_lsp' },
{ name = 'buffer' },
{ name = 'path' },
},
vim.api.nvim_create_autocmd("LspAttach", {
callback = function(args)
local buf = args.buf
local opts = { buffer = buf }
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
vim.keymap.set("n", "gr", vim.lsp.buf.references, opts)
vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts)
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, opts)
vim.keymap.set("n", "<leader>f", function() vim.lsp.buf.format({ async = true }) end, opts)
vim.keymap.set("n", "<A-j>", ":m .+1<CR>==")
vim.keymap.set("n", "<A-k>", ":m .-2<CR>==")
end
})
})
'';
extraConfigLua = builtins.readFile ./extraconfig.lua;
};
}

View file

@ -0,0 +1,47 @@
local cmp = require'cmp'
local avante = require("avante")
cmp.setup({
mapping = {
['<C-Space>'] = cmp.mapping.complete(), -- trigger manually
['<CR>'] = cmp.mapping.confirm({ select = true }), -- confirm with Enter
['<Tab>'] = cmp.mapping.select_next_item(),
['<S-Tab>'] = cmp.mapping.select_prev_item(),
},
sources = {
{ name = 'nvim_lsp' },
{ name = 'buffer' },
{ name = 'path' },
},
vim.api.nvim_create_autocmd("LspAttach", {
callback = function(args)
local buf = args.buf
local opts = { buffer = buf }
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
vim.keymap.set("n", "gr", vim.lsp.buf.references, opts)
vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts)
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, opts)
vim.keymap.set("n", "<leader>f", function() vim.lsp.buf.format({ async = true }) end, opts)
vim.keymap.set("n", "<A-j>", ":m .+1<CR>==")
vim.keymap.set("n", "<A-k>", ":m .-2<CR>==")
end
})
})
avante.setup({
provider = "ollama",
providers = {
ollama = {
endpoint = "http://127.0.0.1:11434",
model = "gpt-oss:20b",
extra_request_body = {
temperature = 0,
num_ctx = 8192,
},
},
},
})