aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/nvim-treesitter/configs.lua4
-rw-r--r--lua/nvim-treesitter/utils.lua11
2 files changed, 14 insertions, 1 deletions
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