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;
|
or' = op kw_or;
|
||||||
not = expr: spaceBetween [ kw_not expr ];
|
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]
|
# Type: validBlockBody :: a -> [b]
|
||||||
validBlockBody = body:
|
validBlockBody = body:
|
||||||
if isList body then body
|
if isList body then body
|
||||||
else if isAttrs body then [ body ]
|
else if isAttrs body then [ body ]
|
||||||
else validationError body "is not valid block 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));
|
funcParams' = params: wrapParen (join ", " (map raw params));
|
||||||
|
|
||||||
func = fnName: params: body:
|
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)";
|
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" { });
|
expr = toLua (set "parser_config.d2" { });
|
||||||
expected = "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" { }));
|
expr = toLua (local (set "parser_config.d2" { }));
|
||||||
expected = "local 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" { });
|
expr = toLua (lset "parser_config.d2" { });
|
||||||
expected = "local parser_config.d2 = { }";
|
expected = "local parser_config.d2 = { }";
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue