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

@ -1,4 +1,3 @@
[![builds.sr.ht status](https://builds.sr.ht/~sposito.svg)](https://builds.sr.ht/~sposito?search)
# My personal machines config files # My personal machines config files
This repository contains declarative configurations for personal machines managed with NixOS flakes and Home Manager. This repository contains declarative configurations for personal machines managed with NixOS flakes and Home Manager.

View file

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

View file

@ -21,6 +21,10 @@
}; };
plugins = { plugins = {
avante = {
enable = true;
};
dressing.enable = true;
lsp.enable = true; lsp.enable = true;
lsp.servers = { lsp.servers = {
lua_ls.enable = true; lua_ls.enable = true;
@ -61,38 +65,6 @@
conform-nvim.enable = true; conform-nvim.enable = true;
}; };
extraConfigLua = '' extraConfigLua = builtins.readFile ./extraconfig.lua;
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
})
})
'';
}; };
} }

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,
},
},
},
})