mirror of
https://github.com/NotAShelf/nvf.git
synced 2024-11-27 07:26:46 +00:00
f9789432f9
* modules: switch to gerg's neovim-wrapper * modules: use initViml instead of writing the file * treewide: make the entire generated config lua based * docs: remove mentions of configRC * plugins/treesitter: remove vim.cmd hack * treewide: move resolveDag to lib * modules/wrapper(rc): fix typo * treewide: migrate to pluginRC for correct DAG order The "new" DAG order is as follows: - (luaConfigPre) - globalsScript - basic - theme - pluginConfigs - extraPluginConfigs - mappings - (luaConfigPost) * plugins/theme: fix theme DAG place * plugins/theme: fix fixed theme DAG place * modules/wrapper(rc): add removed option module for configRC * docs: add dag-entries chapter, add release note entry * fix: formatting CI * languages/nix: add missing `local` * docs: fix page link * docs: add mention of breaking changes at the start of the release notes * plugins/neo-tree: convert to pluginRC * modules/wrapper(rc): add back entryAnywhere * modules/wrapper(rc): expose pluginRC * apply raf patch --------- Co-authored-by: NotAShelf <raf@notashelf.dev>
55 lines
1.3 KiB
Nix
55 lines
1.3 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
...
|
|
}: let
|
|
inherit (lib.options) mkOption;
|
|
inherit (lib.attrsets) attrNames;
|
|
inherit (lib.types) bool lines enum;
|
|
inherit (lib.modules) mkIf;
|
|
inherit (lib.nvim.dag) entryAfter;
|
|
|
|
cfg = config.vim.theme;
|
|
supportedThemes = import ./supported-themes.nix {
|
|
inherit lib config;
|
|
};
|
|
in {
|
|
options.vim.theme = {
|
|
enable = mkOption {
|
|
type = bool;
|
|
description = "Enable theming";
|
|
};
|
|
|
|
name = mkOption {
|
|
type = enum (attrNames supportedThemes);
|
|
description = "Supported themes can be found in `supportedThemes.nix`";
|
|
};
|
|
|
|
style = mkOption {
|
|
type = enum supportedThemes.${cfg.name}.styles;
|
|
description = "Specific style for theme if it supports it";
|
|
};
|
|
|
|
transparent = mkOption {
|
|
type = bool;
|
|
default = false;
|
|
description = "Whether or not transparency should be enabled. Has no effect for themes that do not support transparency";
|
|
};
|
|
|
|
extraConfig = mkOption {
|
|
type = lines;
|
|
description = "Additional lua configuration to add before setup";
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
vim = {
|
|
startPlugins = [cfg.name];
|
|
luaConfigRC.theme = entryAfter ["basic"] ''
|
|
${cfg.extraConfig}
|
|
${supportedThemes.${cfg.name}.setup {inherit (cfg) style transparent;}}
|
|
'';
|
|
};
|
|
};
|
|
}
|