-- User custom plugin configurations and overrides return { -- Disable Mason on NixOS (all LSPs/formatters/linters are managed declaratively via Nix) { "mason.nvim", enabled = false }, { "mason-lspconfig.nvim", enabled = false }, { "mason-nvim-dap.nvim", enabled = false }, -- Treesitter configuration tailored for NixOS { "nvim-treesitter/nvim-treesitter", opts = function(_, opts) -- Nix provides all precompiled grammars in ~/.config/nvim/parser and rtp. -- Clear LazyVim's default ensure_installed list to prevent compile triggers on startup. opts.ensure_installed = {} opts.auto_install = false opts.sync_install = false opts.highlight = { enable = true, additional_vim_regex_highlighting = false, } opts.indent = { enable = true } end, }, -- Example: Telescope / fzf configuration { "nvim-telescope/telescope.nvim", opts = { defaults = { layout_strategy = "horizontal", layout_config = { prompt_position = "top" }, sorting_strategy = "ascending", winblend = 0, }, }, }, -- Linting configuration (graceful fallback if linters are not yet in PATH) { "mfussenegger/nvim-lint", opts = function(_, opts) opts.linters_by_ft = opts.linters_by_ft or {} if vim.fn.executable("statix") == 0 then opts.linters_by_ft["nix"] = {} end end, }, }