home/nvim: check function arity
This commit is contained in:
parent
049c95bd9f
commit
c6c7a1cf0a
|
@ -65,8 +65,8 @@
|
||||||
else if builtins.isPath func then compileExpr sc (builtins.toString func)
|
else if builtins.isPath func then compileExpr sc (builtins.toString func)
|
||||||
else if builtins.isFunction func then let
|
else if builtins.isFunction func then let
|
||||||
info = if builtins.functionArgs func == {} then (func "GET_INFO") else null; in
|
info = if builtins.functionArgs func == {} then (func "GET_INFO") else null; in
|
||||||
if builtins.isAttrs info && info?value
|
if builtins.isAttrs info && info?_name
|
||||||
then info.value
|
then info._name
|
||||||
else (compileFunc sc "" func)
|
else (compileFunc sc "" func)
|
||||||
else if builtins.isList func then ''
|
else if builtins.isList func then ''
|
||||||
{
|
{
|
||||||
|
@ -85,7 +85,11 @@
|
||||||
else if func.__kind == "prop" then
|
else if func.__kind == "prop" then
|
||||||
"${wrapExpr (compileExpr sc func.expr)}.${func.name}"
|
"${wrapExpr (compileExpr sc func.expr)}.${func.name}"
|
||||||
else if func.__kind == "call" then
|
else if func.__kind == "call" then
|
||||||
"${wrapExpr (compileExpr sc func._func)}(${builtins.concatStringsSep ", " (map (compileExpr sc) (if builtins.isList func._args then func._args else [func._args]))})"
|
let args = if builtins.isList func._args then func._args else [func._args]; in
|
||||||
|
assert (lib.assertMsg
|
||||||
|
((!(func._func?_minArity) || (builtins.length args) >= func._func._minArity) && (!(func._func?_maxArity) || (builtins.length args) <= func._func._maxArity))
|
||||||
|
"error: wrong function arity for ${compileExpr sc func._func}! expected at least ${builtins.toString func._func._minArity}; found ${builtins.toString (builtins.length args)}");
|
||||||
|
"${wrapExpr (compileExpr sc func._func)}(${builtins.concatStringsSep ", " (map (compileExpr sc) args)})"
|
||||||
else if func.__kind == "mcall" then
|
else if func.__kind == "mcall" then
|
||||||
"${wrapExpr (compileExpr sc func.val)}:${func.name}(${builtins.concatStringsSep ", " (map (compileExpr sc) (if builtins.isList func.args then func.args else [func.args]))})"
|
"${wrapExpr (compileExpr sc func.val)}:${func.name}(${builtins.concatStringsSep ", " (map (compileExpr sc) (if builtins.isList func.args then func.args else [func.args]))})"
|
||||||
else if func.__kind == "tableAttr" then
|
else if func.__kind == "tableAttr" then
|
||||||
|
@ -416,7 +420,7 @@
|
||||||
# call is required because cmp.setup is a table
|
# call is required because cmp.setup is a table
|
||||||
(call cmp.setup {
|
(call cmp.setup {
|
||||||
snippet = {
|
snippet = {
|
||||||
expand = { body, ... }: luasnip.lsp_expand body;
|
expand = { body, ... }: luasnip.lsp_expand [ body {} ];
|
||||||
};
|
};
|
||||||
view = { };
|
view = { };
|
||||||
window = {
|
window = {
|
||||||
|
@ -441,10 +445,10 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
mapping = {
|
mapping = {
|
||||||
"<C-p>" = cmp.mapping.select_prev_item [];
|
"<C-p>" = cmp.mapping.select_prev_item [{}];
|
||||||
"<C-n>" = cmp.mapping.select_next_item [];
|
"<C-n>" = cmp.mapping.select_next_item [{}];
|
||||||
"<C-space>" = cmp.mapping.complete [];
|
"<C-space>" = cmp.mapping.complete [{}];
|
||||||
"<C-e>" = cmp.mapping.close [];
|
"<C-e>" = cmp.mapping.close [{}];
|
||||||
"<cr>" = cmp.mapping.confirm {
|
"<cr>" = cmp.mapping.confirm {
|
||||||
behavior = cmp.ConfirmBehavior.Replace;
|
behavior = cmp.ConfirmBehavior.Replace;
|
||||||
select = false;
|
select = false;
|
||||||
|
@ -494,7 +498,7 @@
|
||||||
})
|
})
|
||||||
(mcall cmp.event "on" [
|
(mcall cmp.event "on" [
|
||||||
"confirm_done"
|
"confirm_done"
|
||||||
(cmp_autopairs.on_confirm_done [])
|
(cmp_autopairs.on_confirm_done [{}])
|
||||||
])
|
])
|
||||||
])); }
|
])); }
|
||||||
{ plugin = ps.comment-nvim;
|
{ plugin = ps.comment-nvim;
|
||||||
|
@ -595,8 +599,8 @@
|
||||||
# LET capabilities
|
# LET capabilities
|
||||||
(vim.tbl_extend [
|
(vim.tbl_extend [
|
||||||
"keep"
|
"keep"
|
||||||
|
((req "cmp_nvim_lsp").default_capabilities [{}])
|
||||||
(vim.lsp.protocol.make_client_capabilities [])
|
(vim.lsp.protocol.make_client_capabilities [])
|
||||||
((req "cmp_nvim_lsp").default_capabilities [])
|
|
||||||
])
|
])
|
||||||
# BEGIN
|
# BEGIN
|
||||||
] (on_attach: rust_settings: capabilities: [
|
] (on_attach: rust_settings: capabilities: [
|
||||||
|
|
Loading…
Reference in a new issue