From 7f0a4a3432f767b83ad04f7f2f06381156fe691c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=A9tan=20Lepage?= <33058747+GaetanLepage@users.noreply.github.com> Date: Sun, 26 Feb 2023 13:39:40 +0100 Subject: [PATCH] plugins/neorg: fix logger.modes option (#203) --- plugins/utils/neorg.nix | 59 ++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/plugins/utils/neorg.nix b/plugins/utils/neorg.nix index 20d12f47..cd9f6132 100644 --- a/plugins/utils/neorg.nix +++ b/plugins/utils/neorg.nix @@ -70,18 +70,23 @@ in ''; modes = - mapAttrs - (mode: defaults: { - hl = helpers.defaultNullOpts.mkStr defaults.hl '' - Highlight for mode ${mode} - ''; - level = - helpers.defaultNullOpts.mkNullable - (with types; either int (enum levelNames)) - defaults.level - "Level for mode ${mode}"; + helpers.mkNullOrOption + (types.submodule { + options = + mapAttrs + (mode: defaults: { + hl = helpers.defaultNullOpts.mkStr defaults.hl '' + Highlight for mode ${mode} + ''; + level = mkOption { + type = with types; either int (enum levelNames); + default = defaults.level; + description = "Level for mode ${mode}"; + }; + }) + modes; }) - modes; + "Level configuration"; floatPrecision = helpers.defaultNullOpts.mkNullable types.float "0.01" '' Can limit the number of decimals displayed for floats @@ -120,23 +125,21 @@ in level = cfg.logger.level; modes = - attrsets.mapAttrsToList - (mode: modeConfig: { - name = mode; - inherit (modeConfig) hl; - level = let - level = modeConfig.level; - in - if isNull level - then null - else - ( - if (isInt level) - then level - else helpers.mkRaw "vim.log.levels.${strings.toUpper level}" - ); - }) - cfg.logger.modes; + if (isNull cfg.logger.modes) + then null + else + attrsets.mapAttrsToList + (mode: modeConfig: { + name = mode; + inherit (modeConfig) hl; + level = let + level = modeConfig.level; + in + if (isInt level) + then level + else helpers.mkRaw "vim.log.levels.${strings.toUpper level}"; + }) + cfg.logger.modes; float_precision = cfg.logger.floatPrecision; };