#2357 Handle Windows paths where the drive letter colon is encoded

This commit is contained in:
w0rp
2019-03-13 16:44:29 +00:00
parent 67ea571659
commit 80ef7ea2d0
2 changed files with 43 additions and 18 deletions

View File

@@ -205,11 +205,13 @@ function! ale#path#FromURI(uri) abort
let l:encoded_path = a:uri
endif
let l:path = ale#uri#Decode(l:encoded_path)
" If the path is like /C:/foo/bar, it should be C:\foo\bar instead.
if l:encoded_path =~# '^/[a-zA-Z][:|]'
let l:encoded_path = substitute(l:encoded_path[1:], '/', '\\', 'g')
let l:encoded_path = l:encoded_path[0] . ':' . l:encoded_path[2:]
if has('win32') && l:path =~# '^/[a-zA-Z][:|]'
let l:path = substitute(l:path[1:], '/', '\\', 'g')
let l:path = l:path[0] . ':' . l:path[2:]
endif
return ale#uri#Decode(l:encoded_path)
return l:path
endfunction