diff options
| author | musjj <72612857+musjj@users.noreply.github.com> | 2023-02-15 10:23:02 +0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-15 11:23:02 +0800 |
| commit | e20d77deac40e6e65d036acd60aff474c0f09282 (patch) | |
| tree | 6c187fad0896d01a48f21a3ec96a434fe8c762c3 /lua | |
| parent | docs: update server_configurations.md (diff) | |
| download | nvim-lspconfig-e20d77deac40e6e65d036acd60aff474c0f09282.tar nvim-lspconfig-e20d77deac40e6e65d036acd60aff474c0f09282.tar.gz nvim-lspconfig-e20d77deac40e6e65d036acd60aff474c0f09282.tar.bz2 nvim-lspconfig-e20d77deac40e6e65d036acd60aff474c0f09282.tar.lz nvim-lspconfig-e20d77deac40e6e65d036acd60aff474c0f09282.tar.xz nvim-lspconfig-e20d77deac40e6e65d036acd60aff474c0f09282.tar.zst nvim-lspconfig-e20d77deac40e6e65d036acd60aff474c0f09282.zip | |
fix(lspinfo): normalize fname path correctly (#2343)
* fix(lspinfo): normalize `fname` path correctly
* fix(lspinfo): fallback to `fnamemodify` and `resolve` if file doesn't exist
* fix(lspinfo): normalize Windows slashes and handle double separators
* nit(lspinfo): use aliases
Co-authored-by: Raphael <glephunter@gmail.com>
* fix: improve check
---------
Co-authored-by: Raphael <glephunter@gmail.com>
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/lspconfig/ui/lspinfo.lua | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lua/lspconfig/ui/lspinfo.lua b/lua/lspconfig/ui/lspinfo.lua index c47b30cb..ce80b70a 100644 --- a/lua/lspconfig/ui/lspinfo.lua +++ b/lua/lspconfig/ui/lspinfo.lua @@ -112,9 +112,14 @@ local function make_client_info(client, fname) local workspace_folders = fn.has 'nvim-0.9' == 1 and client.workspace_folders or client.workspaceFolders local uv = vim.loop local is_windows = uv.os_uname().version:match 'Windows' - fname = vim.fn.fnamemodify(vim.fn.resolve(fname), ':p') + fname = uv.fs_realpath(fname) or fn.fnamemodify(fn.resolve(fname), ':p') + if is_windows then + fname:gsub('%/', '%\\') + end local sep = is_windows and '\\' or '/' - local fname_parts = vim.split(fname, sep, { trimempty = true }) + local fname_parts = vim.tbl_filter(function(v) + return #v > 0 + end, vim.split(fname, sep)) if workspace_folders then for _, schema in pairs(workspace_folders) do local matched = true |
