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,
settingsOptions ? { },
settingsExample ? null,
hasSettings ? true,
extraOptions ? { },
# config
luaName ? name,
@ -95,17 +96,19 @@ rec {
mkRenamedOptionModule (basePluginPath ++ optionPath) (settingsPath ++ optionPathSnakeCase)
) optionsRenamedToSettings);
options.${namespace}.${name} = {
enable = mkEnableOption originalName;
package = nixvimOptions.mkPluginPackageOption originalName defaultPackage;
settings = mkSettingsOption {
pluginName = name;
options = settingsOptions;
example = settingsExample;
};
} // extraOptions;
options.${namespace}.${name} =
{
enable = mkEnableOption originalName;
package = nixvimOptions.mkPluginPackageOption originalName defaultPackage;
}
// optionalAttrs hasSettings {
settings = mkSettingsOption {
pluginName = name;
options = settingsOptions;
example = settingsExample;
};
}
// extraOptions;
config =
let
@ -118,7 +121,7 @@ rec {
inherit extraPackages;
${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; })