lib/options: refactor

This commit is contained in:
Gaetan Lepage 2024-05-17 10:30:31 +02:00 committed by Gaétan Lepage
parent 53697141b5
commit 7697a1cc5a

View file

@ -56,11 +56,12 @@ rec {
}; };
defaultNullOpts = rec { defaultNullOpts = rec {
mkNullable = # Description helpers
type: default: desc: mkDefaultDesc = defaultValue: "default: `${toString defaultValue}`";
mkNullOrOption type ( mkDesc =
default: desc:
let let
defaultDesc = "default: `${default}`"; defaultDesc = mkDefaultDesc default;
in in
if desc == "" then if desc == "" then
defaultDesc defaultDesc
@ -69,70 +70,25 @@ rec {
${desc} ${desc}
${defaultDesc} ${defaultDesc}
'' '';
);
mkNullable =
type: default: desc:
mkNullOrOption type (mkDesc default desc);
mkNullableWithRaw = type: mkNullable (nixvimTypes.maybeRaw type); mkNullableWithRaw = type: mkNullable (nixvimTypes.maybeRaw type);
mkStrLuaOr = mkStrLuaOr =
type: default: desc: type: default: desc:
mkNullOrStrLuaOr type ( mkNullOrStrLuaOr type (mkDesc default desc);
let
defaultDesc = "default: `${default}`";
in
if desc == "" then
defaultDesc
else
''
${desc}
${defaultDesc}
''
);
mkStrLuaFnOr = mkStrLuaFnOr =
type: default: desc: type: default: desc:
mkNullOrStrLuaFnOr type ( mkNullOrStrLuaFnOr type (mkDesc default desc);
let
defaultDesc = "default: `${default}`";
in
if desc == "" then
defaultDesc
else
''
${desc}
${defaultDesc} mkLua = default: desc: mkNullOrLua (mkDesc default desc);
''
);
mkLua = mkLuaFn = default: desc: mkNullOrLuaFn (mkDesc default desc);
default: desc:
mkNullOrLua (
(optionalString (desc != "") ''
${desc}
'')
+ ''
default: `${default}`
''
);
mkLuaFn =
default: desc:
let
defaultDesc = "default: `${default}`";
in
mkNullOrLuaFn (
if desc == "" then
defaultDesc
else
''
${desc}
${defaultDesc}
''
);
mkNum = default: mkNullableWithRaw types.number (toString default); mkNum = default: mkNullableWithRaw types.number (toString default);
mkInt = default: mkNullableWithRaw types.int (toString default); mkInt = default: mkNullableWithRaw types.int (toString default);
@ -181,18 +137,7 @@ rec {
apply = mapNullable ( apply = mapNullable (
value: if isInt value then value else mkRaw "vim.diagnostic.severity.${strings.toUpper value}" value: if isInt value then value else mkRaw "vim.diagnostic.severity.${strings.toUpper value}"
); );
description = description = mkDesc default desc;
let
defaultDesc = "default: `${toString default}`";
in
if desc == "" then
defaultDesc
else
''
${desc}
${defaultDesc}
'';
}; };
mkLogLevel = mkLogLevel =
default: desc: default: desc:
@ -202,18 +147,7 @@ rec {
apply = mapNullable ( apply = mapNullable (
value: if isInt value then value else mkRaw "vim.log.levels.${strings.toUpper value}" value: if isInt value then value else mkRaw "vim.log.levels.${strings.toUpper value}"
); );
description = description = mkDesc default desc;
let
defaultDesc = "default: `${toString default}`";
in
if desc == "" then
defaultDesc
else
''
${desc}
${defaultDesc}
'';
}; };
mkHighlight = mkHighlight =