[英]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.