mirror of
https://github.com/zoriya/flake.git
synced 2026-06-02 02:35:46 +00:00
Fix automatic dependency retrival
This commit is contained in:
@@ -111,7 +111,7 @@
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
in rec {
|
||||
default = nvim;
|
||||
nvim = import ./nvim (inputs // { inherit pkgs; });
|
||||
nvim = import ./nvim (inputs // { inherit pkgs; lib = nixpkgs.lib; });
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
+37
-25
@@ -18,48 +18,60 @@
|
||||
withNodeJs ? false,
|
||||
withSqlite ? false,
|
||||
}: let
|
||||
normalize = optional: p: let
|
||||
defaultPlugin = {
|
||||
plugin = null;
|
||||
config = null;
|
||||
inherit optional;
|
||||
};
|
||||
in
|
||||
defaultPlugin
|
||||
// (
|
||||
if (p ? plugin)
|
||||
then p
|
||||
else {plugin = p;}
|
||||
);
|
||||
|
||||
builder = (import ./bytecompile.nix) {inherit pkgs lib;};
|
||||
pack = (import ./pack.nix) {inherit pkgs lib;};
|
||||
|
||||
nvim = builder.byteCompileVim package;
|
||||
|
||||
removeDependencies = p: p // {plugin = p.plugin.overrideAttrs (prev: prev // {dependencies = [];});};
|
||||
pluginPack = let
|
||||
normalize = optional: p: let
|
||||
defaultPlugin = {
|
||||
plugin = null;
|
||||
config = null;
|
||||
inherit optional;
|
||||
};
|
||||
in
|
||||
defaultPlugin
|
||||
// (
|
||||
if (p ? plugin)
|
||||
then p
|
||||
else {plugin = p;}
|
||||
);
|
||||
|
||||
start = map (p: lib.pipe p [(normalize false) removeDependencies builder.byteCompile]) plugins.start;
|
||||
opts = map (p: lib.pipe p [(normalize true) removeDependencies builder.byteCompile]) plugins.opts;
|
||||
startPacked = pack.packPlugins start;
|
||||
removeDependencies = p: p // {plugin = removeAttrs p.plugin ["dependencies"];};
|
||||
|
||||
pluginPack = lib.pipe ([startPacked] ++ opts) [
|
||||
pkgs.neovimUtils.normalizedPluginsToVimPackage
|
||||
(p: {packages = p;})
|
||||
pkgs.neovimUtils.packDir
|
||||
];
|
||||
preparePlugin = p:
|
||||
lib.pipe p [
|
||||
removeDependencies
|
||||
builder.byteCompile
|
||||
];
|
||||
|
||||
withDeps = p: [p] ++ builtins.concatMap withDeps (map (normalize false) (p.plugin.dependencies or []));
|
||||
|
||||
preparePlugins = ps: map preparePlugin (lib.unique (builtins.concatMap withDeps ps));
|
||||
|
||||
allPlugs = (map (normalize false) plugins.start) ++ (map (normalize true) plugins.opts);
|
||||
partitioned = builtins.partition (p: p.optional) (preparePlugins allPlugs);
|
||||
start = [(pack.packPlugins partitioned.wrong)];
|
||||
opts = partitioned.right;
|
||||
in
|
||||
lib.pipe (start ++ opts) [
|
||||
pkgs.neovimUtils.normalizedPluginsToVimPackage
|
||||
(p: {packages = p;})
|
||||
pkgs.neovimUtils.packDir
|
||||
];
|
||||
|
||||
initLua =
|
||||
# lua
|
||||
''
|
||||
vim.opt.rtp = {
|
||||
"${config}",
|
||||
"${pluginPack}",
|
||||
"${pluginPack}/pack/packages/start/vimplugin-plugin-pack",
|
||||
vim.env.VIMRUNTIME,
|
||||
"${config}/after",
|
||||
}
|
||||
vim.opt.packpath = {
|
||||
"${pluginPack}",
|
||||
"${pluginPack}/pack/packages/opts",
|
||||
vim.env.VIMRUNTIME,
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user