tailscale-dev/vscode-tailscale

File Explorer: Symbolic Links

Closed this issue · 3 comments

I have two machines in my tailnet. The machine that runs VSCode runs Windows. I am using it to browser the filesystem of a machine that runs Linux via the extension. In the filesystem of the Linux machine, there is a symlink:

$ stat ~/src/gh
  File: /home/lorenz/src/gh -> github.com
  Size: 10              Blocks: 8          IO Block: 4096   symbolic link
[...]

In the listing that the VSCode extensions shows, ~/src/github.com (the target of the symlink) is shown properly, i.e. as a directory that I can navigate into and traverse further.

The link ~/src/gh is rendered like a file and cannot be traversed. Opening a terminal via the respective button rendered in the file tree works as expected. It would be nice if the symlink could be followed by the extension, i.e. the directory could be traversed further. Also, it would be nice if the UI would indicate that the file actually is a symlink, maybe by displaying the target, similar to what ls/stat do: gh → github.com.

Version Information

> code --list-extensions --show-versions | Select-String "tailscale"
Tailscale.vscode-tailscale@0.6.1

Thanks @lorenzleutgeb! I just merged #212, which allows you to edit symlinks, but it doesn't solve this issue which is more tricky. I will let you know when I make some progress here.

How do symbolic links now look in the UI? Are they visually distinguishable from regular files or directories, like gh → github.com? I think that would be helpful.

@lorenzleutgeb Currently they look identical to regular files or directories. It probably wouldn't be possible to show the link target because of the limitations of the VSCode FileSystemProvider API, but we can still mark them as symbolic links at least. Created #252 to track that.