Feat/audit improvements #24

Merged
lyrathorpe merged 11 commits from feat/audit-improvements into main 2026-06-10 17:08:25 +01:00
Showing only changes of commit 5dd14a8e68 - Show all commits
+82 -6
View File
@@ -2,7 +2,7 @@
# tree, indent guides, fugitive, tmux-navigator, Catppuccin Mocha, 2-space hard # tree, indent guides, fugitive, tmux-navigator, Catppuccin Mocha, 2-space hard
# tabs, Jenkinsfile=groovy) plus a real LSP stack in place of the inert ALE. # tabs, Jenkinsfile=groovy) plus a real LSP stack in place of the inert ALE.
# Wanted on every host; vi/vim/$EDITOR all launch nvim. # Wanted on every host; vi/vim/$EDITOR all launch nvim.
{ inputs, ... }: { inputs, pkgs, ... }:
{ {
imports = [ inputs.nixvim.homeModules.nixvim ]; imports = [ inputs.nixvim.homeModules.nixvim ];
@@ -16,6 +16,17 @@
# warn that its pinned nixpkgs was overridden by the input `follows`. # warn that its pinned nixpkgs was overridden by the input `follows`.
nixpkgs.source = inputs.nixpkgs; nixpkgs.source = inputs.nixpkgs;
# Formatter binaries for conform-nvim (below), matching the repo's treefmt
# set. On nvim's PATH only.
extraPackages = with pkgs; [
nixfmt
stylua
ruff
shfmt
prettier
gofumpt
];
globals.mapleader = " "; globals.mapleader = " ";
opts = { opts = {
@@ -77,11 +88,52 @@
cmp = { cmp = {
enable = true; enable = true;
autoEnableSources = true; autoEnableSources = true;
settings.sources = [ settings = {
{ name = "nvim_lsp"; } snippet.expand = "function(args) require('luasnip').lsp_expand(args.body) end";
{ name = "buffer"; } sources = [
{ name = "path"; } { name = "nvim_lsp"; }
]; { name = "luasnip"; }
{ name = "buffer"; }
{ name = "path"; }
];
};
};
# Fuzzy finder (files / live grep / symbols); rg + fd are already on PATH.
telescope = {
enable = true;
extensions.fzf-native.enable = true;
};
gitsigns.enable = true; # gutter signs, stage-hunk, blame
which-key.enable = true; # popup of pending keybindings (leader is Space)
trouble.enable = true; # project-wide diagnostics/quickfix list
lualine = {
enable = true;
settings.options.theme = "catppuccin";
};
comment.enable = true; # gc / gcc comment toggling
nvim-autopairs.enable = true;
treesitter-textobjects.enable = true;
luasnip.enable = true; # snippet engine (drives cmp's luasnip source above)
# Format-on-save, mirroring the repo's treefmt set. Filetypes with no
# formatter here (e.g. terraform) fall back to the LSP formatter.
conform-nvim = {
enable = true;
settings = {
formatters_by_ft = {
nix = [ "nixfmt" ];
lua = [ "stylua" ];
python = [ "ruff_format" ];
sh = [ "shfmt" ];
markdown = [ "prettier" ];
go = [ "gofumpt" ];
};
format_on_save = {
timeout_ms = 2000;
lsp_format = "fallback";
};
};
}; };
}; };
@@ -92,6 +144,30 @@
action = "<cmd>NvimTreeToggle<cr>"; action = "<cmd>NvimTreeToggle<cr>";
options.desc = "Toggle file tree"; options.desc = "Toggle file tree";
} }
{
mode = "n";
key = "<leader>ff";
action = "<cmd>Telescope find_files<cr>";
options.desc = "Find files";
}
{
mode = "n";
key = "<leader>fg";
action = "<cmd>Telescope live_grep<cr>";
options.desc = "Live grep";
}
{
mode = "n";
key = "<leader>fb";
action = "<cmd>Telescope buffers<cr>";
options.desc = "Buffers";
}
{
mode = "n";
key = "<leader>xx";
action = "<cmd>Trouble diagnostics toggle<cr>";
options.desc = "Diagnostics list";
}
]; ];
# au BufNewFile,BufRead *Jenkinsfile setf groovy # au BufNewFile,BufRead *Jenkinsfile setf groovy