From fea039e94552037700b6a39606346a23175518da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=B3n=C3=A1n=20Carrigan?= Date: Fri, 31 Dec 2021 14:35:11 +0000 Subject: [PATCH] feat(async): vimscript function proxy --- lua/plenary/async/fn.lua | 15 +++++++++++++++ lua/plenary/async/init.lua | 1 + 2 files changed, 16 insertions(+) create mode 100644 lua/plenary/async/fn.lua diff --git a/lua/plenary/async/fn.lua b/lua/plenary/async/fn.lua new file mode 100644 index 00000000..68573a30 --- /dev/null +++ b/lua/plenary/async/fn.lua @@ -0,0 +1,15 @@ +local util = require "plenary.async.util" + +return setmetatable({}, { + __index = function(_, k) + return function(...) + -- if we are in a fast event await the scheduler + if vim.in_fast_event() then + util.scheduler() + end + + return vim.fn[k](...) + end + end, +}) + diff --git a/lua/plenary/async/init.lua b/lua/plenary/async/init.lua index f8222fc6..9bba6063 100644 --- a/lua/plenary/async/init.lua +++ b/lua/plenary/async/init.lua @@ -8,6 +8,7 @@ local lookups = { util = "plenary.async.util", lsp = "plenary.async.lsp", api = "plenary.async.api", + fn = "plenary.async.fn", tests = "plenary.async.tests", control = "plenary.async.control", }