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