From e0b49a9a1885708d3565e9a59847b14a42faef2c Mon Sep 17 00:00:00 2001 From: Brian Shu Date: Tue, 5 Jan 2021 11:26:03 -0500 Subject: added attach async --- lua/nvim-treesitter/configs.lua | 4 +++- lua/nvim-treesitter/utils.lua | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'lua') diff --git a/lua/nvim-treesitter/configs.lua b/lua/nvim-treesitter/configs.lua index b0d38244e..a7bbcb97d 100644 --- a/lua/nvim-treesitter/configs.lua +++ b/lua/nvim-treesitter/configs.lua @@ -78,7 +78,7 @@ local function enable_mod_conf_autocmd(mod) return end - local cmd = string.format("lua require'nvim-treesitter.configs'.attach_module('%s')", mod) + local cmd = string.format("lua require'nvim-treesitter.configs'.attach_module_async('%s')", mod) api.nvim_command(string.format("autocmd NvimTreesitter FileType * %s", cmd)) config_mod.loaded = true @@ -311,6 +311,8 @@ function M.attach_module(mod_name, bufnr, lang) end end +M.attach_module_async = utils.async(M.attach_module) + -- Detaches a module to a buffer -- @param mod_name the module name -- @param bufnr the bufnr diff --git a/lua/nvim-treesitter/utils.lua b/lua/nvim-treesitter/utils.lua index de579bd6d..00ba4b943 100644 --- a/lua/nvim-treesitter/utils.lua +++ b/lua/nvim-treesitter/utils.lua @@ -141,4 +141,15 @@ function M.index_of(tbl, obj) end end +function M.async(f) + return function(...) + local handle + handle = vim.loop.new_async(vim.schedule_wrap(function(...) + f(...) + handle:close() + end)) + handle:send(...) + end +end + return M -- cgit v1.2.3-70-g09d2