mirror of
https://github.com/traxys/Nixfiles.git
synced 2026-03-10 06:31:09 +01:00
79 lines
2.2 KiB
Nix
79 lines
2.2 KiB
Nix
{
|
|
inputs,
|
|
lib,
|
|
self,
|
|
...
|
|
}:
|
|
let
|
|
inputsMatching =
|
|
prefix:
|
|
lib.mapAttrs' (prefixedName: value: {
|
|
name =
|
|
builtins.substring (builtins.stringLength "${prefix}:") (builtins.stringLength prefixedName)
|
|
prefixedName;
|
|
inherit value;
|
|
}) (lib.filterAttrs (name: _: (builtins.match "${prefix}:.*" name) != null) inputs);
|
|
in
|
|
{
|
|
perSystem =
|
|
{
|
|
inputs',
|
|
self',
|
|
pkgs,
|
|
system,
|
|
...
|
|
}:
|
|
{
|
|
packages =
|
|
let
|
|
neovimPlugins =
|
|
final: prev:
|
|
{
|
|
vimPlugins = prev.vimPlugins.extend (
|
|
final': prev':
|
|
(lib.mapAttrs (
|
|
pname: src:
|
|
prev'."${pname}".overrideAttrs (old: {
|
|
version = src.shortRev;
|
|
inherit src;
|
|
})
|
|
) (inputsMatching "plugin"))
|
|
// (lib.mapAttrs (
|
|
pname: src:
|
|
prev.vimUtils.buildVimPlugin {
|
|
inherit pname src;
|
|
version = src.shortRev;
|
|
}
|
|
) (inputsMatching "new-plugin"))
|
|
// {
|
|
nvim-treesitter = prev'.nvim-treesitter.overrideAttrs (
|
|
prev.callPackage ./nvim-treesitter/override.nix { } final' prev'
|
|
);
|
|
}
|
|
);
|
|
}
|
|
// self'.packages;
|
|
neovimPkgs = pkgs.extend neovimPlugins;
|
|
in
|
|
{
|
|
neovimTraxys = inputs'.nixvim.legacyPackages.makeNixvimWithModule {
|
|
module = {
|
|
imports = [ ./default.nix ];
|
|
package = inputs'.neovim-flake.packages.neovim;
|
|
};
|
|
extraSpecialArgs = {
|
|
flake = self;
|
|
};
|
|
pkgs = neovimPkgs;
|
|
};
|
|
update-nvim-treesitter = neovimPkgs.callPackage ./nvim-treesitter {
|
|
upstream = inputs'.neovim-flake.packages.neovim;
|
|
};
|
|
};
|
|
|
|
checks.launch = inputs.nixvim.lib.${system}.check.mkTestDerivationFromNvim {
|
|
nvim = self'.packages.neovimTraxys;
|
|
name = "Neovim configuration";
|
|
};
|
|
};
|
|
}
|