1

I'm building a vscode extension that proposes changes to the user. The changes are shown in a diff editor, the proposed new content of the file is provided by a FileSystemProvider. The uri used for the scheme file is structured like this:

change://original/path?scheme=file

When I'm openening the toolbar to quickly open files of the current workspace, the file is now enlisted multiple times under the recent files. It isn't even visible, which file is the original and which one is the one provided by my own FileSystemProvider.

How do I avoid my "fake files" being enlisted in the recently opened?

I'm quite sure this is possible, as other extensions like GitLens are able to do this as well, but I can't find out what's the difference and haven't found anything on the documentation of VSCode's Extension API.

Edit: I also noticed, that the diff isn't showing diagnostics data when my extension opens it, but it does when it's opened by Gitlens. So maybe this is more related to the the diff viewer than the file system provider?

1 Answers1

0

As usual, the problem turned out to be of completely different origin. The FileSystemProvider provides different versions of each file, each of which identified by a query parameter. I'm opening the differences between the original file and the modified in vscode's integrated diff viewer.

Turns out, that I forgot to strip the query parameter, when restoring the original file uri from my custom one.

So vscode actually got a different uri for the original file, each time I compared it with another modified version. Seems like VSCode is able to provide content for file uris with a query parameter, but a fails to provide meta as uris mismatch. Once I removed the query parameter from the uri, this was no longer the case and also diagnostic data was available again.