diff --git a/home-manager/common/software/cli/neovim.nix b/home-manager/common/software/cli/neovim.nix index 11b9863d..efb7bf6e 100644 --- a/home-manager/common/software/cli/neovim.nix +++ b/home-manager/common/software/cli/neovim.nix @@ -28,4 +28,68 @@ source = "${pkgs.vimPlugins.nvchad}/"; target = "./nvim"; }; + + xdg.configFile."nvim-custom-plugins" = { + enable = true; + target = "./nvim/lua/custom/plugins.lua"; + text = '' +local overrides = require("custom.configs.overrides") + +---@type NvPluginSpec[] +local plugins = { + + -- Override plugin definition options + + { + "neovim/nvim-lspconfig", + dependencies = { + -- format & linting + { + "jose-elias-alvarez/null-ls.nvim", + config = function() + require "custom.configs.null-ls" + end, + }, + }, + config = function() + require "plugins.configs.lspconfig" + require "custom.configs.lspconfig" + end, -- Override to setup mason-lspconfig + }, + + -- override plugin configs + { + "williamboman/mason.nvim", + opts = overrides.mason + }, + + { + "nvim-treesitter/nvim-treesitter", + opts = overrides.treesitter, + }, + + { + "nvim-tree/nvim-tree.lua", + opts = overrides.nvimtree, + }, + + -- Install a plugin + { + "max397574/better-escape.nvim", + event = "InsertEnter", + config = function() + require("better_escape").setup() + end, + }, + + -- vim-fugitive for integrated Git + { + "tpope/vim-fugitive", + event = "VeryLazy", + } +} + +return plugins + ''; + }; }