From 3d217bffce6a3e57a0da4c67a3fd833d9c17e3ec Mon Sep 17 00:00:00 2001 From: ray-x Date: Thu, 7 Apr 2022 11:37:14 +1000 Subject: [PATCH] prevent recursion loop --- lua/navigator/lspclient/clients.lua | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lua/navigator/lspclient/clients.lua b/lua/navigator/lspclient/clients.lua index 6ccb487..bb26d7e 100644 --- a/lua/navigator/lspclient/clients.lua +++ b/lua/navigator/lspclient/clients.lua @@ -430,9 +430,6 @@ local function load_cfg(ft, client, cfg, loaded) -- log(lspconfig.available_servers()) -- force reload with config lspconfig[client].setup(cfg) - vim.defer_fn(function() - vim.cmd([[doautocmd FileType ]] .. ft) - end, 100) log(client, 'loading for', ft) end -- need to verify the lsp server is up @@ -692,7 +689,7 @@ local function get_cfg(client) end end -local function setup(user_opts) +local function setup(user_opts, cnt) user_opts = user_opts or {} local ft = vim.bo.filetype local bufnr = user_opts.bufnr or vim.api.nvim_get_current_buf() @@ -700,10 +697,17 @@ local function setup(user_opts) log('nil filetype, callback') local ext = vim.fn.expand('%:e') if ext ~= '' then + local cnt = cnt or 0 local opts = vim.deepcopy(user_opts) + if cnt > 3 then + log('failed to load filetype, skip') + return + else + cnt = cnt + 1 + end vim.defer_fn(function() log('defer_fn', ext, ft) - setup(opts) + setup(opts, cnt) end, 200) return else