{ config ? { } , pkgs ? import { } , nix2lua ? import }: let inherit (pkgs.lib) evalModules filter concatMapStringsSep showWarnings; extendedLib = import ./lib { inherit (pkgs) lib; }; allModules = import ./module-list.nix { inherit pkgs; }; rawModule = evalModules { modules = [ config ] ++ allModules; specialArgs = { inherit pkgs; lib = extendedLib; nix2lua = nix2lua.lib; }; }; failedAssertions = map (x: x.message) (filter (x: !x.assertion) rawModule.config.assertions); module = if failedAssertions != [ ] then throw "\nFailed assertions:\n${concatMapStringsSep "\n" (x: "- ${x}") failedAssertions}" else showWarnings rawModule.config.warnings rawModule; in { inherit (module.config.build) neovim; inherit (module) config options; inherit pkgs; }