Skip to content

Commit 2ccafd1

Browse files
committed
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.
1 parent 8368a88 commit 2ccafd1

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

lua/lspconfig/configs.lua

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,11 @@ function configs.__newindex(t, config_name, config_def)
101101
api.nvim_create_autocmd(event_conf.event, {
102102
pattern = event_conf.pattern or '*',
103103
callback = function(opt)
104-
M.manager:try_add(opt.buf)
104+
-- Use vim.schedule() to ensure filetype detection happens first.
105+
-- Sometimes, BufNewFile triggers before 'filetype' is set.
106+
vim.schedule(function()
107+
M.manager:try_add(opt.buf)
108+
end)
105109
end,
106110
group = lsp_group,
107111
desc = string.format(
@@ -139,7 +143,11 @@ function configs.__newindex(t, config_name, config_def)
139143
api.nvim_create_autocmd({ 'BufReadPost', 'BufNewFile' }, {
140144
pattern = fn.fnameescape(root_dir) .. '/*',
141145
callback = function(arg)
142-
M.manager:try_add_wrapper(arg.buf, root_dir)
146+
-- Use vim.schedule() to ensure filetype detection happens first.
147+
-- Sometimes, BufNewFile triggers before 'filetype' is set.
148+
vim.schedule(function()
149+
M.manager:try_add_wrapper(arg.buf, root_dir)
150+
end)
143151
end,
144152
group = lsp_group,
145153
desc = string.format(

0 commit comments

Comments
 (0)