Feat/audit improvements #24
@@ -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,14 +88,55 @@
|
|||||||
cmp = {
|
cmp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
autoEnableSources = true;
|
autoEnableSources = true;
|
||||||
settings.sources = [
|
settings = {
|
||||||
|
snippet.expand = "function(args) require('luasnip').lsp_expand(args.body) end";
|
||||||
|
sources = [
|
||||||
{ name = "nvim_lsp"; }
|
{ name = "nvim_lsp"; }
|
||||||
|
{ name = "luasnip"; }
|
||||||
{ name = "buffer"; }
|
{ name = "buffer"; }
|
||||||
{ name = "path"; }
|
{ 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
keymaps = [
|
keymaps = [
|
||||||
{
|
{
|
||||||
mode = "n";
|
mode = "n";
|
||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user