{ 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; }; }; }