lib/types: Drop misleading plural from type descriptions #170561

Probably being the most prominent document demonstrating the problem,
configuration.nix(5) describes various types in plural, e.g.
- `           Type: list of strings`
- `           Type: list of systemd options`

However, there are other cases where appending "s" to the inner type
effectively changes the type, e.g.
- ```
           Type: list of string matching the pattern
           [a-zA-Z0-9@%:_.\-]+[.](service|socket|device|mount|automount|swap|target|path|timer|scope|slice)s
```

This should've read "list of string[s]..." but instead changes the
regular expression.

Simply drop the best-effort plural in favour of correctness and
simplicity rather than adding more grammar related logic/trying to fix
this.
This commit is contained in:
Klemens Nanni 2022-04-27 05:42:16 +02:00
parent d9e593ed58
commit 7bec3e60ef

View File

@ -397,7 +397,7 @@ rec {
listOf = elemType: mkOptionType rec { listOf = elemType: mkOptionType rec {
name = "listOf"; name = "listOf";
description = "list of ${elemType.description}s"; description = "list of ${elemType.description}";
check = isList; check = isList;
merge = loc: defs: merge = loc: defs:
map (x: x.value) (filter (x: x ? value) (concatLists (imap1 (n: def: map (x: x.value) (filter (x: x ? value) (concatLists (imap1 (n: def:
@ -426,7 +426,7 @@ rec {
attrsOf = elemType: mkOptionType rec { attrsOf = elemType: mkOptionType rec {
name = "attrsOf"; name = "attrsOf";
description = "attribute set of ${elemType.description}s"; description = "attribute set of ${elemType.description}";
check = isAttrs; check = isAttrs;
merge = loc: defs: merge = loc: defs:
mapAttrs (n: v: v.value) (filterAttrs (n: v: v ? value) (zipAttrsWith (name: defs: mapAttrs (n: v: v.value) (filterAttrs (n: v: v ? value) (zipAttrsWith (name: defs:
@ -449,7 +449,7 @@ rec {
# error that it's not defined. Use only if conditional definitions don't make sense. # error that it's not defined. Use only if conditional definitions don't make sense.
lazyAttrsOf = elemType: mkOptionType rec { lazyAttrsOf = elemType: mkOptionType rec {
name = "lazyAttrsOf"; name = "lazyAttrsOf";
description = "lazy attribute set of ${elemType.description}s"; description = "lazy attribute set of ${elemType.description}";
check = isAttrs; check = isAttrs;
merge = loc: defs: merge = loc: defs:
zipAttrsWith (name: defs: zipAttrsWith (name: defs: