wrappers: add nixvim-print-init package

This commit is contained in:
Gaetan Lepage 2023-12-07 13:40:40 +01:00 committed by Gaétan Lepage
parent 032f697da6
commit 45d788bdd9
5 changed files with 44 additions and 5 deletions

View file

@ -28,7 +28,10 @@ in {
config = mkIf cfg.enable (mkMerge [ config = mkIf cfg.enable (mkMerge [
{ {
environment.systemPackages = environment.systemPackages =
[cfg.finalPackage] [
cfg.finalPackage
cfg.printInitPackage
]
++ (lib.optional cfg.enableMan self.packages.${pkgs.system}.man-docs); ++ (lib.optional cfg.enableMan self.packages.${pkgs.system}.man-docs);
} }
{ {

View file

@ -37,7 +37,10 @@ in {
(mkMerge [ (mkMerge [
{ {
home.packages = home.packages =
[cfg.finalPackage] [
cfg.finalPackage
cfg.printInitPackage
]
++ (lib.optional cfg.enableMan self.packages.${pkgs.system}.man-docs); ++ (lib.optional cfg.enableMan self.packages.${pkgs.system}.man-docs);
} }
(mkIf (!cfg.wrapRc) { (mkIf (!cfg.wrapRc) {

View file

@ -61,12 +61,26 @@ in {
readOnly = true; readOnly = true;
}; };
initPath = mkOption {
type = types.str;
description = "The path to the init.lua file";
readOnly = true;
visible = false;
};
initContent = mkOption { initContent = mkOption {
type = types.str; type = types.str;
description = "The content of the init.lua file"; description = "The content of the init.lua file";
readOnly = true; readOnly = true;
visible = false; 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 config = let
@ -110,11 +124,14 @@ in {
'' ''
+ config.content; + config.content;
init = pkgs.writeText "init.lua" customRC;
initPath = toString init;
extraWrapperArgs = builtins.concatStringsSep " " ( extraWrapperArgs = builtins.concatStringsSep " " (
(optional (config.extraPackages != []) (optional (config.extraPackages != [])
''--prefix PATH : "${makeBinPath config.extraPackages}"'') ''--prefix PATH : "${makeBinPath config.extraPackages}"'')
++ (optional config.wrapRc ++ (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 wrappedNeovim = pkgs.wrapNeovimUnstable config.package (neovimConfig
@ -126,6 +143,16 @@ in {
type = lib.mkForce "lua"; type = lib.mkForce "lua";
finalPackage = wrappedNeovim; finalPackage = wrappedNeovim;
initContent = customRC; initContent = customRC;
inherit initPath;
printInitPackage = pkgs.writeShellApplication {
name = "nixvim-print-init";
runtimeInputs = with pkgs; [stylua bat];
text = ''
stylua - <"${initPath}" | bat --language=lua
'';
};
extraPlugins = extraPlugins =
if config.wrapRc if config.wrapRc
then [config.filesPlugin] then [config.filesPlugin]

View file

@ -38,7 +38,10 @@ in {
(mkMerge [ (mkMerge [
{ {
environment.systemPackages = environment.systemPackages =
[cfg.finalPackage] [
cfg.finalPackage
cfg.printInitPackage
]
++ (lib.optional cfg.enableMan self.packages.${pkgs.system}.man-docs); ++ (lib.optional cfg.enableMan self.packages.${pkgs.system}.man-docs);
} }
(mkIf (!cfg.wrapRc) { (mkIf (!cfg.wrapRc) {

View file

@ -33,7 +33,10 @@ in
pkgs.symlinkJoin { pkgs.symlinkJoin {
name = "nixvim"; name = "nixvim";
paths = paths =
[config.finalPackage] [
config.finalPackage
config.printInitPackage
]
++ pkgs.lib.optional config.enableMan self.packages.${pkgs.system}.man-docs; ++ pkgs.lib.optional config.enableMan self.packages.${pkgs.system}.man-docs;
meta.mainProgram = "nvim"; meta.mainProgram = "nvim";
} }