{pkgs, ...}: { programs.nixvim.plugins = { lualine.enable = true; oil.enable = true; nvim-surround.enable = true; treesitter = { enable = true; grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [ markdown # nix vim bash lua python json java rust cpp c css csv dockerfile diff gitignore git_config gitattributes make yaml toml typescript xml ]; }; # Autopairs nvim-autopairs = { enable = true; }; luasnip.enable = true; lazygit.enable = true; barbar.enable = true; rainbow-delimiters.enable = true; web-devicons.enable = true; telescope = { enable = true; extensions = { fzf-native = { enable = true; }; }; }; # Dashboard alpha = { enable = true; theme = "dashboard"; }; # File tree neo-tree = { enable = true; enableDiagnostics = false; enableGitStatus = true; enableModifiedMarkers = true; enableRefreshOnWrite = true; closeIfLastWindow = true; popupBorderStyle = "rounded"; # Type: null or one of “NC”, “double”, “none”, “rounded”, “shadow”, “single”, “solid” or raw lua code buffers = { bindToCwd = false; followCurrentFile = { enabled = true; }; }; window = { width = 40; height = 15; autoExpandWidth = false; mappings = { "" = "none"; }; }; }; # Todo comments todo-comments = { enable = true; settings.colors = { error = ["DiagnosticError" "ErrorMsg" "#DC2626"]; warning = ["DiagnosticWarn" "WarningMsg" "#FBBF24"]; info = ["DiagnosticInfo" "#2563EB"]; hint = ["DiagnosticHint" "#10B981"]; default = ["Identifier" "#7C3AED"]; test = ["Identifier" "#FF00FF"]; }; }; # Highlight word under cursor illuminate = { enable = true; underCursor = false; filetypesDenylist = [ "Outline" "TelescopePrompt" "alpha" "harpoon" "reason" ]; }; }; }