fix(vim.ui.open): use explorer.exe instead of wslview #26947

Problem:
`vim.ui.open` uses `wslview`, which is slow and require a package from external PPA:
https://wslutiliti.es/wslu/install.html#ubuntu

Solution:
Use `explorer.exe` instead. WSL supports it by default:
https://learn.microsoft.com/en-us/windows/wsl/filesystems#view-your-current-directory-in-windows-file-explorer
This commit is contained in:
Vu Nhat Chuong 2024-02-21 00:14:50 +07:00 committed by GitHub
parent eb1e8c12e2
commit 5e4a5f1aaa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 4 additions and 4 deletions

View File

@ -143,12 +143,12 @@ function M.open(path)
else
return nil, 'vim.ui.open: rundll32 not found'
end
elseif vim.fn.executable('wslview') == 1 then
cmd = { 'wslview', path }
elseif vim.fn.executable('explorer.exe') == 1 then
cmd = { 'explorer.exe', path }
elseif vim.fn.executable('xdg-open') == 1 then
cmd = { 'xdg-open', path }
else
return nil, 'vim.ui.open: no handler found (tried: wslview, xdg-open)'
return nil, 'vim.ui.open: no handler found (tried: explorer.exe, xdg-open)'
end
local rv = vim.system(cmd, { text = true, detach = true }):wait()

View File

@ -152,7 +152,7 @@ describe('vim.ui', function()
vim.fn.executable = function() return 0 end
]]
eq(
'vim.ui.open: no handler found (tried: wslview, xdg-open)',
'vim.ui.open: no handler found (tried: explorer.exe, xdg-open)',
exec_lua [[local _, err = vim.ui.open('foo') ; return err]]
)
end)