mirror of
https://github.com/nix-community/nixvim.git
synced 2025-08-04 18:15:08 +02:00
We used to only think of it as the plugin repo's name, but we have been needing to use it for the name of the plugin's packpath location.
238 lines
5.5 KiB
Nix
238 lines
5.5 KiB
Nix
{
|
|
lib,
|
|
...
|
|
}:
|
|
let
|
|
inherit (lib.nixvim) defaultNullOpts;
|
|
inherit (lib) types;
|
|
in
|
|
lib.nixvim.neovim-plugin.mkNeovimPlugin {
|
|
name = "kanagawa";
|
|
isColorscheme = true;
|
|
packPathName = "kanagawa.nvim";
|
|
package = "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`).
|
|
'';
|
|
|
|
maintainers = [ lib.maintainers.GaetanLepage ];
|
|
|
|
# TODO introduced 2024-03-15: remove 2024-05-15
|
|
deprecateExtraOptions = true;
|
|
imports =
|
|
let
|
|
basePluginPath = [
|
|
"colorschemes"
|
|
"kanagawa"
|
|
];
|
|
in
|
|
(map
|
|
(
|
|
optionPath:
|
|
lib.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"
|
|
]
|
|
]
|
|
)
|
|
++ [
|
|
(lib.mkRemovedOptionModule (basePluginPath ++ [ "overrides" ]) ''
|
|
Use `colorschemes.kanagawa.settings.overrides` but you now have to add the full function definition:
|
|
```
|
|
function(colors)
|
|
...
|
|
end
|
|
```
|
|
'')
|
|
];
|
|
|
|
settingsOptions = {
|
|
compile = defaultNullOpts.mkBool false ''
|
|
Enable compiling the colorscheme.
|
|
'';
|
|
|
|
undercurl = defaultNullOpts.mkBool true ''
|
|
Enable undercurls.
|
|
'';
|
|
|
|
commentStyle = defaultNullOpts.mkAttrsOf types.anything { italic = true; } ''
|
|
Highlight options for comments.
|
|
'';
|
|
|
|
functionStyle = defaultNullOpts.mkAttrsOf types.anything { } ''
|
|
Highlight options for functions.
|
|
'';
|
|
|
|
keywordStyle = defaultNullOpts.mkAttrsOf types.anything { italic = true; } ''
|
|
Highlight options for keywords.
|
|
'';
|
|
|
|
statementStyle = defaultNullOpts.mkAttrsOf types.anything { bold = true; } ''
|
|
Highlight options for statements.
|
|
'';
|
|
|
|
typeStyle = defaultNullOpts.mkAttrsOf types.anything { } ''
|
|
Highlight options for types.
|
|
'';
|
|
|
|
transparent = defaultNullOpts.mkBool false ''
|
|
Whether to set a background color.
|
|
'';
|
|
|
|
dimInactive = defaultNullOpts.mkBool false ''
|
|
Whether dim inactive window `:h hl-NormalNC`.
|
|
'';
|
|
|
|
terminalColors = defaultNullOpts.mkBool true ''
|
|
If true, defines `vim.g.terminal_color_{0,17}`.
|
|
'';
|
|
|
|
colors = {
|
|
theme =
|
|
defaultNullOpts.mkAttrsOf types.attrs
|
|
{
|
|
wave = { };
|
|
lotus = { };
|
|
dragon = { };
|
|
all = { };
|
|
}
|
|
''
|
|
Change specific usages for a certain theme, or for all of them
|
|
|
|
Example:
|
|
```nix
|
|
{
|
|
wave = {
|
|
ui = {
|
|
float = {
|
|
bg = "none";
|
|
};
|
|
};
|
|
};
|
|
dragon = {
|
|
syn = {
|
|
parameter = "yellow";
|
|
};
|
|
};
|
|
all = {
|
|
ui = {
|
|
bg_gutter = "none";
|
|
};
|
|
};
|
|
}
|
|
```
|
|
'';
|
|
|
|
palette = defaultNullOpts.mkAttrsOf types.str { } ''
|
|
Change all usages of these colors.
|
|
|
|
Example:
|
|
```nix
|
|
{
|
|
sumiInk0 = "#000000";
|
|
fujiWhite = "#FFFFFF";
|
|
}
|
|
```
|
|
'';
|
|
};
|
|
|
|
overrides =
|
|
defaultNullOpts.mkLuaFn
|
|
''
|
|
function(colors)
|
|
return {}
|
|
end
|
|
''
|
|
''
|
|
The body of a function that add/modify hihlights.
|
|
It takes as input a `colors` argument which is a table of this form:
|
|
```
|
|
colors = {
|
|
palette = {
|
|
foo = "#RRGGBB",
|
|
bar = "#RRGGBB"
|
|
},
|
|
theme = {
|
|
foo = "#RRGGBB",
|
|
bar = "#RRGGBB"
|
|
}
|
|
}
|
|
```
|
|
It should return a table of highlights.
|
|
|
|
```
|
|
function(colors)
|
|
CONTENT_OF_OVERRIDE_OPTION
|
|
end
|
|
```
|
|
'';
|
|
|
|
theme = defaultNullOpts.mkStr "wave" ''
|
|
The theme to load when background is not set.
|
|
'';
|
|
|
|
background = {
|
|
light = defaultNullOpts.mkStr "lotus" ''
|
|
The theme to use when `vim.o.background = "light"`.
|
|
'';
|
|
|
|
dark = defaultNullOpts.mkStr "wave" ''
|
|
The theme to use when `vim.o.background = "dark"`.
|
|
'';
|
|
};
|
|
};
|
|
|
|
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";
|
|
};
|
|
palette = {
|
|
sumiInk0 = "#000000";
|
|
fujiWhite = "#FFFFFF";
|
|
};
|
|
};
|
|
overrides = "function(colors) return {} end";
|
|
theme = "wave";
|
|
};
|
|
}
|