mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-24 17:58:38 +02:00
colorschemes/kanagawa: switch to mkNeovimPlugin
This commit is contained in:
parent
ce87283dd6
commit
c6d4505438
2 changed files with 235 additions and 201 deletions
|
@ -5,52 +5,99 @@
|
|||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.colorschemes.kanagawa;
|
||||
in {
|
||||
options = {
|
||||
colorschemes.kanagawa =
|
||||
helpers.neovim-plugin.extraOptionsOptions
|
||||
// {
|
||||
enable = mkEnableOption "kanagawa";
|
||||
with lib;
|
||||
helpers.neovim-plugin.mkNeovimPlugin config {
|
||||
name = "kanagawa";
|
||||
isColorscheme = true;
|
||||
originalName = "kanagawa.nvim";
|
||||
defaultPackage = pkgs.vimPlugins.kanagawa-nvim;
|
||||
|
||||
package = helpers.mkPackageOption "kanagawa" pkgs.vimPlugins.kanagawa-nvim;
|
||||
description = ''
|
||||
You can select the theme in two ways:
|
||||
- Set `colorschemes.kanagawa.settings.theme` AND explicitly unset `vim.o.background` (i.e. `options.background = ""`).
|
||||
- Set `colorschemes.kanagawa.settings.background` (the active theme will depend on the value of `vim.o.background`).
|
||||
'';
|
||||
|
||||
compile = helpers.defaultNullOpts.mkBool false "Enable compiling the colorscheme.";
|
||||
maintainers = [maintainers.GaetanLepage];
|
||||
|
||||
undercurl = helpers.defaultNullOpts.mkBool true "Enable undercurls.";
|
||||
# TODO introduced 2024-03-15: remove 2024-05-15
|
||||
deprecateExtraOptions = true;
|
||||
imports = let
|
||||
basePluginPath = ["colorschemes" "kanagawa"];
|
||||
in
|
||||
(
|
||||
map
|
||||
(
|
||||
optionPath:
|
||||
mkRenamedOptionModule
|
||||
(basePluginPath ++ optionPath)
|
||||
(basePluginPath ++ ["settings"] ++ optionPath)
|
||||
)
|
||||
[
|
||||
["compile"]
|
||||
["undercurl"]
|
||||
["commentStyle"]
|
||||
["functionStyle"]
|
||||
["keywordStyle"]
|
||||
["statementStyle"]
|
||||
["typeStyle"]
|
||||
["transparent"]
|
||||
["dimInactive"]
|
||||
["terminalColors"]
|
||||
["colors" "palette"]
|
||||
["colors" "theme"]
|
||||
["theme"]
|
||||
["background" "dark"]
|
||||
["background" "light"]
|
||||
]
|
||||
)
|
||||
++ [
|
||||
(
|
||||
mkRemovedOptionModule
|
||||
(basePluginPath ++ ["overrides"])
|
||||
''
|
||||
Use `colorschemes.kanagawa.settings.overrides` but you now have to add the full function definition:
|
||||
```
|
||||
function(colors)
|
||||
...
|
||||
end
|
||||
```
|
||||
''
|
||||
)
|
||||
];
|
||||
|
||||
commentStyle =
|
||||
helpers.defaultNullOpts.mkNullable
|
||||
types.attrs
|
||||
"{italic = true;}"
|
||||
"Highlight options for comments.";
|
||||
settingsOptions = {
|
||||
compile = helpers.defaultNullOpts.mkBool false ''
|
||||
Enable compiling the colorscheme.
|
||||
'';
|
||||
|
||||
functionStyle =
|
||||
helpers.defaultNullOpts.mkNullable
|
||||
types.attrs
|
||||
"{}"
|
||||
"Highlight options for functions.";
|
||||
undercurl = helpers.defaultNullOpts.mkBool true ''
|
||||
Enable undercurls.
|
||||
'';
|
||||
|
||||
keywordStyle =
|
||||
helpers.defaultNullOpts.mkNullable
|
||||
types.attrs
|
||||
"{italic = true;}"
|
||||
"Highlight options for keywords.";
|
||||
commentStyle = helpers.defaultNullOpts.mkAttrsOf types.anything "{italic = true;}" ''
|
||||
Highlight options for comments.
|
||||
'';
|
||||
|
||||
statementStyle =
|
||||
helpers.defaultNullOpts.mkNullable
|
||||
types.attrs
|
||||
"{bold = true;}"
|
||||
"Highlight options for statements.";
|
||||
functionStyle = helpers.defaultNullOpts.mkAttrsOf types.anything "{}" ''
|
||||
Highlight options for functions.
|
||||
'';
|
||||
|
||||
typeStyle =
|
||||
helpers.defaultNullOpts.mkNullable
|
||||
types.attrs
|
||||
"{}"
|
||||
"Highlight options for types.";
|
||||
keywordStyle = helpers.defaultNullOpts.mkAttrsOf types.anything "{italic = true;}" ''
|
||||
Highlight options for keywords.
|
||||
'';
|
||||
|
||||
transparent = helpers.defaultNullOpts.mkBool false "Whether to set a background color.";
|
||||
statementStyle = helpers.defaultNullOpts.mkAttrsOf types.anything "{bold = true;}" ''
|
||||
Highlight options for statements.
|
||||
'';
|
||||
|
||||
typeStyle = helpers.defaultNullOpts.mkAttrsOf types.anything "{}" ''
|
||||
Highlight options for types.
|
||||
'';
|
||||
|
||||
transparent = helpers.defaultNullOpts.mkBool false ''
|
||||
Whether to set a background color.
|
||||
'';
|
||||
|
||||
dimInactive = helpers.defaultNullOpts.mkBool false ''
|
||||
Whether dim inactive window `:h hl-NormalNC`.
|
||||
|
@ -62,8 +109,7 @@ in {
|
|||
|
||||
colors = {
|
||||
theme =
|
||||
helpers.defaultNullOpts.mkNullable
|
||||
(with types; attrsOf attrs)
|
||||
helpers.defaultNullOpts.mkAttrsOf types.attrs
|
||||
''
|
||||
{
|
||||
wave = {};
|
||||
|
@ -99,7 +145,7 @@ in {
|
|||
```
|
||||
'';
|
||||
|
||||
palette = helpers.defaultNullOpts.mkNullable (with types; attrsOf str) "{}" ''
|
||||
palette = helpers.defaultNullOpts.mkAttrsOf types.str "{}" ''
|
||||
Change all usages of these colors.
|
||||
|
||||
Example:
|
||||
|
@ -113,9 +159,11 @@ in {
|
|||
};
|
||||
|
||||
overrides =
|
||||
helpers.defaultNullOpts.mkStr
|
||||
helpers.defaultNullOpts.mkLuaFn
|
||||
''
|
||||
function(colors)
|
||||
return {}
|
||||
end
|
||||
''
|
||||
''
|
||||
The body of a function that add/modify hihlights.
|
||||
|
@ -144,6 +192,7 @@ in {
|
|||
theme = helpers.defaultNullOpts.mkStr "wave" ''
|
||||
The theme to load when background is not set.
|
||||
'';
|
||||
|
||||
background = {
|
||||
light = helpers.defaultNullOpts.mkStr "lotus" ''
|
||||
The theme to use when `vim.o.background = "light"`.
|
||||
|
@ -154,46 +203,27 @@ in {
|
|||
'';
|
||||
};
|
||||
};
|
||||
|
||||
settingsExample = {
|
||||
compile = false;
|
||||
undercurl = true;
|
||||
commentStyle.italic = true;
|
||||
functionStyle = {};
|
||||
transparent = false;
|
||||
dimInactive = false;
|
||||
terminalColors = true;
|
||||
colors = {
|
||||
theme = {
|
||||
wave.ui.float.bg = "none";
|
||||
dragon.syn.parameter = "yellow";
|
||||
all.ui.bg_gutter = "none";
|
||||
};
|
||||
config = let
|
||||
setupOptions = with cfg;
|
||||
{
|
||||
inherit
|
||||
compile
|
||||
undercurl
|
||||
commentStyle
|
||||
functionStyle
|
||||
keywordStyle
|
||||
statementStyle
|
||||
typeStyle
|
||||
transparent
|
||||
dimInactive
|
||||
terminalColors
|
||||
;
|
||||
colors = with colors; {
|
||||
inherit theme palette;
|
||||
palette = {
|
||||
sumiInk0 = "#000000";
|
||||
fujiWhite = "#FFFFFF";
|
||||
};
|
||||
overrides =
|
||||
helpers.ifNonNull' overrides
|
||||
(helpers.mkRaw ''
|
||||
function(colors)
|
||||
${overrides}
|
||||
end
|
||||
'');
|
||||
inherit theme;
|
||||
background = with background; {
|
||||
inherit light dark;
|
||||
};
|
||||
}
|
||||
// cfg.extraOptions;
|
||||
in
|
||||
mkIf cfg.enable {
|
||||
colorscheme = "kanagawa";
|
||||
|
||||
extraPlugins = [cfg.package];
|
||||
|
||||
extraConfigLuaPre = ''
|
||||
require("kanagawa").setup(${helpers.toLuaObject setupOptions})
|
||||
'';
|
||||
};
|
||||
overrides = "function(colors) return {} end";
|
||||
theme = "wave";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -3,10 +3,11 @@
|
|||
colorschemes.kanagawa.enable = true;
|
||||
};
|
||||
|
||||
default = {
|
||||
defaults = {
|
||||
colorschemes.kanagawa = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
compile = false;
|
||||
undercurl = true;
|
||||
commentStyle = {italic = true;};
|
||||
|
@ -43,7 +44,9 @@
|
|||
};
|
||||
};
|
||||
overrides = ''
|
||||
function(colors)
|
||||
return {}
|
||||
end
|
||||
'';
|
||||
theme = "wave";
|
||||
background = {
|
||||
|
@ -52,4 +55,5 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue