neovim additions

This commit is contained in:
afoucaultc 2026-08-20 13:20:05 +02:00
parent 315e988734
commit 409f13a1db
25 changed files with 242 additions and 86 deletions

View file

@ -8,6 +8,10 @@
nix = [ "nixfmt" ];
lua = [ "stylua" ];
python = [ "ruff_format" ];
format_on_save = {
lsp_fallback = true;
timeout_ms = 500;
};
};
};
};

View file

@ -1,10 +1,61 @@
{ ... }:
{
programs.nixvim = {
plugins = {
gitsigns = {
enable = true;
programs.nixvim.plugins.gitsigns.enable = true;
programs.nixvim.keymaps = [
{
mode = "n";
key = "]c";
action.__raw = ''
function()
if vim.wo.diff then return "]c" end
vim.schedule(function() require("gitsigns").nav_hunk("next") end)
return "<Ignore>"
end
'';
options = {
desc = "Next git hunk";
expr = true;
};
};
};
}
{
mode = "n";
key = "[c";
action.__raw = ''
function()
if vim.wo.diff then return "[c" end
vim.schedule(function() require("gitsigns").nav_hunk("prev") end)
return "<Ignore>"
end
'';
options = {
desc = "Previous git hunk";
expr = true;
};
}
{
mode = "n";
key = "<leader>hs";
action.__raw = ''function() require("gitsigns").stage_hunk() end'';
options.desc = "Stage hunk";
}
{
mode = "n";
key = "<leader>hr";
action.__raw = ''function() require("gitsigns").reset_hunk() end'';
options.desc = "Reset hunk";
}
{
mode = "n";
key = "<leader>hp";
action.__raw = ''function() require("gitsigns").preview_hunk() end'';
options.desc = "Preview hunk";
}
{
mode = "n";
key = "<leader>hb";
action.__raw = ''function() require("gitsigns").blame_line({ full = true }) end'';
options.desc = "Blame line";
}
];
}

View file

@ -6,7 +6,7 @@
enable = true;
servers = {
nil_ls.enable = true;
lua-ls = {
lua_ls = {
enable = true;
settings.Lua.diagnostics.globals = [ "vim" ];
};

View file

@ -0,0 +1,16 @@
{ ... }:
{
programs.nixvim.plugins = {
neogit.enable = true;
diffview.enable = true; # compagnon habituel de neogit pour les diffs
};
programs.nixvim.keymaps = [
{
mode = "n";
key = "<leader>gg";
action = "<cmd>Neogit<cr>";
options.desc = "Open Neogit";
}
];
}

View file

@ -0,0 +1,10 @@
{ ... }:
{
programs.nixvim.plugins.noice = {
enable = true;
settings.lsp = {
"vim.lsp.util.convert_input_to_markdown_lines" = true;
"vim.lsp.util.stylize_markdown" = true;
};
};
}

View file

@ -0,0 +1,11 @@
{ ... }:
{
programs.nixvim.plugins.snacks = {
enable = true;
settings = {
bigfile.enabled = true; # gère proprement les très gros fichiers
quickfile.enabled = true; # affichage plus rapide au démarrage
indent.enabled = true; # guides d'indentation visuels
};
};
}

View file

@ -0,0 +1,8 @@
{ ... }:
{
programs.nixvim = {
plugins = {
web-devicons.enable = true;
};
};
}

View file

@ -1,10 +1,17 @@
{ ... }:
{
programs.nixvim = {
plugins = {
which-key = {
enable = true;
};
};
};
programs.nixvim.plugins.which-key.enable = true;
programs.nixvim.extraConfigLua = ''
require("which-key").add({
{ "<leader>f", group = "Find" },
{ "<leader>g", group = "Git" },
{ "<leader>h", group = "Git Hunk" },
{ "<leader>s", group = "Spell" },
{ "<leader>c", group = "Code" },
{ "<leader>r", group = "Run" },
{ "<leader>l", group = "LaTeX" },
{ "<leader>t", group = "Toggle" },
})
'';
}