From 52346b1d7b0ffa52c5bde62604b0858b94db8350 Mon Sep 17 00:00:00 2001 From: Diomendius <42310725+Diomendius@users.noreply.github.com> Date: Tue, 29 Aug 2023 15:53:16 +1200 Subject: [PATCH] fix: ensure try_add() runs after filetype detection Sometimes, BufNewFile triggers before 'filetype' is set. Using vim.schedule() should ensure filetype detection runs before the callback. --- lua/lspconfig/configs.lua | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lua/lspconfig/configs.lua b/lua/lspconfig/configs.lua index 6a8b102c5c..4859c058b1 100644 --- a/lua/lspconfig/configs.lua +++ b/lua/lspconfig/configs.lua @@ -102,7 +102,11 @@ function configs.__newindex(t, config_name, config_def) api.nvim_create_autocmd(event_conf.event, { pattern = event_conf.pattern or '*', callback = function(opt) - M.manager:try_add(opt.buf) + -- Use vim.schedule() to ensure filetype detection happens first. + -- Sometimes, BufNewFile triggers before 'filetype' is set. + vim.schedule(function() + M.manager:try_add(opt.buf) + end) end, group = lsp_group, desc = string.format( @@ -145,7 +149,12 @@ function configs.__newindex(t, config_name, config_def) if #M.manager:clients() == 0 then return true end - M.manager:try_add_wrapper(arg.buf, root_dir) + + -- Use vim.schedule() to ensure filetype detection happens first. + -- Sometimes, BufNewFile triggers before 'filetype' is set. + vim.schedule(function() + M.manager:try_add_wrapper(arg.buf, root_dir) + end) end, group = lsp_group, desc = string.format(