lib/neovim-plugin: support not having settings

Allow callers to explicitly set `settingsOptions = null` to disable
creating the `settings` option.

`settingsOptions` still defaults to `{ }`.
This commit is contained in:
Matt Sturgeon 2024-06-25 22:17:45 +01:00
parent aff12581d8
commit c351c175ec
No known key found for this signature in database
GPG key ID: 4F91844CED1A8299

View file

@ -50,6 +50,7 @@ rec {
defaultPackage, defaultPackage,
settingsOptions ? { }, settingsOptions ? { },
settingsExample ? null, settingsExample ? null,
hasSettings ? true,
extraOptions ? { }, extraOptions ? { },
# config # config
luaName ? name, luaName ? name,
@ -95,17 +96,19 @@ rec {
mkRenamedOptionModule (basePluginPath ++ optionPath) (settingsPath ++ optionPathSnakeCase) mkRenamedOptionModule (basePluginPath ++ optionPath) (settingsPath ++ optionPathSnakeCase)
) optionsRenamedToSettings); ) optionsRenamedToSettings);
options.${namespace}.${name} = { options.${namespace}.${name} =
{
enable = mkEnableOption originalName; enable = mkEnableOption originalName;
package = nixvimOptions.mkPluginPackageOption originalName defaultPackage; package = nixvimOptions.mkPluginPackageOption originalName defaultPackage;
}
// optionalAttrs hasSettings {
settings = mkSettingsOption { settings = mkSettingsOption {
pluginName = name; pluginName = name;
options = settingsOptions; options = settingsOptions;
example = settingsExample; example = settingsExample;
}; };
} // extraOptions; }
// extraOptions;
config = config =
let let
@ -118,7 +121,7 @@ rec {
inherit extraPackages; inherit extraPackages;
${extraConfigNamespace} = optionalString callSetup '' ${extraConfigNamespace} = optionalString callSetup ''
require('${luaName}').setup(${toLuaObject cfg.settings}) require('${luaName}').setup(${optionalString (cfg ? settings) (toLuaObject cfg.settings)})
''; '';
} }
(optionalAttrs (isColorscheme && (colorscheme != null)) { colorscheme = mkDefault colorscheme; }) (optionalAttrs (isColorscheme && (colorscheme != null)) { colorscheme = mkDefault colorscheme; })