From 38f2a2207e475916a7532bfd9f9c5d7353a1ce7b Mon Sep 17 00:00:00 2001 From: JINNOUCHI Yasushi Date: Wed, 28 Aug 2024 21:58:36 +0900 Subject: [PATCH] fix: detect async context more robustly (#254) --- lua/frecency/init.lua | 3 ++- lua/frecency/klass.lua | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lua/frecency/init.lua b/lua/frecency/init.lua index b861b44..5db13ac 100644 --- a/lua/frecency/init.lua +++ b/lua/frecency/init.lua @@ -21,7 +21,8 @@ local frecency = setmetatable({}, { return function(...) if not instance() then rawset(self, "instance", require("frecency.klass").new()) - instance():setup() + local is_async = key == "delete" or key == "validate_database" or key == "register" + instance():setup(is_async) end return instance()[key](instance(), ...) end diff --git a/lua/frecency/klass.lua b/lua/frecency/klass.lua index e633357..7de54e4 100644 --- a/lua/frecency/klass.lua +++ b/lua/frecency/klass.lua @@ -23,8 +23,9 @@ Frecency.new = function() end ---This is called when `:Telescope frecency` is called at the first time. +---@param is_async boolean ---@return nil -function Frecency:setup() +function Frecency:setup(is_async) ---@async local function init() timer.track "init() start" @@ -36,7 +37,6 @@ function Frecency:setup() timer.track "init() finish" end - local is_async = not not coroutine.running() if is_async then init() else