当所有扩展都被禁用时,这个问题是否会发生?:是/否
- VS Code 版本:1.88.1
- OS 版本:Windows 11
重现步骤:
按照此 bug 的重现步骤进行操作:microsoft/vscode-cmake-tools#3651。这是我调查的根本 bug,导致我创建了这个。
我认为我已经注意到了这个问题。
实际上,如果你在没有打开 CMakePresets.json 文件的情况下打开文件夹。然后执行一个激活 CMake Tools 扩展的操作,接着再打开 CMakePresets.json 文件,由于提供者已经被激活,CMake Tools 扩展提供的 provideTextDocumentContent
方法将被调用。
然而,如果你在激活 CMake Tools 扩展之前打开 CMakePresets.json 文件,甚至在激活 CMake Tools 扩展并关闭后重新打开 CMakePresets.json 文件之后,验证仍然失败。
这让我觉得 provideTextDocumentContent
在扩展被激活时不会再次为新提供者调用。
技术上我们可以通过添加 onFileSystem:cmake-tools-schema
激活事件来解决这个问题,但我还不确定我们是否想要这样做。
谢谢
6条答案
按热度按时间sg2wtvxw1#
请按照这个bug的复现步骤进行:microsoft/vscode-cmake-tools#3651。这是我调查的根本问题,导致我创建了这个。
抱歉,我不能继续进行。欢迎提供最小的复现步骤。
这让我觉得在扩展被激活时,provideTextDocumentContent没有再次为新的提供者调用。
你能提供更多上下文吗?
CMakePresets.json
文件是磁盘上的真实文件还是从哪里来的?此外,如果扩展尚未激活,谁会为其提供内容?一般来说,如果文档已经打开并且“属于”另一个提供者,我们不会再次调用provideTextDocumentContent。
vsmadaxz2#
CMakePresets.json 是一个真实存在的文件。
我的期望是,除了当我们的扩展被激活时,它不会被另一个提供者拥有。
最小重现步骤:
这就是我稍微期望的地方,当我们提供模式提供者时,它会被重新调用并解决。
要查看我们的扩展如何提供模式:
e5nszbig3#
请注意,顶部有一个警告说无法加载模式。因此,您为模式注册了一个文本文档内容提供程序,而不是文件本身。但是,通过其他方式传递了schema-uri,对吗?
yptwkmov4#
正确。
我不太确定我是否理解您的问题。但是CMake Tools扩展使用package.json
jsonValidation
条目将文件与schema-uri关联起来。z4iuyo4d5#
嘿,@jrieken,这个问题可能需要进一步关注。
@gcampbell-msft,如果你发现问题已经不存在了,可以帮我们关闭这个问题,或者提供更多信息。
s3fp2yjn6#
好的思考。-dlj...。
在2024年7月14日星期日,VSCode Triage Bot ***@***.***>写道:嘿,@jrieken < https://github.com/jrieken >,这个问题可能需要进一步关注。@gcampbell-msft < https://github.com/gcampbell-msft >,如果你发现问题已经不存在了,可以通过关闭此问题来帮助我们,或者添加更多信息。—直接回复此电子邮件,查看GitHub上的<#211116 (comment)>,或取消订阅< https://github.com/notifications/unsubscribe-auth/AAHH6MTDVMHS3SGYRRYCYCLZMJOB3AVCNFSM6AAAAABGVHJPZGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMRXGMYTANRZHA >。你收到这封邮件是因为你订阅了这个线程。消息ID:***@***.***>