{ config, lib, pkgs, ... }: with lib; let cfg = config.my.programs.nvim; in { imports = lib.my.listModulesRec ./plugins; options.my.programs.nvim.enable = mkEnableOption "nvim"; config = mkIf cfg.enable { home-manager.users.moritz = { home.packages = with pkgs; [ ( if config.my.programs.hyprland.enable then neovide-hyprland else neovide ) ]; programs.neovim = { enable = true; package = pkgs.neovim-nightly; vimAlias = true; vimdiffAlias = true; withNodeJs = true; withPython3 = true; extraPackages = with pkgs; [ alejandra black checkmake deadnix dotenv-linter fish isort jq nixd nixpkgs-fmt nodePackages.bash-language-server nodePackages.jsonlint ruff-lsp rustfmt shellcheck shfmt statix stylua sumneko-lua-language-server taplo typst typst-lsp yamlfmt yamllint ]; extraLuaConfig = readFile ./options.lua; lazy.enable = true; }; }; }; }