From e122f465a96a00e3960435387e9a42804fba1397 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Thu, 29 Aug 2024 09:41:26 -0500 Subject: [PATCH] plugins/fzf-lua: use iconsPackage --- plugins/utils/fzf-lua.nix | 67 +++++++++++++------- tests/test-sources/plugins/utils/fzf-lua.nix | 7 ++ 2 files changed, 52 insertions(+), 22 deletions(-) diff --git a/plugins/utils/fzf-lua.nix b/plugins/utils/fzf-lua.nix index 3f290176..a88aea6d 100644 --- a/plugins/utils/fzf-lua.nix +++ b/plugins/utils/fzf-lua.nix @@ -2,6 +2,7 @@ lib, helpers, config, + options, pkgs, ... }: @@ -47,10 +48,16 @@ helpers.neovim-plugin.mkNeovimPlugin config { example = pkgs.skim; }; + # TODO: deprecated 2024-08-29 remove after 24.11 iconsEnabled = mkOption { type = types.bool; description = "Toggle icon support. Installs nvim-web-devicons."; - default = true; + visible = false; + }; + + iconsPackage = helpers.mkPackageOption { + name = "nvim-web-devicons"; + default = pkgs.vimPlugins.nvim-web-devicons; }; profile = helpers.defaultNullOpts.mkEnumFirstDefault [ @@ -103,28 +110,44 @@ helpers.neovim-plugin.mkNeovimPlugin config { }; }; - extraConfig = cfg: { - extraPlugins = optional cfg.iconsEnabled pkgs.vimPlugins.nvim-web-devicons; + extraConfig = + cfg: + let + opt = options.plugins.fzf-lua; + in + { + # TODO: deprecated 2024-08-29 remove after 24.11 + warnings = lib.mkIf opt.iconsEnabled.isDefined [ + '' + nixvim (plugins.fzf-lua): + The option definition `plugins.fzf-lua.iconsEnabled' in ${showFiles opt.iconsEnabled.files} has been deprecated; please remove it. + You should use `plugins.fzf-lua.iconsPackage' instead. + '' + ]; - extraPackages = optional (cfg.fzfPackage != null) cfg.fzfPackage; + extraPlugins = lib.mkIf ( + cfg.iconsPackage != null && (opt.iconsEnabled.isDefined && cfg.iconsEnabled) + ) [ cfg.iconsPackage ]; - plugins.fzf-lua.settings.__unkeyed_profile = cfg.profile; + extraPackages = [ cfg.fzfPackage ]; - keymaps = mapAttrsToList ( - key: mapping: - let - actionStr = - if isString mapping then - "${mapping}()" - else - "${mapping.action}(${helpers.toLuaObject mapping.settings})"; - in - { - inherit key; - mode = mapping.mode or "n"; - action.__raw = "function() require('fzf-lua').${actionStr} end"; - options = mapping.options or { }; - } - ) cfg.keymaps; - }; + plugins.fzf-lua.settings.__unkeyed_profile = cfg.profile; + + keymaps = mapAttrsToList ( + key: mapping: + let + actionStr = + if isString mapping then + "${mapping}()" + else + "${mapping.action}(${helpers.toLuaObject mapping.settings})"; + in + { + inherit key; + mode = mapping.mode or "n"; + action.__raw = "function() require('fzf-lua').${actionStr} end"; + options = mapping.options or { }; + } + ) cfg.keymaps; + }; } diff --git a/tests/test-sources/plugins/utils/fzf-lua.nix b/tests/test-sources/plugins/utils/fzf-lua.nix index 6cd29ceb..11499b52 100644 --- a/tests/test-sources/plugins/utils/fzf-lua.nix +++ b/tests/test-sources/plugins/utils/fzf-lua.nix @@ -54,4 +54,11 @@ }; }; }; + + no-packages = { + plugins.fzf-lua = { + enable = true; + iconsPackage = null; + }; + }; }