mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-01-31 22:32:24 +00:00
66 lines
1.5 KiB
Nix
66 lines
1.5 KiB
Nix
|
{
|
||
|
config,
|
||
|
lib,
|
||
|
...
|
||
|
}: let
|
||
|
inherit (lib.attrsets) genAttrs mergeAttrsList;
|
||
|
inherit (lib.options) mkOption mkEnableOption;
|
||
|
inherit (lib.types) bool str;
|
||
|
inherit (lib.nvim.types) mkPluginSetupOption;
|
||
|
cfg = config.vim.theme;
|
||
|
|
||
|
mkEnableOption' = name: mkEnableOption name // {default = true;};
|
||
|
in {
|
||
|
gruvbox = {
|
||
|
setupOpts =
|
||
|
mkPluginSetupOption "gruvbox" {
|
||
|
transparent_mode = mkOption {
|
||
|
type = bool;
|
||
|
default = cfg.transparent;
|
||
|
internal = true;
|
||
|
};
|
||
|
italic =
|
||
|
{
|
||
|
operators = mkEnableOption "operators";
|
||
|
}
|
||
|
// genAttrs [
|
||
|
"strings"
|
||
|
"emphasis"
|
||
|
"comments"
|
||
|
"folds"
|
||
|
] (name: mkEnableOption' name);
|
||
|
|
||
|
contrast = mkOption {
|
||
|
type = str;
|
||
|
default = "";
|
||
|
};
|
||
|
# TODO: fix these
|
||
|
# palette_overrides = mkLuaInline "{}";
|
||
|
# overrides = mkLuaInline "{}";
|
||
|
}
|
||
|
// mergeAttrsList [
|
||
|
(genAttrs [
|
||
|
"terminal_colors"
|
||
|
"undercurls"
|
||
|
"underline"
|
||
|
"bold"
|
||
|
"strikethrough"
|
||
|
"inverse"
|
||
|
] (name: mkEnableOption' name))
|
||
|
(genAttrs [
|
||
|
"invert_selection"
|
||
|
"invert_signs"
|
||
|
"invert_tabline"
|
||
|
"invert_intend_guides"
|
||
|
"dim_inactive"
|
||
|
] (name: mkEnableOption name))
|
||
|
];
|
||
|
setup = ''
|
||
|
-- Gruvbox theme
|
||
|
vim.o.background = "${cfg.style}"
|
||
|
vim.cmd("colorscheme gruvbox")
|
||
|
'';
|
||
|
styles = ["dark" "light"];
|
||
|
};
|
||
|
}
|