{ config , lib , pkgs , ... }: with lib; let cfg = config.my.programs.vim; in { options.my.programs.vim = { enable = mkOption { default = true; type = types.bool; example = false; }; }; config = mkIf cfg.enable { home-manager.users.moritz.programs.neovim = { enable = true; vimAlias = true; vimdiffAlias = true; withNodeJs = true; withPython3 = true; extraLuaConfig = builtins.readFile ./init.lua; plugins = with pkgs.vimPlugins; [ catppuccin-nvim dashboard-nvim neogit noice-nvim nui-nvim # for noice-nvim nvim-treesitter.withAllGrammars nvim-web-devicons # for dashboard-nvim plenary-nvim # for telescope, neogit telescope-nvim which-key-nvim ]; }; }; }