From dbcd3147087c5cb092401fa8aa199c14c6853f6f Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Thu, 30 Nov 2023 15:50:24 +0100 Subject: [PATCH] plugins: use LogLevel where possible --- plugins/filetrees/nvim-tree.nix | 6 +-- .../treesitter/rainbow-delimiters.nix | 22 ++++---- plugins/lsp/conform-nvim.nix | 9 ++-- plugins/utils/neorg.nix | 50 +++++++++---------- plugins/utils/notify.nix | 15 ++---- .../test-sources/plugins/lsp/conform-nvim.nix | 2 +- tests/test-sources/plugins/utils/notify.nix | 2 +- 7 files changed, 45 insertions(+), 61 deletions(-) diff --git a/plugins/filetrees/nvim-tree.nix b/plugins/filetrees/nvim-tree.nix index 3f10ac88..f2e75821 100644 --- a/plugins/filetrees/nvim-tree.nix +++ b/plugins/filetrees/nvim-tree.nix @@ -812,7 +812,7 @@ in { }; notify = { - threshold = helpers.defaultNullOpts.mkEnum ["error" "warning" "info" "debug"] "info" '' + threshold = helpers.defaultNullOpts.mkLogLevel "info" '' Specify minimum notification level, uses the values from |vim.log.levels| - `error`: hard errors e.g. failure to read from the file system. @@ -1010,9 +1010,7 @@ in { }; inherit tab; notify = with notify; { - threshold = - ifNonNull' cfg.notify.threshold - (helpers.mkRaw "vim.log.levels.${strings.toUpper notify.threshold}"); + inherit threshold; }; inherit ui; log = with log; { diff --git a/plugins/languages/treesitter/rainbow-delimiters.nix b/plugins/languages/treesitter/rainbow-delimiters.nix index 3931e815..62cb433e 100644 --- a/plugins/languages/treesitter/rainbow-delimiters.nix +++ b/plugins/languages/treesitter/rainbow-delimiters.nix @@ -136,15 +136,11 @@ with lib; { (see `|standard-path|`). ''; - level = - helpers.defaultNullOpts.mkEnum - ["debug" "error" "info" "trace" "warn" "off"] - "warn" - '' - Only messages equal to or above this value will be logged. - The default is to log warnings or above. - See `|log_levels|` for possible values. - ''; + level = helpers.defaultNullOpts.mkLogLevel "warn" '' + Only messages equal to or above this value will be logged. + The default is to log warnings or above. + See `|log_levels|` for possible values. + ''; }; }; @@ -210,10 +206,10 @@ with lib; { blacklist ; log = with log; { - inherit file; - level = - helpers.ifNonNull' level - (helpers.mkRaw "vim.log.levels.${strings.toUpper level}"); + inherit + file + level + ; }; } // cfg.extraOptions; diff --git a/plugins/lsp/conform-nvim.nix b/plugins/lsp/conform-nvim.nix index 9107f6e1..d7fd6fa9 100644 --- a/plugins/lsp/conform-nvim.nix +++ b/plugins/lsp/conform-nvim.nix @@ -85,10 +85,9 @@ in { This can also be a function that returns the table. ''; - logLevel = - helpers.defaultNullOpts.mkEnumFirstDefault - ["ERROR" "DEBUG" "INFO" "TRACE" "WARN" "OFF"] - "Set the log level. Use `:ConformInfo` to see the location of the log file."; + logLevel = helpers.defaultNullOpts.mkLogLevel "error" '' + Set the log level. Use `:ConformInfo` to see the location of the log file. + ''; notifyOnError = helpers.defaultNullOpts.mkBool true @@ -114,7 +113,7 @@ in { format_after_save = helpers.ifNonNull' formatAfterSave { lsp_fallback = formatAfterSave.lspFallback; }; - log_level = helpers.ifNonNull' logLevel (helpers.mkRaw "vim.log.levels.${logLevel}"); + log_level = logLevel; notify_on_error = notifyOnError; inherit formatters; } diff --git a/plugins/utils/neorg.nix b/plugins/utils/neorg.nix index 301ba4b6..eb0ab5c7 100644 --- a/plugins/utils/neorg.nix +++ b/plugins/utils/neorg.nix @@ -46,8 +46,6 @@ in level = 5; }; }; - - levelNames = attrNames modes; in { plugin = helpers.defaultNullOpts.mkStr "neorg" '' Name of the plugin. Prepended to log messages @@ -65,22 +63,22 @@ in Should write to a file ''; - level = helpers.defaultNullOpts.mkEnum levelNames "warn" '' + level = helpers.defaultNullOpts.mkEnum (attrNames modes) "warn" '' Any messages above this level will be logged ''; modes = 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}"; - }; - }) + (mode: defaults: + helpers.mkCompositeOption "Settings for mode ${mode}." { + hl = helpers.defaultNullOpts.mkStr defaults.hl '' + Highlight for mode ${mode}. + ''; + + level = helpers.defaultNullOpts.mkLogLevel defaults.level '' + Level for mode ${mode}. + ''; + }) modes; floatPrecision = helpers.defaultNullOpts.mkNullable types.float "0.01" '' @@ -119,18 +117,20 @@ in inherit level; modes = - mapAttrsToList - (mode: modeConfig: { - name = mode; - inherit (modeConfig) hl; - level = let - inherit (modeConfig) level; - in - if (isInt level) - then level - else helpers.mkRaw "vim.log.levels.${strings.toUpper level}"; - }) - modes; + filter (v: v != null) + ( + mapAttrsToList + (mode: modeConfig: + helpers.ifNonNull' modeConfig { + name = mode; + inherit + (modeConfig) + hl + level + ; + }) + modes + ); float_precision = floatPrecision; }; diff --git a/plugins/utils/notify.nix b/plugins/utils/notify.nix index 45c1f80b..51916abf 100644 --- a/plugins/utils/notify.nix +++ b/plugins/utils/notify.nix @@ -15,18 +15,9 @@ in { package = helpers.mkPackageOption "nvim-notify" pkgs.vimPlugins.nvim-notify; - level = - helpers.defaultNullOpts.mkNullable - ( - with types; - oneOf [ - ints.unsigned - helpers.rawType - str - ] - ) - ''{__raw = "vim.log.levels.INFO";}'' - "Minimum log level to display. See `vim.log.levels`."; + level = helpers.defaultNullOpts.mkLogLevel "info" '' + Minimum log level to display. See `vim.log.levels`. + ''; timeout = helpers.defaultNullOpts.mkUnsignedInt 5000 "Default timeout for notification."; diff --git a/tests/test-sources/plugins/lsp/conform-nvim.nix b/tests/test-sources/plugins/lsp/conform-nvim.nix index 87a2772e..ad733fa6 100644 --- a/tests/test-sources/plugins/lsp/conform-nvim.nix +++ b/tests/test-sources/plugins/lsp/conform-nvim.nix @@ -21,7 +21,7 @@ formatAfterSave = { lspFallback = true; }; - logLevel = "ERROR"; + logLevel = "error"; notifyOnError = true; formatters = { myFormatter = { diff --git a/tests/test-sources/plugins/utils/notify.nix b/tests/test-sources/plugins/utils/notify.nix index 3f8b9037..042ac42d 100644 --- a/tests/test-sources/plugins/utils/notify.nix +++ b/tests/test-sources/plugins/utils/notify.nix @@ -7,7 +7,7 @@ plugins.notify = { enable = true; - level.__raw = "vim.log.levels.INFO"; + level = "info"; timeout = 5000; maxWidth = null; maxHeight = null;