mirror of
https://github.com/nix-community/nixvim.git
synced 2025-08-03 17:45:03 +02:00
141 lines
4.3 KiB
Nix
141 lines
4.3 KiB
Nix
{
|
|
lib,
|
|
helpers,
|
|
pkgs,
|
|
config,
|
|
...
|
|
}:
|
|
with lib;
|
|
helpers.neovim-plugin.mkNeovimPlugin config {
|
|
name = "tokyonight";
|
|
isColorscheme = true;
|
|
originalName = "tokyonight.nvim";
|
|
defaultPackage = pkgs.vimPlugins.tokyonight-nvim;
|
|
|
|
maintainers = [maintainers.GaetanLepage];
|
|
|
|
# TODO introduced 2024-04-15: remove 2024-06-15
|
|
optionsRenamedToSettings = [
|
|
"style"
|
|
"transparent"
|
|
"terminalColors"
|
|
["styles" "comments"]
|
|
["styles" "keywords"]
|
|
["styles" "functions"]
|
|
["styles" "variables"]
|
|
["styles" "sidebars"]
|
|
["styles" "floats"]
|
|
"sidebars"
|
|
"dayBrightness"
|
|
"hideInactiveStatusline"
|
|
"dimInactive"
|
|
"lualineBold"
|
|
"onColors"
|
|
"onHighlights"
|
|
];
|
|
|
|
settingsOptions = {
|
|
style = helpers.defaultNullOpts.mkEnumFirstDefault ["storm" "night" "day"] ''
|
|
The theme comes in three styles, `storm`, a darker variant `night` and `day`.
|
|
'';
|
|
|
|
light_style = helpers.defaultNullOpts.mkStr "day" ''
|
|
The theme to use when the background is set to `light`.
|
|
'';
|
|
|
|
transparent = helpers.defaultNullOpts.mkBool false ''
|
|
Disable setting the background color.
|
|
'';
|
|
|
|
terminal_colors = helpers.defaultNullOpts.mkBool true ''
|
|
Configure the colors used when opening a :terminal in Neovim
|
|
'';
|
|
|
|
styles = let
|
|
mkBackgroundStyle = name:
|
|
helpers.defaultNullOpts.mkEnumFirstDefault ["dark" "transparent" "normal"]
|
|
"Background style for ${name}";
|
|
in {
|
|
comments = helpers.defaultNullOpts.mkHighlight "{italic = true;}" "" ''
|
|
Define comments highlight properties.
|
|
'';
|
|
|
|
keywords = helpers.defaultNullOpts.mkHighlight "{italic = true;}" "" ''
|
|
Define keywords highlight properties.
|
|
'';
|
|
|
|
functions = helpers.defaultNullOpts.mkHighlight "{}" "" ''
|
|
Define functions highlight properties.
|
|
'';
|
|
|
|
variables = helpers.defaultNullOpts.mkHighlight "{}" "" ''
|
|
Define variables highlight properties.
|
|
'';
|
|
|
|
sidebars = mkBackgroundStyle "sidebars";
|
|
|
|
floats = mkBackgroundStyle "floats";
|
|
};
|
|
|
|
sidebars = helpers.defaultNullOpts.mkListOf types.str ''["qf" "help"]'' ''
|
|
Set a darker background on sidebar-like windows.
|
|
'';
|
|
|
|
day_brightness = helpers.defaultNullOpts.mkNullable (types.numbers.between 0.0 1.0) "0.3" ''
|
|
Adjusts the brightness of the colors of the **Day** style.
|
|
Number between 0 and 1, from dull to vibrant colors.
|
|
'';
|
|
|
|
hide_inactive_statusline = helpers.defaultNullOpts.mkBool false ''
|
|
Enabling this option will hide inactive statuslines and replace them with a thin border instead.
|
|
Should work with the standard **StatusLine** and **LuaLine**.
|
|
'';
|
|
|
|
dim_inactive = helpers.defaultNullOpts.mkBool false ''
|
|
Dims inactive windows.
|
|
'';
|
|
|
|
lualine_bold = helpers.defaultNullOpts.mkBool false ''
|
|
When true, section headers in the lualine theme will be bold.
|
|
'';
|
|
|
|
on_colors = helpers.defaultNullOpts.mkLuaFn "function(colors) end" ''
|
|
Override specific color groups to use other groups or a hex color.
|
|
Function will be called with a `ColorScheme` table.
|
|
`@param colors ColorScheme`
|
|
'';
|
|
|
|
on_highlights = helpers.defaultNullOpts.mkLuaFn "function(highlights, colors) end" ''
|
|
Override specific highlights to use other groups or a hex color.
|
|
Function will be called with a `Highlights` and `ColorScheme` table.
|
|
`@param highlights Highlights`
|
|
`@param colors ColorScheme`
|
|
'';
|
|
};
|
|
|
|
settingsExample = {
|
|
style = "storm";
|
|
light_style = "day";
|
|
transparent = false;
|
|
terminal_colors = true;
|
|
styles = {
|
|
comments.italic = true;
|
|
keywords.italic = true;
|
|
functions = {};
|
|
variables = {};
|
|
sidebars = "dark";
|
|
floats = "dark";
|
|
};
|
|
sidebars = ["qf" "vista_kind" "terminal" "packer"];
|
|
day_brightness = 0.3;
|
|
hide_inactive_statusline = false;
|
|
dim_inactive = false;
|
|
lualine_bold = false;
|
|
on_colors = "function(colors) end";
|
|
on_highlights = "function(highlights, colors) end";
|
|
};
|
|
|
|
extraConfig = cfg: {
|
|
opts.termguicolors = mkDefault true;
|
|
};
|
|
}
|