sharkdp / fd

A simple, fast and user-friendly alternative to 'find'
Apache License 2.0
34.25k stars 816 forks source link

Add WSL2 support for hyperlinks #1608

Open TiltedToast opened 3 months ago

TiltedToast commented 3 months ago

I noticed that the hyperlinks generated by fd don't quite work inside wsl2 as you have to use a very specific hostname in this case.

Thankfully as far as I'm aware every officially supported wsl2 distro comes with the wslpath utility that can quickly convert between windows and wsl paths so getting the hostname is as easy as calling that with the root of the file system as an argument.

Performance wise this shouldn't cause any issues, since it only runs once regardless of how many files are being printed. Other unix environments should be unaffected by this, since it'll just silently fail and use gethostname as usual.

tavianator commented 3 months ago

Perhaps we can copy how ripgrep does it? https://github.com/BurntSushi/ripgrep/blob/ea99421ec896fcc9a9cd5367d42a80f89316822f/crates/core/flags/hiargs.rs#L1384-L1406

TiltedToast commented 3 months ago

Yeah you're right, that is definitely a better way of doing it. It also seems that ripgrep automatically detects common terminals and uses their specific schemes, seems like something that might be worth looking into hmm

EDIT:

Seems like I was mistaken, looks like they don't do any checks like that and just let the user choose a format if they want to have one. VS Code's integrated terminal in my case just does this on its own I guess, they do bundle it for their own search iirc so makes sense