add support of set to use pipe as lhs
This commit is contained in:
parent
3abddcaf77
commit
00364dee14
2 changed files with 15 additions and 6 deletions
11
lib.nix
11
lib.nix
|
@ -121,15 +121,20 @@ let
|
|||
or' = op kw_or;
|
||||
not = expr: spaceBetween [ kw_not expr ];
|
||||
|
||||
local = expr: spaceBetween [ kw_local expr ];
|
||||
|
||||
validSetVariable = expr:
|
||||
if isJoin expr && expr.sep == "." then expr
|
||||
else if isRaw expr then expr
|
||||
else raw (validString expr);
|
||||
set = var: val: join " = " [ (validSetVariable var) val ];
|
||||
|
||||
# Type: validBlockBody :: a -> [b]
|
||||
validBlockBody = body:
|
||||
if isList body then body
|
||||
else if isAttrs body then [ body ]
|
||||
else validationError body "is not valid block body";
|
||||
|
||||
local = expr: spaceBetween [ kw_local expr ];
|
||||
set = variable: value: join " = " [ (raw variable) value ];
|
||||
|
||||
funcParams' = params: wrapParen (join ", " (map raw params));
|
||||
|
||||
func = fnName: params: body:
|
||||
|
|
10
lib.test.nix
10
lib.test.nix
|
@ -177,15 +177,19 @@ with nix2lua; pkgs.lib.runTests {
|
|||
]);
|
||||
expected = "require(\"nvim-tree.api\").config.mappings.default_on_attach(bufnr)";
|
||||
};
|
||||
"test returns lua with setting value to the variable" = {
|
||||
"test returns a simple var definition" = {
|
||||
expr = toLua (set "parser_config.d2" { });
|
||||
expected = "parser_config.d2 = { }";
|
||||
};
|
||||
"test returns lua with setting value to the local variable" = {
|
||||
"test returns a var definition with pipe in the name part" = {
|
||||
expr = toLua (set (pipe1 "parser_config" "d2") { });
|
||||
expected = "parser_config.d2 = { }";
|
||||
};
|
||||
"test returns a local var definition" = {
|
||||
expr = toLua (local (set "parser_config.d2" { }));
|
||||
expected = "local parser_config.d2 = { }";
|
||||
};
|
||||
"test returns a short variant of setting a value to the local variable" = {
|
||||
"test returns a short variant of local var definitions" = {
|
||||
expr = toLua (lset "parser_config.d2" { });
|
||||
expected = "local parser_config.d2 = { }";
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue