繁体   English   中英

VSCode 扩展 - 从最近打开的文件中排除 FileSystemProvider 的文件

[英]VSCode Extension - Exclude files of FileSystemProvider from recently opened files

我正在构建一个向用户提出更改建议的 vscode 扩展。 更改显示在差异编辑器中,文件的建议新内容由 FileSystemProvider 提供。 用于方案文件的 uri 结构如下:

change://original/path?scheme=file

当我打开工具栏以快速打开当前工作区的文件时,该文件现在在最近的文件下被多次登记。 它甚至不可见,哪个文件是原始文件,哪个文件是我自己的 FileSystemProvider 提供的。

如何避免我的“假文件”被列入最近打开的文件?

我很确定这是可能的,因为像 GitLens 这样的其他扩展也能够做到这一点,但我不知道有什么区别,也没有在 VSCode 的扩展 API 的文档中找到任何东西。

编辑:我还注意到,当我的扩展程序打开它时,差异没有显示诊断数据,但是当它被 Gitlens 打开时它会显示。 所以也许这与 diff 查看器比文件系统提供程序更相关?

像往常一样,问题原来是完全不同的起源。 FileSystemProvider 提供每个文件的不同版本,每个文件由一个查询参数标识。 我在 vscode 的集成差异查看器中打开原始文件和修改后的差异。

结果是,在从我的自定义文件中恢复原始文件 uri 时,我忘记了删除查询参数。

所以 vscode 实际上得到了一个不同的原始文件 uri,每次我将它与另一个修改版本进行比较。 似乎 VSCode 能够使用查询参数为文件 uris 提供内容,但是由于 uris 不匹配而无法提供元数据。 一旦我从 uri 中删除了查询参数,情况就不再如此,并且诊断数据也再次可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM