vscode 在JSDoc注解中,括号颜色不正确,

plicqrtu  于 5个月前  发布在  Vscode
关注(0)|答案(7)|浏览(165)

这个问题是否在禁用所有扩展时发生?:是

  • VS Code 版本:1.80.0
  • OS 版本:Windows 10 22H2 19045.3086

重现步骤:

  1. 更改主题文件中 "punctuation.definition.bracket.curly.begin.jsdoc" 和 "punctuation.definition.bracket.curly.end.jsdoc" 作用域的 JSDoc 注解括号的颜色。
  2. 重新加载窗口或重启编辑器。你会发现没有区别。括号的颜色与所有代码相同。主题 JSDoc 颜色不影响全局颜色,看起来很丑。
  3. 如果你通过 "Inspect Editor Tokens And Scopes" 功能检查颜色,你会看到检查器显示正确的颜色,但编辑器显示的是截图中的全局颜色。注解括号的颜色必须与 "string" 和 "object" 单词的颜色相同,就像我在主题中将它们设置为一样:
{
      "name": "JSDoc Instance and brackets",
      "scope": [
        "entity.name.type.instance.jsdoc",
        "punctuation.definition.bracket.curly.begin.jsdoc",
        "punctuation.definition.bracket.curly.end.jsdoc",
      ],
      "settings": {
        "foreground": "#8e4a91"
      }
}

kuhbmx9i

kuhbmx9i1#

看起来像是括号配对颜色化。
你能尝试禁用它并检查主题覆盖是否正确应用吗?

gywdnpxw

gywdnpxw2#

是的,这是真的。如果我禁用这个设置,主题会按照预期工作,但是代码中没有配对的颜色化。

hujrc8aj

hujrc8aj3#

是的,这是为了澄清该功能是否在注解中起作用。
@hediet 是否应该在注解中高亮显示成对的内容,是否有方法可以控制它?
/assign hediet -mjbvz

2w2cym1i

2w2cym1i4#

我猜扩展为这些标记提供了一个语法。这个语法可以标记这些标记,使它们忽略括号。

/**
* @param {string} foo
*/
function foo() {

}

这也发生在默认的js语法中:

如果你对此有强烈的感觉,我们可以将这些标记从括号匹配中排除。

3pvhb19x

3pvhb19x5#

这不是一个扩展!括号对颜色化是内置的!

lskq00tm

lskq00tm6#

如果你对此有强烈的看法,我们可以将这些标记从括号配对匹配中排除。
依我之见,这是一个明智的决定,因为注解不是代码,所以无需在注解中进行配对着色。

ulydmbyx

ulydmbyx7#

JSDoc是代码的一部分,尤其是当它被用作(部分)替代TS时。如果能为{}包围的类型设置默认注解颜色会更好,这应该涵盖了大多数常规情况。但是,对于类型值的突出显示(不考虑包围的嵌套层级,从头开始)会更好,因为它可以用于泛型、具有嵌套对象和回调函数的类型。对于这些情况,从...中看到会很好。

相关问题