colorschemes/ayu: add plugin + test

This commit is contained in:
Gaetan Lepage 2023-08-10 12:08:41 +02:00 committed by Gaétan Lepage
parent dbc865f977
commit 791e32ed3d
3 changed files with 76 additions and 0 deletions

View file

@ -0,0 +1,61 @@
{
pkgs,
config,
lib,
...
} @ args:
with lib; let
cfg = config.colorschemes.ayu;
helpers = import ../helpers.nix args;
in {
options = {
colorschemes.ayu =
helpers.extraOptionsOptions
// {
enable = mkEnableOption "ayu";
package = helpers.mkPackageOption "ayu" pkgs.vimPlugins.neovim-ayu;
mirage = helpers.defaultNullOpts.mkBool false ''
Set to `true` to use `mirage` variant instead of `dark` for dark background.
'';
overrides =
helpers.defaultNullOpts.mkNullable
(
with types;
either
(attrsOf helpers.highlightType)
str
)
"{}"
''
A dictionary of group names, each associated with a dictionary of parameters
(`bg`, `fg`, `sp` and `style`) and colors in hex.
Alternatively, `overrides` can be a function that returns a dictionary of the same
format.
You can use the function to override based on a dynamic condition, such as the value of
`background`.
'';
};
};
config = let
setupOptions = with cfg;
{
overrides =
if isString overrides
then helpers.mkRaw overrides
else overrides;
}
// cfg.extraOptions;
in
mkIf cfg.enable {
extraPlugins = [cfg.package];
extraConfigLuaPre = ''
require("ayu").setup(${helpers.toLuaObject setupOptions})
'';
};
}

View file

@ -3,6 +3,7 @@
./bufferlines/barbar.nix ./bufferlines/barbar.nix
./bufferlines/bufferline.nix ./bufferlines/bufferline.nix
./colorschemes/ayu.nix
./colorschemes/base16.nix ./colorschemes/base16.nix
./colorschemes/gruvbox.nix ./colorschemes/gruvbox.nix
./colorschemes/kanagawa.nix ./colorschemes/kanagawa.nix

View file

@ -0,0 +1,14 @@
{
empty = {
colorschemes.ayu.enable = true;
};
defaults = {
colorschemes.ayu = {
enable = true;
mirage = false;
overrides = {};
};
};
}