Merge pull request #181 from horriblename/feat-plugin-setup-config

lib: function for custom plugin `setup()` arguments
This commit is contained in:
NotAShelf 2024-01-03 00:03:33 +00:00 committed by GitHub
commit 39dd12fb76
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 1 deletions

View file

@ -4,6 +4,6 @@
typesLanguage = import ./languages.nix {inherit lib;}; typesLanguage = import ./languages.nix {inherit lib;};
in { in {
inherit (typesDag) dagOf; inherit (typesDag) dagOf;
inherit (typesPlugin) pluginsOpt extraPluginType; inherit (typesPlugin) pluginsOpt extraPluginType mkPluginSetupOption;
inherit (typesLanguage) diagnostics mkGrammarOption; inherit (typesLanguage) diagnostics mkGrammarOption;
} }

View file

@ -138,4 +138,25 @@ in {
inherit description default; inherit description default;
type = pluginsType; type = pluginsType;
}; };
# opts is a attrset of options, example:
# ```
# mkPluginSetupOption "telescope" {
# file_ignore_patterns = mkOption {
# description = "...";
# type = types.listOf types.str;
# default = [];
# };
# layout_config.horizontal = mkOption {...};
# }
# ```
mkPluginSetupOption = pluginName: opts:
mkOption {
description = "Option table to pass into the setup function of " + pluginName;
default = {};
type = types.submodule {
freeformType = with types; attrsOf anything;
options = opts;
};
};
} }