diff --git a/wrappers/darwin.nix b/wrappers/darwin.nix index 3b0e249e..630fb787 100644 --- a/wrappers/darwin.nix +++ b/wrappers/darwin.nix @@ -28,7 +28,10 @@ in { config = mkIf cfg.enable (mkMerge [ { environment.systemPackages = - [cfg.finalPackage] + [ + cfg.finalPackage + cfg.printInitPackage + ] ++ (lib.optional cfg.enableMan self.packages.${pkgs.system}.man-docs); } { diff --git a/wrappers/hm.nix b/wrappers/hm.nix index 6f0fdecc..bf82c4b2 100644 --- a/wrappers/hm.nix +++ b/wrappers/hm.nix @@ -37,7 +37,10 @@ in { (mkMerge [ { home.packages = - [cfg.finalPackage] + [ + cfg.finalPackage + cfg.printInitPackage + ] ++ (lib.optional cfg.enableMan self.packages.${pkgs.system}.man-docs); } (mkIf (!cfg.wrapRc) { diff --git a/wrappers/modules/output.nix b/wrappers/modules/output.nix index 3628bb68..4874b3a7 100644 --- a/wrappers/modules/output.nix +++ b/wrappers/modules/output.nix @@ -61,12 +61,26 @@ in { readOnly = true; }; + initPath = mkOption { + type = types.str; + description = "The path to the init.lua file"; + readOnly = true; + visible = false; + }; + initContent = mkOption { type = types.str; description = "The content of the init.lua file"; readOnly = true; visible = false; }; + + printInitPackage = mkOption { + type = types.package; + description = "A tool to show the content of the generated init.lua file."; + readOnly = true; + visible = false; + }; }; config = let @@ -110,11 +124,14 @@ in { '' + config.content; + init = pkgs.writeText "init.lua" customRC; + initPath = toString init; + extraWrapperArgs = builtins.concatStringsSep " " ( (optional (config.extraPackages != []) ''--prefix PATH : "${makeBinPath config.extraPackages}"'') ++ (optional config.wrapRc - ''--add-flags -u --add-flags "${pkgs.writeText "init.lua" customRC}"'') + ''--add-flags -u --add-flags "${init}"'') ); wrappedNeovim = pkgs.wrapNeovimUnstable config.package (neovimConfig @@ -126,6 +143,16 @@ in { type = lib.mkForce "lua"; finalPackage = wrappedNeovim; initContent = customRC; + inherit initPath; + + printInitPackage = pkgs.writeShellApplication { + name = "nixvim-print-init"; + runtimeInputs = with pkgs; [stylua bat]; + text = '' + stylua - <"${initPath}" | bat --language=lua + ''; + }; + extraPlugins = if config.wrapRc then [config.filesPlugin] diff --git a/wrappers/nixos.nix b/wrappers/nixos.nix index 7f3bca17..da1ae80a 100644 --- a/wrappers/nixos.nix +++ b/wrappers/nixos.nix @@ -38,7 +38,10 @@ in { (mkMerge [ { environment.systemPackages = - [cfg.finalPackage] + [ + cfg.finalPackage + cfg.printInitPackage + ] ++ (lib.optional cfg.enableMan self.packages.${pkgs.system}.man-docs); } (mkIf (!cfg.wrapRc) { diff --git a/wrappers/standalone.nix b/wrappers/standalone.nix index 7c9fce19..ca4a47e5 100644 --- a/wrappers/standalone.nix +++ b/wrappers/standalone.nix @@ -33,7 +33,10 @@ in pkgs.symlinkJoin { name = "nixvim"; paths = - [config.finalPackage] + [ + config.finalPackage + config.printInitPackage + ] ++ pkgs.lib.optional config.enableMan self.packages.${pkgs.system}.man-docs; meta.mainProgram = "nvim"; }