aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authormusjj <72612857+musjj@users.noreply.github.com>2023-02-15 10:23:02 +0700
committerGitHub <noreply@github.com>2023-02-15 11:23:02 +0800
commite20d77deac40e6e65d036acd60aff474c0f09282 (patch)
tree6c187fad0896d01a48f21a3ec96a434fe8c762c3 /lua
parentdocs: update server_configurations.md (diff)
downloadnvim-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.lua9
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