2024-11-11 21:40:36 +01:00
|
|
|
{
|
|
|
|
nixpkgs,
|
|
|
|
flake-utils,
|
|
|
|
treefmt-nix,
|
2025-01-18 17:17:48 +01:00
|
|
|
nvf,
|
2024-11-11 21:40:36 +01:00
|
|
|
...
|
|
|
|
}:
|
|
|
|
flake-utils.lib.eachDefaultSystem (system: let
|
|
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
|
|
treefmtEval = treefmt-nix.lib.evalModule pkgs ./treefmt.nix;
|
|
|
|
treefmtWrapper = treefmtEval.config.build.wrapper;
|
2025-01-18 17:17:48 +01:00
|
|
|
neovimConfigured = nvf.lib.neovimConfiguration {
|
|
|
|
inherit pkgs;
|
|
|
|
modules = [
|
|
|
|
{
|
|
|
|
config.vim = {
|
|
|
|
preventJunkFiles = true;
|
|
|
|
telescope.enable = true;
|
|
|
|
autopairs.nvim-autopairs.enable = true;
|
|
|
|
autocomplete.nvim-cmp.enable = true;
|
|
|
|
snippets.luasnip.enable = true;
|
|
|
|
filetree.neo-tree.enable = true;
|
|
|
|
tabline.nvimBufferline.enable = true;
|
|
|
|
dashboard.alpha.enable = true;
|
|
|
|
notify.nvim-notify.enable = true;
|
|
|
|
projects.project-nvim.enable = true;
|
|
|
|
comments.comment-nvim.enable = true;
|
|
|
|
|
|
|
|
lsp = {
|
|
|
|
formatOnSave = true;
|
|
|
|
lightbulb.enable = true;
|
|
|
|
trouble.enable = true;
|
|
|
|
lspSignature.enable = true;
|
|
|
|
otter-nvim.enable = true;
|
|
|
|
lsplines.enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
languages = {
|
|
|
|
enableLSP = true;
|
|
|
|
enableFormat = true;
|
|
|
|
enableTreesitter = true;
|
|
|
|
enableExtraDiagnostics = true;
|
|
|
|
nix.enable = true;
|
|
|
|
markdown.enable = true;
|
|
|
|
bash.enable = true;
|
|
|
|
clang.enable = true;
|
|
|
|
css.enable = true;
|
|
|
|
html.enable = true;
|
|
|
|
sql.enable = true;
|
|
|
|
go.enable = true;
|
|
|
|
python.enable = true;
|
|
|
|
|
|
|
|
rust = {
|
|
|
|
enable = true;
|
|
|
|
crates.enable = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
visuals = {
|
|
|
|
nvim-web-devicons.enable = true;
|
|
|
|
cinnamon-nvim.enable = true;
|
|
|
|
fidget-nvim.enable = true;
|
|
|
|
highlight-undo.enable = true;
|
|
|
|
indent-blankline.enable = true;
|
|
|
|
cellular-automaton.enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
statusline.lualine = {
|
|
|
|
enable = true;
|
|
|
|
theme = "gruvbox";
|
|
|
|
};
|
|
|
|
|
|
|
|
theme = {
|
|
|
|
enable = true;
|
|
|
|
name = "gruvbox";
|
|
|
|
style = "dark";
|
|
|
|
transparent = false;
|
|
|
|
};
|
|
|
|
|
|
|
|
binds = {
|
|
|
|
whichKey.enable = true;
|
|
|
|
cheatsheet.enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
git = {
|
|
|
|
enable = true;
|
|
|
|
gitsigns.enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
utility = {
|
|
|
|
surround.enable = true;
|
|
|
|
diffview-nvim.enable = true;
|
|
|
|
|
|
|
|
motion = {
|
|
|
|
hop.enable = true;
|
|
|
|
leap.enable = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
terminal.toggleterm = {
|
|
|
|
enable = true;
|
|
|
|
lazygit.enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
ui = {
|
|
|
|
borders.enable = true;
|
|
|
|
noice.enable = true;
|
|
|
|
colorizer.enable = true;
|
|
|
|
smartcolumn.enable = true;
|
|
|
|
fastaction.enable = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
];
|
|
|
|
};
|
2024-11-11 21:40:36 +01:00
|
|
|
in {
|
2025-01-18 17:17:48 +01:00
|
|
|
packages = {
|
|
|
|
formatter = treefmtWrapper;
|
|
|
|
inherit (neovimConfigured) neovim;
|
|
|
|
};
|
2024-11-11 21:40:36 +01:00
|
|
|
})
|