From ea5ba6e13d8b359059245668b69fe72e6d2a6211 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Thu, 3 Sep 2020 21:16:29 +0200 Subject: lib/types: Show sub options of freeform types Previously if you set the freeform type to e.g. attrsOf (submodule ..), those submodule options wouldn't be shown in the manual. --- lib/types.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'lib/types.nix') diff --git a/lib/types.nix b/lib/types.nix index 1845b6ae339e..cc125c20311d 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -522,7 +522,12 @@ rec { # would be used, and use of `<` and `>` would break the XML document. # It shouldn't cause an issue since this is cosmetic for the manual. args.name = "‹name›"; - }).options; + }).options // optionalAttrs (freeformType != null) { + # Expose the sub options of the freeform type. Note that the option + # discovery doesn't care about the attribute name used here, so this + # is just to avoid conflicts with potential options from the submodule + _freeformOptions = freeformType.getSubOptions prefix; + }; getSubModules = modules; substSubModules = m: submoduleWith (attrs // { modules = m; -- cgit 1.4.1