能否有人给我一些提示或指向相关文档?
能否有人给我一些提示或指向相关文档?
这里涉及到两个概念:
如果您正在编写自己的语法,或从TextMate等转换,则有可能使用与主题定义的不同的范围。在这种情况下,即使实际上已经定义了这些标记,它们之间也没有清晰的区别。
有两种解决方法。第一种方法是使用自定义范围扩展主题,并以所需颜色对其进行着色。除非每个使用您的语言的人都喜欢您的配色方案,否则这不是一个好的选择。另一个方法是使用已由VSCode和主题作者定义和着色的(有限的)范围。很可能您的语言在您选择的主题中看起来很好,在其他主题中也足够好。
以下是默认暗色VSCode主题中定义的comment
范围的示例。
"name": "Dark Visual Studio",
"settings": [
{
"scope": "comment",
"settings": {
"foreground": "#608b4e"
}
},
这里是C++语法中等价的语言片段:
"comments": {
"patterns": [
{
"captures": {
"0": {
"name": "punctuation.definition.comment.java"
}
},
"match": "/\\*\\*/",
"name": "comment.block.empty.java"
},
基本上,语言根据需要定义了多个comment
令牌,并且由于主题表示comment.*
将是绿色的,因此它们都会被着色。
根据官方文档,无需修补主题:
要调整编辑器的语法突出显示颜色,请在您的用户设置settings.json文件中使用editor.tokenColorCustomizations。
除了简单的令牌自定义外,您还可以使用略微更复杂的设置完全覆盖TextMate规则,例如:
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": "keyword.control.ref.latex",
"settings": {
"foreground": "#FF0000"
}
}
]
}
<a href="<?php echo ROOT_URL ?>">Home</a></li>
,而echo
和ROOT_URL
常量几乎是白色的。您能否提供如何更改它们的提示?或者我应该在stackoverflow上开一个新问题吗?谢谢。 - Robert.plist
文件(或者是.tmLanguage
文件)中。在这些文件中,为了进行语法高亮,声明了不同的标记类型:
在这里查看更多信息:https://code.visualstudio.com/Docs/customization/colorizer
你不需要在.plist
文件中定义颜色!
标记类型和颜色之间的关系是在颜色主题声明中完成的。
在这里学习更多: https://code.visualstudio.com/Docs/customization/themes 和 如何在 Visual Studio Code 中添加主题?
一般来说,在您尝试扩展 VSCode 时,此文档也会有所帮助:https://code.visualstudio.com/docs/extensionAPI/overview
.tmLanguage
文件而非 .plist
文件,它们是基于 XML 的替代语法。从功能上讲,它们实现相同的目标。您只需要使用其中一种文件格式即可。 - seairth您可以考虑使用颜色主题
自VSCode 1.44(2020年3月)以来,您现在拥有:
Theme Support for Semantic Tokens
Color themes can now write rules to color semantic tokens reported by language extensions like TypeScript.
"semanticHighlighting": true, "semanticTokenColors": { "variable.declaration.readonly:java": { "foreground": "#00ff00" "fontStyle": "bold" } }
The rule above defines that all declarations of readonly variables in Java should be colored green and bold
See the Semantic Highlighting Wiki Page for more information.