neovim/coc: fix loading CoC plugin (#2801)

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 20:43:03 -06:00 committed by GitHub
parent a4b0a3faa4
commit 590da80ceb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

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