{ callPackage, wrapNeovim, neovim-unwrapped, vimPlugins, ... }:
let
lib = import ./lib.nix;
callPlugins = list: builtins.map (p: callPackage p { }) list;
plugins = callPlugins [
./syntax
./explorer
./theme
./lsp
];
basicConfig = builtins.readFile ./basic.lua;
in
wrapNeovim neovim-unwrapped {
withPython3 = false;
withNodeJs = false;
withRuby = false;
configure = {
customRC = lib.mkLuaRc ([ basicConfig ] ++ lib.extractAttrs "luaConfig" plugins);
packages.myVimPackages =
{ start = lib.extractAttrs "plugins" plugins; };
};
}