diff --git a/plugins/by-name/mini-icons/default.nix b/plugins/by-name/mini-icons/default.nix new file mode 100644 index 00000000..3aa3f629 --- /dev/null +++ b/plugins/by-name/mini-icons/default.nix @@ -0,0 +1,42 @@ +{ lib, ... }: +lib.nixvim.plugins.mkNeovimPlugin { + name = "mini-icons"; + moduleName = "mini.icons"; + packPathName = "mini.icons"; + configLocation = lib.mkOrder 800 "extraConfigLua"; + + maintainers = [ lib.maintainers.HeitorAugustoLN ]; + + settingsExample = { + style = "glyph"; + extension = { + lua = { + hl = "Special"; + }; + }; + file = { + "init.lua" = { + glyph = ""; + hl = "MiniIconsGreen"; + }; + }; + }; + + extraOptions = { + mockDevIcons = lib.mkEnableOption "" // { + description = '' + Whether to tell `mini.icons` to emulate `nvim-web-devicons` for plugins that don't natively support it. + + When enabled, you don't need to set `plugins.web-devicons.enable`. This will replace the need for it. + ''; + }; + }; + + extraConfig = cfg: { + plugins.mini-icons.luaConfig.content = lib.mkAfter ( + lib.optionalString cfg.mockDevIcons '' + MiniIcons.mock_nvim_web_devicons() + '' + ); + }; +} diff --git a/tests/test-sources/plugins/by-name/mini-icons/default.nix b/tests/test-sources/plugins/by-name/mini-icons/default.nix new file mode 100644 index 00000000..21f1108a --- /dev/null +++ b/tests/test-sources/plugins/by-name/mini-icons/default.nix @@ -0,0 +1,26 @@ +{ + empty = { + plugins.mini-icons.enable = true; + }; + + example = { + plugins.mini-icons = { + enable = true; + + settings = { + style = "glyph"; + extension = { + lua = { + hl = "Special"; + }; + }; + file = { + "init.lua" = { + glyph = ""; + hl = "MiniIconsGreen"; + }; + }; + }; + }; + }; +}