diff options
| author | William Boman <william@redwill.se> | 2023-04-03 00:33:48 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-02 22:33:48 +0000 |
| commit | 0114336145771ff7c528debba52c5ff21bf6f7a2 (patch) | |
| tree | 37802cb27b602c9c3e900aec7f3ad012ed3b8719 /lua/mason-core/functional | |
| parent | chore: consolidate generate task (#1171) (diff) | |
| download | mason-0114336145771ff7c528debba52c5ff21bf6f7a2.tar mason-0114336145771ff7c528debba52c5ff21bf6f7a2.tar.gz mason-0114336145771ff7c528debba52c5ff21bf6f7a2.tar.bz2 mason-0114336145771ff7c528debba52c5ff21bf6f7a2.tar.lz mason-0114336145771ff7c528debba52c5ff21bf6f7a2.tar.xz mason-0114336145771ff7c528debba52c5ff21bf6f7a2.tar.zst mason-0114336145771ff7c528debba52c5ff21bf6f7a2.zip | |
refactor: only schedule in a.scheduler() when in fast event (#1170)
Explicitly schedule via `a.wait(vim.schedule)` instead.
Diffstat (limited to 'lua/mason-core/functional')
| -rw-r--r-- | lua/mason-core/functional/init.lua | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lua/mason-core/functional/init.lua b/lua/mason-core/functional/init.lua index 5e0ac680..353c5cc1 100644 --- a/lua/mason-core/functional/init.lua +++ b/lua/mason-core/functional/init.lua @@ -153,4 +153,25 @@ _.lazy_when = function(condition, value) return condition and value() or nil end +---@param fn fun() +_.scheduler = function(fn) + if vim.in_fast_event() then + vim.schedule(fn) + else + fn() + end +end + +---@generic T : fun(...) +---@param fn T +---@return T +_.scheduler_wrap = function(fn) + return function(...) + local args = _.table_pack(...) + _.scheduler(function() + fn(unpack(args, 1, args.n + 1)) + end) + end +end + return _ |
