mirror of
https://github.com/nix-community/home-manager.git
synced 2024-12-14 11:57:55 +00:00
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:
parent
a4b0a3faa4
commit
590da80ceb
1 changed files with 19 additions and 7 deletions
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue