From 904c13e6b572552a676efcaec640dfa8bd199e59 Mon Sep 17 00:00:00 2001 From: TJ DeVries Date: Sun, 8 Jan 2023 15:31:38 -0500 Subject: dist: transpile cfilter.vim => cfilter.lua #21662 Vim has changed cfilter.vim from vimscript to vim9script. Nvim supports only vimscript, not vim9script. --- runtime/lua/_vim9script.lua | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'runtime/lua') diff --git a/runtime/lua/_vim9script.lua b/runtime/lua/_vim9script.lua index b7bde332f5..363d061451 100644 --- a/runtime/lua/_vim9script.lua +++ b/runtime/lua/_vim9script.lua @@ -27,6 +27,29 @@ local vim9 = (function() end end + M.fn_ref = function(module, name, copied, ...) + for _, val in ipairs({ ... }) do + table.insert(copied, val) + end + + local funcref = name + if type(funcref) == 'function' then + return funcref(unpack(copied)) + elseif type(funcref) == 'string' then + if vim.fn.exists('*' .. funcref) == 1 then + return vim.fn[funcref](unpack(copied)) + end + + if module[funcref] then + module[funcref](unpack(copied)) + end + + error('unknown function: ' .. funcref) + else + error(string.format('unable to call funcref: %s', funcref)) + end + end + M.fn_mut = function(name, args, info) local result = vim.fn._Vim9ScriptFn(name, args) for idx, val in pairs(result[2]) do -- cgit