mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-20 16:15:43 +02:00
modules/output: move symlinkJoin
to build.package
This commit is contained in:
parent
731699a24c
commit
00586f8f1b
7 changed files with 62 additions and 51 deletions
|
@ -113,6 +113,15 @@ in
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nvimPackage = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
description = ''
|
||||||
|
Wrapped Neovim (without man-docs, printInitPackage, etc).
|
||||||
|
'';
|
||||||
|
readOnly = true;
|
||||||
|
internal = true;
|
||||||
|
};
|
||||||
|
|
||||||
initFile = mkOption {
|
initFile = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
description = ''
|
description = ''
|
||||||
|
@ -310,10 +319,10 @@ in
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
wrappedNeovim' = pkgs.wrapNeovimUnstable package neovimConfig;
|
wrappedNeovim = pkgs.wrapNeovimUnstable package neovimConfig;
|
||||||
|
|
||||||
customRC = helpers.concatNonEmptyLines [
|
customRC = helpers.concatNonEmptyLines [
|
||||||
(helpers.wrapVimscriptForLua wrappedNeovim'.initRc)
|
(helpers.wrapVimscriptForLua wrappedNeovim.initRc)
|
||||||
config.content
|
config.content
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -356,20 +365,33 @@ in
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
config.package;
|
config.package;
|
||||||
|
|
||||||
wrappedNeovim = wrappedNeovim'.override (prev: {
|
|
||||||
wrapperArgs =
|
|
||||||
(if lib.isString prev.wrapperArgs then prev.wrapperArgs else lib.escapeShellArgs prev.wrapperArgs)
|
|
||||||
+ " "
|
|
||||||
+ extraWrapperArgs;
|
|
||||||
wrapRc = false;
|
|
||||||
});
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
build = {
|
build = {
|
||||||
package = config.build.packageUnchecked;
|
|
||||||
packageUnchecked = wrappedNeovim;
|
|
||||||
inherit initFile initSource;
|
inherit initFile initSource;
|
||||||
|
package = config.build.packageUnchecked;
|
||||||
|
|
||||||
|
nvimPackage = wrappedNeovim.override (prev: {
|
||||||
|
wrapperArgs =
|
||||||
|
(if lib.isString prev.wrapperArgs then prev.wrapperArgs else lib.escapeShellArgs prev.wrapperArgs)
|
||||||
|
+ " "
|
||||||
|
+ extraWrapperArgs;
|
||||||
|
wrapRc = false;
|
||||||
|
});
|
||||||
|
|
||||||
|
packageUnchecked = pkgs.symlinkJoin {
|
||||||
|
name = "nixvim";
|
||||||
|
paths =
|
||||||
|
with config.build;
|
||||||
|
[
|
||||||
|
nvimPackage
|
||||||
|
printInitPackage
|
||||||
|
]
|
||||||
|
++ lib.optionals config.enableMan [
|
||||||
|
manDocsPackage
|
||||||
|
];
|
||||||
|
meta.mainProgram = "nvim";
|
||||||
|
};
|
||||||
|
|
||||||
printInitPackage = pkgs.writeShellApplication {
|
printInitPackage = pkgs.writeShellApplication {
|
||||||
name = "nixvim-print-init";
|
name = "nixvim-print-init";
|
||||||
|
|
|
@ -296,7 +296,7 @@ in
|
||||||
cfg.runCommand cfg.name
|
cfg.runCommand cfg.name
|
||||||
{
|
{
|
||||||
nativeBuildInputs = lib.optionals cfg.buildNixvim [
|
nativeBuildInputs = lib.optionals cfg.buildNixvim [
|
||||||
config.build.packageUnchecked
|
config.build.nvimPackage
|
||||||
];
|
];
|
||||||
|
|
||||||
inherit (failedExpectations) warnings assertions;
|
inherit (failedExpectations) warnings assertions;
|
||||||
|
|
|
@ -33,7 +33,7 @@ in
|
||||||
'';
|
'';
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = pluginCount config.build.packageUnchecked config.build.extraFiles "start" == 1;
|
assertion = pluginCount config.build.nvimPackage config.build.extraFiles "start" == 1;
|
||||||
message = "More than one plugin is defined in packpathDirs, expected one plugin pack.";
|
message = "More than one plugin is defined in packpathDirs, expected one plugin pack.";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
@ -50,7 +50,7 @@ in
|
||||||
];
|
];
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = pluginCount config.build.packageUnchecked config.build.extraFiles "start" >= 2;
|
assertion = pluginCount config.build.nvimPackage config.build.extraFiles "start" >= 2;
|
||||||
message = "Only one plugin is defined in packpathDirs, expected at least two.";
|
message = "Only one plugin is defined in packpathDirs, expected at least two.";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
@ -79,7 +79,7 @@ in
|
||||||
'';
|
'';
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = pluginCount config.build.packageUnchecked config.build.extraFiles "start" == 1;
|
assertion = pluginCount config.build.nvimPackage config.build.extraFiles "start" == 1;
|
||||||
message = "More than one plugin is defined in packpathDirs.";
|
message = "More than one plugin is defined in packpathDirs.";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
@ -107,7 +107,7 @@ in
|
||||||
'';
|
'';
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = pluginCount config.build.packageUnchecked config.build.extraFiles "start" == 1;
|
assertion = pluginCount config.build.nvimPackage config.build.extraFiles "start" == 1;
|
||||||
message = "More than one plugin is defined in packpathDirs.";
|
message = "More than one plugin is defined in packpathDirs.";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
@ -134,7 +134,7 @@ in
|
||||||
'';
|
'';
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = pluginCount config.build.packageUnchecked config.build.extraFiles "start" == 1;
|
assertion = pluginCount config.build.nvimPackage config.build.extraFiles "start" == 1;
|
||||||
message = "More than one plugin is defined in packpathDirs.";
|
message = "More than one plugin is defined in packpathDirs.";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
@ -188,11 +188,11 @@ in
|
||||||
'';
|
'';
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = pluginCount config.build.packageUnchecked config.build.extraFiles "start" == 1;
|
assertion = pluginCount config.build.nvimPackage config.build.extraFiles "start" == 1;
|
||||||
message = "More than one start plugin is defined in packpathDirs";
|
message = "More than one start plugin is defined in packpathDirs";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
assertion = pluginCount config.build.packageUnchecked config.build.extraFiles "opt" == 2;
|
assertion = pluginCount config.build.nvimPackage config.build.extraFiles "opt" == 2;
|
||||||
message = "Less than two opt plugins are defined in packpathDirs";
|
message = "Less than two opt plugins are defined in packpathDirs";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
@ -235,7 +235,7 @@ in
|
||||||
'';
|
'';
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = pluginCount config.build.packageUnchecked config.build.extraFiles "start" == 1;
|
assertion = pluginCount config.build.nvimPackage config.build.extraFiles "start" == 1;
|
||||||
message = "More than one start plugin is defined in packpathDirs";
|
message = "More than one start plugin is defined in packpathDirs";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
@ -305,7 +305,7 @@ in
|
||||||
'';
|
'';
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = pluginCount config.build.packageUnchecked config.build.extraFiles "start" == 1;
|
assertion = pluginCount config.build.nvimPackage config.build.extraFiles "start" == 1;
|
||||||
message = "More than one start plugin is defined in packpathDirs";
|
message = "More than one start plugin is defined in packpathDirs";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
@ -373,7 +373,7 @@ in
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
# plugin-pack, nvim-treesitter, nvim-lspconfig, telescope-nvim, nvim-cmp
|
# plugin-pack, nvim-treesitter, nvim-lspconfig, telescope-nvim, nvim-cmp
|
||||||
assertion = pluginCount config.build.packageUnchecked config.build.extraFiles "start" == 5;
|
assertion = pluginCount config.build.nvimPackage config.build.extraFiles "start" == 5;
|
||||||
message = "Wrong number of plugins in packpathDirs";
|
message = "Wrong number of plugins in packpathDirs";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
|
@ -26,7 +26,6 @@ in
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
cfg.build.package
|
cfg.build.package
|
||||||
cfg.build.printInitPackage
|
];
|
||||||
] ++ lib.optional cfg.enableMan cfg.build.manDocsPackage;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,8 +34,7 @@ in
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
cfg.build.package
|
cfg.build.package
|
||||||
cfg.build.printInitPackage
|
];
|
||||||
] ++ lib.optional cfg.enableMan cfg.build.manDocsPackage;
|
|
||||||
|
|
||||||
home.sessionVariables = mkIf cfg.defaultEditor { EDITOR = "nvim"; };
|
home.sessionVariables = mkIf cfg.defaultEditor { EDITOR = "nvim"; };
|
||||||
|
|
||||||
|
|
|
@ -35,8 +35,7 @@ in
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
cfg.build.package
|
cfg.build.package
|
||||||
cfg.build.printInitPackage
|
];
|
||||||
] ++ lib.optional cfg.enableMan cfg.build.manDocsPackage;
|
|
||||||
|
|
||||||
environment.variables = {
|
environment.variables = {
|
||||||
VIM = mkIf (!cfg.wrapRc) "/etc/nvim";
|
VIM = mkIf (!cfg.wrapRc) "/etc/nvim";
|
||||||
|
|
|
@ -39,28 +39,20 @@ let
|
||||||
];
|
];
|
||||||
inherit extraSpecialArgs;
|
inherit extraSpecialArgs;
|
||||||
};
|
};
|
||||||
inherit (nixvimConfig.config) enableMan build;
|
|
||||||
inherit (nixvimConfig._module.args.pkgs) symlinkJoin;
|
|
||||||
in
|
in
|
||||||
(symlinkJoin {
|
nixvimConfig.config.build.package.overrideAttrs (old: {
|
||||||
name = "nixvim";
|
passthru = old.passthru or { } // rec {
|
||||||
paths = [
|
inherit (nixvimConfig) config options;
|
||||||
build.package
|
extend =
|
||||||
build.printInitPackage
|
extension:
|
||||||
] ++ lib.optional enableMan build.manDocsPackage;
|
mkNvim {
|
||||||
meta.mainProgram = "nvim";
|
imports = [
|
||||||
})
|
mod
|
||||||
// rec {
|
extension
|
||||||
inherit (nixvimConfig) config options;
|
];
|
||||||
extend =
|
};
|
||||||
extension:
|
nixvimExtend = lib.warn "<nixvim>.nixvimExtend has been renamed to <nixvim>.extend" extend;
|
||||||
mkNvim {
|
};
|
||||||
imports = [
|
});
|
||||||
mod
|
|
||||||
extension
|
|
||||||
];
|
|
||||||
};
|
|
||||||
nixvimExtend = lib.warn "<nixvim>.nixvimExtend has been renamed to <nixvim>.extend" extend;
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
mkNvim module
|
mkNvim module
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue