Compare commits

..

4 commits

Author SHA1 Message Date
Ching Pei Yang
f293624fc1
Merge 7d9f1e0481 into 2615c568f8 2024-05-12 01:15:14 +00:00
Ching Pei Yang
7d9f1e0481 colorizer: add example 2024-05-12 03:15:04 +02:00
Ching Pei Yang
82e92a56da colorizer: move back to setupOpts 2024-05-12 02:11:59 +02:00
Ching Pei Yang
981fe07075 colorizer: allow null for all options 2024-05-12 01:46:57 +02:00
2 changed files with 58 additions and 18 deletions

View file

@ -4,8 +4,9 @@
...
}: let
inherit (lib.options) mkOption mkEnableOption;
inherit (lib.types) attrsOf enum nullOr submodule bool;
inherit (lib.types) attrsOf enum nullOr submodule bool str;
inherit (lib.modules) mkRenamedOptionModule;
inherit (lib.nvim.types) mkPluginSetupOption;
settingSubmodule = submodule {
options = {
@ -33,6 +34,12 @@
type = nullOr bool;
};
AARRGGBB = mkOption {
description = "Colorize 0xAARRGGBB hex codes";
default = null;
type = nullOr bool;
};
rgb_fn = mkOption {
description = "Colorize CSS rgb() and rgba() functions";
default = null;
@ -57,37 +64,70 @@
type = nullOr bool;
};
tailwind = mkOption {
description = "Enable tailwind colors";
default = null;
type = nullOr bool;
};
sass = mkOption {
description = "Enable sass colors";
default = null;
type = nullOr bool;
};
virtualtext = mkOption {
description = "String to display as virtualtext";
type = nullOr str;
default = null;
};
mode = mkOption {
description = "Set the display mode";
type = nullOr (enum ["foreground" "background"]);
default = null;
};
always_update = mkOption {
description = "Update color values even if buffer is not focused. Example use: cmp_menu, cmp_docs";
default = null;
type = nullOr bool;
};
};
};
in {
imports = [
(mkRenamedOptionModule ["vim" "ui" "colorizer" "setupOpts" "defaultOptions"] ["vim" "ui" "colorizer" "options"])
(mkRenamedOptionModule ["vim" "ui" "colorizer" "setupOpts" "filetypes"] ["vim" "ui" "colorizer" "filetypes"])
(mkRenamedOptionModule ["vim" "ui" "colorizer" "options"] ["vim" "ui" "colorizer" "setupOpts" "defaultOptions"])
(mkRenamedOptionModule ["vim" "ui" "colorizer" "filetypes"] ["vim" "ui" "colorizer" "setupOpts" "filetypes"])
];
options.vim.ui.colorizer = {
enable = mkEnableOption "color highlighting [nvim-colorizer.lua]";
# colorizer has a non-standard setup function (takes two args), so we're not using setupOpts
options = mkOption {
description = ''
Default options that apply to all filetypes. Filetype specific settings from
[filetypes](#opt-vim.ui.colorizer.filetypes) take precedence.
'';
default = {};
type = settingSubmodule;
};
setupOpts = mkPluginSetupOption "colorizer" {
filetypes = mkOption {
description = ''
Filetypes to enable on and their option overrides.
filetypes = mkOption {
description = "Filetype specific settings";
default = {};
type = submodule {
freeformType = attrsOf settingSubmodule;
"*" means enable on all filetypes. Filetypes prefixed with "!" are disabled.
'';
default = {};
example = {
"*" = {};
"!vim" = {};
javascript = {
AARRGGBB = false;
};
};
type = submodule {
freeformType = attrsOf settingSubmodule;
};
};
user_default_options = mkOption {
description = "Default options";
default = {};
type = settingSubmodule;
};
};
};

View file

@ -15,7 +15,7 @@ in {
];
vim.luaConfigRC.colorizer = entryAnywhere ''
require('colorizer').setup(${toLuaObject cfg.filetypes}, ${toLuaObject cfg.options})
require('colorizer').setup(${toLuaObject cfg.setupOpts})
'';
};
}