lib/options: mkEnum quote default if string

As there's only a handful of call-sites to fix, ensure all `mkEnum`
defaults are passed in as the correct type (tree wide) and change
`mkEnum` to now correctly render string-type defaults "quoted" (like
`mkString` does).
This commit is contained in:
Matt Sturgeon 2024-05-30 03:08:22 +01:00
parent 993deb227e
commit ff1ab1700c
No known key found for this signature in database
GPG key ID: 4F91844CED1A8299
3 changed files with 11 additions and 8 deletions

View file

@ -120,7 +120,12 @@ rec {
mkAttributeSet = default: mkNullable nixvimTypes.attrs ''${default}'';
mkListOf = ty: default: mkNullable (with nixvimTypes; listOf (maybeRaw ty)) default;
mkAttrsOf = ty: default: mkNullable (with nixvimTypes; attrsOf (maybeRaw ty)) default;
mkEnum = enumValues: default: mkNullableWithRaw (types.enum enumValues) ''"${default}"'';
mkEnum =
enumValues: default:
mkNullableWithRaw (types.enum enumValues) (
# TODO we should remove this once `mkDefaultDesc` no longer has a special case
if isString default then generators.toPretty { } default else default
);
mkEnumFirstDefault = enumValues: mkEnum enumValues (head enumValues);
mkBorder =
default: name: desc:

View file

@ -51,7 +51,7 @@ in
1
2
]
"1"
1
''
Change to 0 if you want to save memory, but having multiple ccls processes operating in the
same directory may corrupt ccls's in-memory representation of the index.
@ -206,7 +206,7 @@ in
1
2
]
"2"
2
''
`ccls` can index the contents of comments associated with functions/types/variables (macros
are not handled).
@ -218,12 +218,11 @@ in
'';
multiVersion =
helpers.defaultNullOpts.mkEnum
helpers.defaultNullOpts.mkEnumFirstDefault
[
0
1
]
"0"
''
Index a file only once (`0`), or in each translation unit that includes it (`1`).
@ -282,7 +281,7 @@ in
1
2
]
"2"
2
''
Determine whether a file should be re-indexed when any of its dependencies changes
timestamp.

View file

@ -129,12 +129,11 @@ mkVimPlugin config {
'';
output_win_style =
helpers.defaultNullOpts.mkEnum
helpers.defaultNullOpts.mkEnumFirstDefault
[
false
"minimal"
]
"false"
''
Value passed to the style option in `:h nvim_open_win()`.
'';