diff --git a/flake-modules/default.nix b/flake-modules/default.nix index 050721e..d7b79eb 100644 --- a/flake-modules/default.nix +++ b/flake-modules/default.nix @@ -10,7 +10,7 @@ in ./docs.nix ./example-vm.nix ./nixos-modules.nix - ./nvim.nix + ./nixvim-modules.nix ./overlays.nix ./scripts.nix ]; diff --git a/flake-modules/nixos-modules.nix b/flake-modules/nixos-modules.nix index 3606a3f..c0acb54 100644 --- a/flake-modules/nixos-modules.nix +++ b/flake-modules/nixos-modules.nix @@ -9,22 +9,10 @@ let in { flake = { - nixvimModules = - let - standalone = modules + "/nixvim/standalone.nix"; - homeManager = { - imports = [ - inputs.nixvim.homeManagerModules.nixvim - (modules + "/nixvim") - ]; - }; - in - { - inherit standalone homeManager; - }; homeManagerModules = let defaultModules = [ + inputs.nixvim.homeManagerModules.nixvim self.nixvimModules.homeManager (modules + "/hm") ]; diff --git a/flake-modules/nixvim-modules.nix b/flake-modules/nixvim-modules.nix new file mode 100644 index 0000000..9841d46 --- /dev/null +++ b/flake-modules/nixvim-modules.nix @@ -0,0 +1,60 @@ +{ self, inputs, ... }: +let + modules = ../modules; +in +{ + imports = [ inputs.nixvim.flakeModules.default ]; + + nixvim = { + packages.enable = true; + checks.enable = false; # FIXME: borked due to nix-community/nixvim#3074 + }; + + flake.nixvimModules = { + standalone = modules + "/nixvim/standalone.nix"; + homeManager = modules + "/nixvim"; + }; + + perSystem = + { system, ... }: + let + nvimModule = extraConfig: { + inherit system; + modules = [ + self.nixvimModules.standalone + { performance.combinePlugins.enable = true; } + extraConfig + ]; + }; + modules = { + nvim = nvimModule { }; + # Smaller derivations + nvim-headless = nvimModule { + jhome.nvim.dev.enable = false; + jhome.nvim.reduceSize = true; + }; + nvim-small = nvimModule { + jhome.nvim.dev.bundleLSPs = false; + }; + nvim-no-ts = nvimModule { + jhome.nvim.dev.bundleGrammars = false; + }; + nvim-no-lsps = nvimModule { + jhome.nvim.dev = { + bundleLSPs = false; + bundleGrammars = false; + }; + }; + }; + in + { + checks = builtins.mapAttrs ( + _name: module: + inputs.nixvim.lib.${system}.check.mkTestDerivationFromNixvimModule { + module.imports = module.modules; + } + ) modules; + + nixvimConfigurations = builtins.mapAttrs (_name: inputs.nixvim.lib.evalNixvim) modules; + }; +} diff --git a/flake-modules/nvim.nix b/flake-modules/nvim.nix deleted file mode 100644 index f62c7ff..0000000 --- a/flake-modules/nvim.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ inputs, ... }: -{ - perSystem = - { lib, system, ... }: - let - nixvimLib = inputs.nixvim.lib.${system}; - nixvim = inputs.nixvim.legacyPackages.${system}; - testNvimModule = nixvimLib.check.mkTestDerivationFromNixvimModule; - nvimModule = extraConfig: { - pkgs = inputs.unstable.legacyPackages.${system}; - module = { - imports = [ ../modules/nixvim/standalone.nix ]; - config = lib.mkMerge [ - { performance.combinePlugins.enable = true; } - extraConfig - ]; - }; - }; - moduleDev = nvimModule { }; - moduleHeadless = nvimModule { - jhome.nvim.dev.enable = false; - jhome.nvim.reduceSize = true; - }; - moduleNoLsp = nvimModule { jhome.nvim.dev.bundleLSPs = false; }; - moduleNoTSGrammars = nvimModule { jhome.nvim.dev.bundleGrammars = false; }; - moduleNoBundledBins = nvimModule { - jhome.nvim.dev = { - bundleLSPs = false; - bundleGrammars = false; - }; - }; - in - { - # Check standalone nvim build - checks = { - nvimDev = testNvimModule moduleDev; - nvimHeadless = testNvimModule moduleHeadless; - nvimNoLsp = testNvimModule moduleNoLsp; - nvimNoTSGrammars = testNvimModule moduleNoTSGrammars; - nvimNoBundledBins = testNvimModule moduleNoBundledBins; - }; - - # Nvim standalone module - packages = { - nvim = nixvim.makeNixvimWithModule moduleDev; - # Smaller derivations - nvim-headless = nixvim.makeNixvimWithModule moduleHeadless; - nvim-small = nixvim.makeNixvimWithModule moduleNoBundledBins; - nvim-no-ts = nixvim.makeNixvimWithModule moduleNoTSGrammars; - nvim-no-lsps = nixvim.makeNixvimWithModule moduleNoLsp; - }; - }; -}