refactor(nixvim): use flake-parts module

A bit more tidy c:
This commit is contained in:
Jalil David Salamé Messina 2025-03-16 16:52:36 +01:00
parent addf563bfc
commit eacd1a0520
Signed by: jalil
GPG key ID: F016B9E770737A0B
4 changed files with 62 additions and 67 deletions

View file

@ -10,7 +10,7 @@ in
./docs.nix
./example-vm.nix
./nixos-modules.nix
./nvim.nix
./nixvim-modules.nix
./overlays.nix
./scripts.nix
];

View file

@ -9,22 +9,10 @@ let
in
{
flake = {
nixvimModules =
let
standalone = modules + "/nixvim/standalone.nix";
homeManager = {
imports = [
inputs.nixvim.homeManagerModules.nixvim
(modules + "/nixvim")
];
};
in
{
inherit standalone homeManager;
};
homeManagerModules =
let
defaultModules = [
inputs.nixvim.homeManagerModules.nixvim
self.nixvimModules.homeManager
(modules + "/hm")
];

View file

@ -0,0 +1,60 @@
{ self, inputs, ... }:
let
modules = ../modules;
in
{
imports = [ inputs.nixvim.flakeModules.default ];
nixvim = {
packages.enable = true;
checks.enable = false; # FIXME: borked due to nix-community/nixvim#3074
};
flake.nixvimModules = {
standalone = modules + "/nixvim/standalone.nix";
homeManager = modules + "/nixvim";
};
perSystem =
{ system, ... }:
let
nvimModule = extraConfig: {
inherit system;
modules = [
self.nixvimModules.standalone
{ performance.combinePlugins.enable = true; }
extraConfig
];
};
modules = {
nvim = nvimModule { };
# Smaller derivations
nvim-headless = nvimModule {
jhome.nvim.dev.enable = false;
jhome.nvim.reduceSize = true;
};
nvim-small = nvimModule {
jhome.nvim.dev.bundleLSPs = false;
};
nvim-no-ts = nvimModule {
jhome.nvim.dev.bundleGrammars = false;
};
nvim-no-lsps = nvimModule {
jhome.nvim.dev = {
bundleLSPs = false;
bundleGrammars = false;
};
};
};
in
{
checks = builtins.mapAttrs (
_name: module:
inputs.nixvim.lib.${system}.check.mkTestDerivationFromNixvimModule {
module.imports = module.modules;
}
) modules;
nixvimConfigurations = builtins.mapAttrs (_name: inputs.nixvim.lib.evalNixvim) modules;
};
}

View file

@ -1,53 +0,0 @@
{ inputs, ... }:
{
perSystem =
{ lib, system, ... }:
let
nixvimLib = inputs.nixvim.lib.${system};
nixvim = inputs.nixvim.legacyPackages.${system};
testNvimModule = nixvimLib.check.mkTestDerivationFromNixvimModule;
nvimModule = extraConfig: {
pkgs = inputs.unstable.legacyPackages.${system};
module = {
imports = [ ../modules/nixvim/standalone.nix ];
config = lib.mkMerge [
{ performance.combinePlugins.enable = true; }
extraConfig
];
};
};
moduleDev = nvimModule { };
moduleHeadless = nvimModule {
jhome.nvim.dev.enable = false;
jhome.nvim.reduceSize = true;
};
moduleNoLsp = nvimModule { jhome.nvim.dev.bundleLSPs = false; };
moduleNoTSGrammars = nvimModule { jhome.nvim.dev.bundleGrammars = false; };
moduleNoBundledBins = nvimModule {
jhome.nvim.dev = {
bundleLSPs = false;
bundleGrammars = false;
};
};
in
{
# Check standalone nvim build
checks = {
nvimDev = testNvimModule moduleDev;
nvimHeadless = testNvimModule moduleHeadless;
nvimNoLsp = testNvimModule moduleNoLsp;
nvimNoTSGrammars = testNvimModule moduleNoTSGrammars;
nvimNoBundledBins = testNvimModule moduleNoBundledBins;
};
# Nvim standalone module
packages = {
nvim = nixvim.makeNixvimWithModule moduleDev;
# Smaller derivations
nvim-headless = nixvim.makeNixvimWithModule moduleHeadless;
nvim-small = nixvim.makeNixvimWithModule moduleNoBundledBins;
nvim-no-ts = nixvim.makeNixvimWithModule moduleNoTSGrammars;
nvim-no-lsps = nixvim.makeNixvimWithModule moduleNoLsp;
};
};
}