mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-29 12:00:04 +02:00
helpers: expose maybeRaw for wider use
This commit is contained in:
parent
b0895fc9fa
commit
f0b487a10c
1 changed files with 17 additions and 14 deletions
|
@ -117,9 +117,7 @@ with lib; rec {
|
||||||
else v;
|
else v;
|
||||||
};
|
};
|
||||||
|
|
||||||
defaultNullOpts = let
|
defaultNullOpts = rec {
|
||||||
maybeRaw = t: lib.types.either t nixvimTypes.rawLua;
|
|
||||||
in rec {
|
|
||||||
mkNullable = type: default: desc:
|
mkNullable = type: default: desc:
|
||||||
mkNullOrOption type (
|
mkNullOrOption type (
|
||||||
let
|
let
|
||||||
|
@ -188,28 +186,28 @@ with lib; rec {
|
||||||
''
|
''
|
||||||
);
|
);
|
||||||
|
|
||||||
mkNum = default: mkNullable (maybeRaw lib.types.number) (toString default);
|
mkNum = default: mkNullable (with nixvimTypes; maybeRaw number) (toString default);
|
||||||
mkInt = default: mkNullable (maybeRaw lib.types.int) (toString default);
|
mkInt = default: mkNullable (with nixvimTypes; maybeRaw int) (toString default);
|
||||||
# Positive: >0
|
# Positive: >0
|
||||||
mkPositiveInt = default: mkNullable (maybeRaw lib.types.ints.positive) (toString default);
|
mkPositiveInt = default: mkNullable (with nixvimTypes; maybeRaw ints.positive) (toString default);
|
||||||
# Unsigned: >=0
|
# Unsigned: >=0
|
||||||
mkUnsignedInt = default: mkNullable (maybeRaw lib.types.ints.unsigned) (toString default);
|
mkUnsignedInt = default: mkNullable (with nixvimTypes; maybeRaw ints.unsigned) (toString default);
|
||||||
mkBool = default:
|
mkBool = default:
|
||||||
mkNullable (maybeRaw lib.types.bool) (
|
mkNullable (with nixvimTypes; maybeRaw bool) (
|
||||||
if default
|
if default
|
||||||
then "true"
|
then "true"
|
||||||
else "false"
|
else "false"
|
||||||
);
|
);
|
||||||
mkStr = default: mkNullable (maybeRaw lib.types.str) ''${builtins.toString default}'';
|
mkStr = default: mkNullable (with nixvimTypes; maybeRaw str) ''${builtins.toString default}'';
|
||||||
mkAttributeSet = default: mkNullable lib.types.attrs ''${default}'';
|
mkAttributeSet = default: mkNullable nixvimTypes.attrs ''${default}'';
|
||||||
# Note that this function is _not_ to be used with submodule elements, as it may obstruct the
|
# Note that this function is _not_ to be used with submodule elements, as it may obstruct the
|
||||||
# documentation
|
# documentation
|
||||||
mkListOf = ty: default: mkNullable (lib.types.listOf (maybeRaw ty)) default;
|
mkListOf = ty: default: mkNullable (with nixvimTypes; listOf (maybeRaw ty)) default;
|
||||||
# Note that this function is _not_ to be used with submodule elements, as it may obstruct the
|
# Note that this function is _not_ to be used with submodule elements, as it may obstruct the
|
||||||
# documentation
|
# documentation
|
||||||
mkAttrsOf = ty: default: mkNullable (lib.types.attrsOf (maybeRaw ty)) default;
|
mkAttrsOf = ty: default: mkNullable (with nixvimTypes; attrsOf (maybeRaw ty)) default;
|
||||||
mkEnum = enum: default: mkNullable (maybeRaw (lib.types.enum enum)) ''"${default}"'';
|
mkEnum = enumValues: default: mkNullable (with nixvimTypes; maybeRaw (enum enumValues)) ''"${default}"'';
|
||||||
mkEnumFirstDefault = enum: mkEnum enum (head enum);
|
mkEnumFirstDefault = enumValues: mkEnum enumValues (head enumValues);
|
||||||
mkBorder = default: name: desc:
|
mkBorder = default: name: desc:
|
||||||
mkNullable
|
mkNullable
|
||||||
nixvimTypes.border
|
nixvimTypes.border
|
||||||
|
@ -424,6 +422,11 @@ with lib; rec {
|
||||||
check = isRawType;
|
check = isRawType;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
maybeRaw = type:
|
||||||
|
types.either
|
||||||
|
type
|
||||||
|
nixvimTypes.rawLua;
|
||||||
|
|
||||||
border = with types;
|
border = with types;
|
||||||
oneOf [
|
oneOf [
|
||||||
str
|
str
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue