首页 > 解决方案 > VSCode 扩展中的竞争语言配置

问题描述

contributes.languages当多个扩展通过贡献点为同一语言提供语言配置文件时,是否有人碰巧知道 VSCode 的行为?

我只是想在我的扩展程序中向一种语言添加一个自动关闭对,但是,至少还有一个其他活动扩展程序(我的插件的每个用户也可能拥有)为此提供了自己的配置语言。

它是一种还是另一种?如果是这样,基于什么?文档建议多个配置是可以的,因为它说贡献点也可以作为“丰富”VSCode 语言知识的一种方式,但我似乎无法让我的扩展程序添加一个自动关闭对。

我确定我使用了正确的语言 ID(配置此语言的其他扩展使用的 ID)以及扩展。

如果它只允许我扩展语言的配置,我应该只提供language-configuration.json文件中我需要的信息吗?例如:

{
    "autoClosingPairs": [
        { "open": "/**", "close": " */", "notIn": ["string"] }
    ]
}

如果所有这些都有意义,并且贡献不起作用,那么有人对调试问题有什么建议吗?提前致谢。

标签: visual-studio-codevscode-extensions

解决方案


好的,如果其他人碰巧遇到这个问题(不太可能考虑到这个问题受到的关注:)哦,好吧。),你的问题可能是清单中的publisher关键。package.json

在抓了几天稻草之后,我终于开始尝试一些没有意义且似乎对此没有影响的东西。所以我开始从我的 VSCode 扩展相关键中删除package.json,果然,当我到达时publisher,瞧!我的语言配置终于拿走了。

我对“为什么?”的最初假设是,vscode 在幕后按字母顺序注册扩展,而另一个扩展的发布者可能在我的发布者名称之前。但是,唉,我dubs-dev-extensions的出版商名称是,而竞争扩展的出版商名称也配置了相关语言salesforce,所以就有了这个假设。此外,当我决定更改我的发布者名称以查看发生了什么时,我选择了peter-weinberg,这也有效(因此它在没有发布者密钥和新发布者名称的情况下有效)。两者兼而有之peter-weinberg_dubs-dev-extensionssalesforce,所以按字母顺序排列不是答案。在写这篇文章的时候,我很困惑,并会尝试向 vscode 报告一个错误,如果不是,至少我希望能得到一些解释,说明为什么我会遇到这种奇怪的行为。


推荐阅读