neovim/coc: fix loading CoC plugin

Specifically, refactored all places that use cfg.plugins to use a new
combined list that includes CoC if it's enabled.
This commit is contained in:
Sumner Evans 2022-03-17 19:59:46 -06:00
parent e01facc340
commit 6edcc270c5
No known key found for this signature in database
GPG Key ID: 8904527AB50022FD
1 changed files with 19 additions and 7 deletions

View File

@ -64,14 +64,21 @@ let
'' else
"";
allPlugins = cfg.plugins ++ optional cfg.coc.enable {
type = "viml";
plugin = pkgs.vimPlugins.coc-nvim;
config = cfg.coc.pluginConfig;
optional = false;
};
moduleConfigure = {
packages.home-manager = {
start = remove null (map
(x: if x ? plugin && x.optional == true then null else (x.plugin or x))
cfg.plugins);
allPlugins);
opt = remove null
(map (x: if x ? plugin && x.optional == true then x.plugin else null)
cfg.plugins);
allPlugins);
};
beforePlugins = "";
};
@ -328,6 +335,12 @@ in {
for options.
'';
};
pluginConfig = mkOption {
type = types.lines;
default = "";
description = "Script to configure CoC. Must be viml.";
};
};
};
};
@ -342,16 +355,15 @@ in {
plugin = x;
config = "";
optional = false;
}) cfg.plugins;
}) allPlugins;
suppressNotVimlConfig = p:
if p.type != "viml" then p // { config = ""; } else p;
neovimConfig = pkgs.neovimUtils.makeNeovimConfig {
inherit (cfg)
extraPython3Packages withPython3 withNodeJs withRuby viAlias vimAlias;
inherit (cfg) extraPython3Packages withPython3 withRuby viAlias vimAlias;
withNodeJs = cfg.withNodeJs or cfg.coc.enable;
configure = cfg.configure // moduleConfigure;
plugins = (map suppressNotVimlConfig pluginsNormalized)
++ optionals cfg.coc.enable [{ plugin = pkgs.vimPlugins.coc-nvim; }];
plugins = map suppressNotVimlConfig pluginsNormalized;
customRC = cfg.extraConfig;
};