From 47b5d51f5c184547090de9548e63801119edd2ed Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sun, 6 Oct 2024 22:51:31 +0300 Subject: [PATCH] nvimWebDevicons: rename to nvim-web-devicons; switch to setupOpts --- modules/plugins/visuals/config.nix | 4 -- modules/plugins/visuals/default.nix | 6 ++- .../visuals/nvim-web-devicons/config.nix | 21 ++++++++ .../visuals/nvim-web-devicons/default.nix | 6 +++ .../nvim-web-devicons/nvim-web-devicons.nix | 48 +++++++++++++++++++ modules/plugins/visuals/visuals.nix | 2 - 6 files changed, 79 insertions(+), 8 deletions(-) create mode 100644 modules/plugins/visuals/nvim-web-devicons/config.nix create mode 100644 modules/plugins/visuals/nvim-web-devicons/default.nix create mode 100644 modules/plugins/visuals/nvim-web-devicons/nvim-web-devicons.nix diff --git a/modules/plugins/visuals/config.nix b/modules/plugins/visuals/config.nix index 1457ff3a..f8904d9b 100644 --- a/modules/plugins/visuals/config.nix +++ b/modules/plugins/visuals/config.nix @@ -31,10 +31,6 @@ in { ''; }) - (mkIf cfg.nvimWebDevicons.enable { - vim.startPlugins = ["nvim-web-devicons"]; - }) - (mkIf cfg.scrollBar.enable { vim.startPlugins = ["scrollbar-nvim"]; vim.pluginRC.scrollBar = entryAnywhere '' diff --git a/modules/plugins/visuals/default.nix b/modules/plugins/visuals/default.nix index 3c977cba..c096d651 100644 --- a/modules/plugins/visuals/default.nix +++ b/modules/plugins/visuals/default.nix @@ -1,7 +1,9 @@ -{...}: { +{ imports = [ + ./fidget + ./nvim-web-devicons + ./config.nix ./visuals.nix - ./fidget ]; } diff --git a/modules/plugins/visuals/nvim-web-devicons/config.nix b/modules/plugins/visuals/nvim-web-devicons/config.nix new file mode 100644 index 00000000..9c8e9418 --- /dev/null +++ b/modules/plugins/visuals/nvim-web-devicons/config.nix @@ -0,0 +1,21 @@ +{ + config, + lib, + ... +}: let + inherit (lib.modules) mkIf; + inherit (lib.nvim.lua) toLuaObject; + inherit (lib.nvim.dag) entryAnywhere; + + cfg = config.vim.visuals.nvim-web-devicons; +in { + config = mkIf cfg.enable { + vim = { + startPlugins = ["nvim-web-devicons"]; + + pluginRC.nvim-web-devicons = entryAnywhere '' + require("nvim-web-devicons").setup(${toLuaObject cfg.setupOpts}) + ''; + }; + }; +} diff --git a/modules/plugins/visuals/nvim-web-devicons/default.nix b/modules/plugins/visuals/nvim-web-devicons/default.nix new file mode 100644 index 00000000..57a3dbc1 --- /dev/null +++ b/modules/plugins/visuals/nvim-web-devicons/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./config.nix + ./nvim-web-devicons.nix + ]; +} diff --git a/modules/plugins/visuals/nvim-web-devicons/nvim-web-devicons.nix b/modules/plugins/visuals/nvim-web-devicons/nvim-web-devicons.nix new file mode 100644 index 00000000..f88dfaf1 --- /dev/null +++ b/modules/plugins/visuals/nvim-web-devicons/nvim-web-devicons.nix @@ -0,0 +1,48 @@ +{ + config, + lib, + ... +}: let + inherit (lib.modules) mkRenamedOptionModule; + inherit (lib.options) mkEnableOption mkOption literalExpression; + inherit (lib.types) nullOr attrsOf attrs enum; + inherit (lib.nvim.types) mkPluginSetupOption; +in { + imports = [ + (mkRenamedOptionModule ["vim" "visuals" "nvimWebDevicons"] ["vim" "visuals" "nvim-web-devicons"]) + ]; + + options.vim.visuals.nvim-web-devicons = { + enable = mkEnableOption "Neovim dev icons [nvim-web-devicons]"; + + setupOpts = mkPluginSetupOption "nvim-web-devicons" { + color_icons = mkEnableOption "different highlight colors per icon"; + variant = mkOption { + type = nullOr (enum ["light" "dark"]); + default = null; + description = "Set the light or dark variant manually, instead of relying on `background`"; + }; + + override = mkOption { + type = attrsOf attrs; + default = {}; + example = literalExpression '' + { + zsh = { + name = "Zsh"; + icon = ""; + color = "#428850"; + cterm_color = "65"; + }; + } + ''; + description = '' + Your personal icon overrides. + + You can specify color or cterm_color instead of specifying + both of them. DevIcon will be appended to `name` + ''; + }; + }; + }; +} diff --git a/modules/plugins/visuals/visuals.nix b/modules/plugins/visuals/visuals.nix index d3cfac1c..07c2f5d0 100644 --- a/modules/plugins/visuals/visuals.nix +++ b/modules/plugins/visuals/visuals.nix @@ -12,8 +12,6 @@ in { options.vim.visuals = { enable = mkEnableOption "Visual enhancements."; - nvimWebDevicons.enable = mkEnableOption "dev icons. Required for certain plugins [nvim-web-devicons]."; - scrollBar.enable = mkEnableOption "scrollbar [scrollbar.nvim]"; smoothScroll.enable = mkEnableOption "smooth scrolling [cinnamon-nvim]";