nixos: use proper submodule type for settings

This commit is contained in:
Ching Pei Yang 2024-12-22 23:05:06 +01:00
parent da26ea78b2
commit 6dc07ba5c1
No known key found for this signature in database
GPG key ID: B3841364253DC4C8
2 changed files with 14 additions and 10 deletions

View file

@ -42,7 +42,7 @@
};
nixosModules = {
nvf = import ./flake/modules/nixos.nix self.packages lib;
nvf = import ./flake/modules/nixos.nix self.packages lib inputs;
default = self.nixosModules.nvf;
neovim-flake =
lib.warn ''

View file

@ -1,5 +1,5 @@
# NixOS module
packages: lib: {
packages: lib: inputs: {
config,
pkgs,
...
@ -8,15 +8,19 @@ packages: lib: {
inherit (lib.modules) mkIf mkOverride mkAliasOptionModule;
inherit (lib.lists) optional;
inherit (lib.options) mkOption mkEnableOption literalExpression;
inherit (lib.types) attrsOf anything bool;
inherit (lib.nvim) neovimConfiguration;
inherit (lib.nvim.types) anythingConcatLists;
inherit (lib.types) anything bool submoduleWith;
cfg = config.programs.nvf;
neovimConfigured = neovimConfiguration {
inherit pkgs;
modules = [cfg.settings];
nvfModule = submoduleWith {
description = "Nvf module";
class = "nvf";
specialArgs = {
inherit pkgs lib inputs;
};
modules = [
{imports = import ../../modules/modules.nix {inherit pkgs lib;};}
];
};
in {
imports = [
@ -55,7 +59,7 @@ in {
};
settings = mkOption {
type = attrsOf anythingConcatLists;
type = nvfModule;
default = {};
description = "Attribute set of nvf preferences.";
example = literalExpression ''
@ -78,7 +82,7 @@ in {
};
config = mkIf cfg.enable {
programs.nvf.finalPackage = neovimConfigured.neovim;
programs.nvf.finalPackage = config.programs.nvf.settings.vim.build.finalPackage;
environment = {
variables.EDITOR = mkIf cfg.defaultEditor (mkOverride 900 "nvim");