如何解决如何“覆盖” VSCode 主题的语义标记类型
我想知道如何调整我的 VSCode 主题(One Dark Pro),一个带有语义突出显示的主题。
我无法覆盖其某些语义标记类型。
对于大多数主题,我会在 settings.json 中编写:
{
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"name": "Javascript - Variable/object","scope": [
"variable.other.object.js"
],"settings": {
"foreground": "#c7452e","fontStyle": "bold italic"
}
}
]
}
}
但是对于这个主题(以及其他具有语义观点的主题),我无法覆盖它,就好像我需要在 CSS 中使用 !important
一样。
所以这是我的规则之后我的令牌和范围检查的结果。
如您所见,我的设置确实被读取,但显然不够“具体”以击败语义解释或被它覆盖,并且被忽略(最后三行),而是修改语义标记类型变得普遍。
有没有办法针对每个文本对象范围执行此操作(即不会丢失该精彩主题的其余语义),就像我只想更改该特定项目的颜色一样?
解决方法
因此,当主题突出显示语法时,settings.json
文件优先于设置主题实现的语法突出显示,但是,如果您激活语义突出显示,则主题突出显示您的语法,您的 settings.json 文件优先并覆盖主题,然后语言服务器优先于主题和本地用户、工作区、settings.json
文件。因此,换句话说,您无法覆盖该令牌,因为该令牌已被优先级高于您的配置文件的范围覆盖。话虽如此,如果您不喜欢它,只需关闭语义突出显示(下面的代码片段显示了关闭语义突出显示的配置)。
/** @file "./.vscode/settings.json" */
{
"editor.semanticHighlighting.enabled": false
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。