mirror of
https://github.com/nix-community/home-manager
synced 2024-11-27 05:29:46 +01:00
neovim: mark plugins as optional (possibly) (#1559)
can be loaded with packadd!
This commit is contained in:
parent
e6a58a7e71
commit
9d775bad07
1 changed files with 18 additions and 6 deletions
|
@ -24,15 +24,20 @@ let
|
|||
|
||||
pluginWithConfigType = types.submodule {
|
||||
options = {
|
||||
plugin = mkOption {
|
||||
type = types.package;
|
||||
description = "vim plugin";
|
||||
};
|
||||
config = mkOption {
|
||||
type = types.lines;
|
||||
description = "vimscript for this plugin to be placed in init.vim";
|
||||
default = "";
|
||||
};
|
||||
|
||||
optional = mkEnableOption "optional" // {
|
||||
description = "Don't load by default (load with :packadd)";
|
||||
};
|
||||
|
||||
plugin = mkOption {
|
||||
type = types.package;
|
||||
description = "vim plugin";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -49,8 +54,15 @@ let
|
|||
|| (lib.filter (hasAttr "config") cfg.plugins) != [ ]) {
|
||||
customRC = cfg.extraConfig
|
||||
+ pkgs.lib.concatMapStrings pluginConfig cfg.plugins;
|
||||
} // optionalAttrs (cfg.plugins != [ ]) {
|
||||
packages.home-manager.start = map (x: x.plugin or x) cfg.plugins;
|
||||
|
||||
packages.home-manager = {
|
||||
start = filter (f: f != null) (map (x:
|
||||
if x ? plugin && x.optional == true then null else (x.plugin or x))
|
||||
cfg.plugins);
|
||||
opt = filter (f: f != null)
|
||||
(map (x: if x ? plugin && x.optional == true then x.plugin else null)
|
||||
cfg.plugins);
|
||||
};
|
||||
};
|
||||
extraMakeWrapperArgs = lib.optionalString (cfg.extraPackages != [ ])
|
||||
''--prefix PATH : "${lib.makeBinPath cfg.extraPackages}"'';
|
||||
|
|
Loading…
Reference in a new issue