nixos-combined-flake/overlays/neorg.nix

65 lines
2.0 KiB
Nix

{inputs,...}: final: prev:
let
inherit (inputs) norg norg-meta neorg neorg-telescope;
inherit (final.lib) attrValues elem filter filterAttrs isDerivation;
in
{
vimPlugins = prev.vimPlugins.extend (f: p: {
nvim-treesitter =
let
norgGrammars = {
tree-sitter-norg = norg.defaultPackage.${final.system};
tree-sitter-norg-meta = norg-meta.defaultPackage.${final.system};
};
builtGrammars = (filterAttrs (_: isDerivation) p.nvim-treesitter.builtGrammars) // norgGrammars;
allGrammars = attrValues builtGrammars;
withPlugins = grammarFn:
p.nvim-treesitter.withPlugins (
_:
let
plugins = grammarFn builtGrammars;
in
plugins ++ (filter (p: !(elem p plugins)) (attrValues norgGrammars))
);
withAllGrammars = withPlugins (_: allGrammars);
in
p.nvim-treesitter.overrideAttrs (a: {
passthru = a.passthru // {
inherit builtGrammars allGrammars withPlugins withAllGrammars;
grammarPlugins = a.passthru.grammarPlugins // {
norg = norgGrammars.tree-sitter-norg;
norg-meta = norgGrammars.tree-sitter-norg-meta;
};
};
});
lua-utils-nvim = final.vimUtils.buildVimPlugin {
inherit (prev.luaPackages.lua-utils-nvim) pname version src;
};
pathlib-nvim = final.vimUtils.buildVimPlugin {
inherit (prev.luaPackages.pathlib-nvim) pname version src;
};
neorg = final.vimUtils.buildVimPlugin {
pname = "neorg";
version = neorg.rev;
src = neorg;
dependencies = [
#(f.nvim-treesitter.withPlugins (_: [ ]))
f.lua-utils-nvim
f.nui-nvim
f.nvim-nio
f.pathlib-nvim
f.plenary-nvim
];
};
neorg-telescope = final.vimUtils.buildVimPlugin {
pname = "neorg-telescope";
version = neorg-telescope.rev;
src = neorg-telescope;
dependencies = [
f.telescope-nvim
f.neorg
];
};
});
}