diff options
| author | Michael Lingelbach <m.j.lbach@gmail.com> | 2021-12-23 11:58:13 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-12-23 11:58:13 -0500 |
| commit | bbba0ccbf8aef4dd36d4ed7fa49518387285534d (patch) | |
| tree | b02b4f54fbcefde3ac5f8233ed240b90d3583f4d /lua/lspconfig/configs.lua | |
| parent | docs: update server_configurations.md (diff) | |
| download | nvim-lspconfig-bbba0ccbf8aef4dd36d4ed7fa49518387285534d.tar nvim-lspconfig-bbba0ccbf8aef4dd36d4ed7fa49518387285534d.tar.gz nvim-lspconfig-bbba0ccbf8aef4dd36d4ed7fa49518387285534d.tar.bz2 nvim-lspconfig-bbba0ccbf8aef4dd36d4ed7fa49518387285534d.tar.lz nvim-lspconfig-bbba0ccbf8aef4dd36d4ed7fa49518387285534d.tar.xz nvim-lspconfig-bbba0ccbf8aef4dd36d4ed7fa49518387285534d.tar.zst nvim-lspconfig-bbba0ccbf8aef4dd36d4ed7fa49518387285534d.zip | |
fix: do not attach server to buffers with nil or missing name (#1597)
Diffstat (limited to 'lua/lspconfig/configs.lua')
| -rw-r--r-- | lua/lspconfig/configs.lua | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/lua/lspconfig/configs.lua b/lua/lspconfig/configs.lua index 3723df1f..025d94bd 100644 --- a/lua/lspconfig/configs.lua +++ b/lua/lspconfig/configs.lua @@ -79,7 +79,11 @@ function configs.__newindex(t, config_name, config_def) function M.launch() local root_dir if get_root_dir then - root_dir = get_root_dir(util.path.sanitize(api.nvim_buf_get_name(0)), api.nvim_get_current_buf()) + local buf_name = api.nvim_buf_get_name(0) + if buf_name == '' or not buf_name then + return + end + root_dir = get_root_dir(util.path.sanitize(buf_name), api.nvim_get_current_buf()) end if root_dir then @@ -91,7 +95,11 @@ function configs.__newindex(t, config_name, config_def) ) ) for _, bufnr in ipairs(vim.api.nvim_list_bufs()) do - local buf_dir = util.path.sanitize(api.nvim_buf_get_name(bufnr)) + local buf_name = api.nvim_buf_get_name(bufnr) + if buf_name == '' or not buf_name then + return + end + local buf_dir = util.path.sanitize(buf_name) if buf_dir:sub(1, root_dir:len()) == root_dir then M.manager.try_add_wrapper(bufnr) end @@ -101,7 +109,11 @@ function configs.__newindex(t, config_name, config_def) -- Effectively this is the root from lspconfig's perspective, as we use -- this to attach additional files in the same parent folder to the same server. -- We just no longer send rootDirectory or workspaceFolders during initialization. - local pseudo_root = util.path.dirname(util.path.sanitize(api.nvim_buf_get_name(0))) + local buf_name = api.nvim_buf_get_name(0) + if buf_name == '' or not buf_name then + return + end + local pseudo_root = util.path.dirname(util.path.sanitize(buf_name)) M.manager.add(pseudo_root, true) else vim.notify( @@ -209,7 +221,11 @@ function configs.__newindex(t, config_name, config_def) local id local root_dir - local buf_path = util.path.sanitize(api.nvim_buf_get_name(bufnr)) + local buf_name = api.nvim_buf_get_name(bufnr) + if buf_name == '' or not buf_name then + return + end + local buf_path = util.path.sanitize(buf_name) if get_root_dir then root_dir = get_root_dir(buf_path, bufnr) |
