我试图让Visual Studio Code的主题符合我的要求。目前,我正在尝试使用Obsidian使用C#规则,但我不确定使用哪个关键字来覆盖颜色自定义。 VSCode似乎不识别接口,因为它们是特定于语言的。
"editor.tokenColorCustomizations": {
"functions" :{
"foreground": "#F1F2F3"
},
"interface": { //not valid
"foreground": "#B48C8C"
}
}
如何让VSCode颜色自定义识别c#特定语法?
答案 0 :(得分:6)
editor.tokenColorCustomizations 可以使用多个值:注释,函数,关键字,数字,字符串,类型和变量。如果这些都不适用于您 textMateRules 也可用。所以你可以这样做:
"editor.tokenColorCustomizations": {
"textMateRules": [{
"scope": "yourScopeHere",
"settings": {
"fontStyle": "italic",
"foreground": "#C69650"
}
}]
},
所以你只需要弄清楚你需要什么范围" 接口"。
为此,尝试 CTRL - Shift - P 并输入范围:选择
Developer: Inspect TM Scopes
并且对于选择的任何关键字,例如 interface ,您将获得其textmate范围的列表。这应该作为上面的范围值插入。 [根据我的经验,打开" 检查TM范围"更准确。单击面板,然后单击几个项目,然后单击所需的项目,如界面,范围面板将保持打开状态。]您可以从范围面板中复制。
您可能只需要列出的主要范围,但如果需要缩小其范围,您可以在范围中包含逗号分隔列表中列出的其他范围:...,...,... < / em>的
答案 1 :(得分:1)
查找:
{“ name”:“ storage.type.cs”,“ match”:“ @?[ [:alpha:]] [ [:alnum:]] *”}
替换为:
{“ name”:“ storage.type.interface.cs”,“ match”:“ @?[I] [[:: upper:]] [ [:alpha:]] [ [:alnum:]] “},{” name“:” storage.type.cs“,” match“:” @?[_ [:alpha:]] [_ [:alnum:]] “}
添加到settings.json:
"editor.tokenColorCustomizations": {
"[Default Dark+]": { // remove scope to apply to all themes
"textMateRules": [
{
"scope": "entity.name.type.interface.cs",
"settings": {
"foreground": "#b8d7a3"
}
},
{
"scope": "storage.type.interface.cs",
"settings": {
"foreground": "#b8d7a3"
}
}
]
}
},
答案 2 :(得分:0)
我相信可以通过添加对“ storage.type.interface.cs”的支持并添加与正则表达式匹配的支持来部分编辑“ Program Files \ Microsoft VS Code \ resources \ app \ extensions \ csharp \ syntaxes”惯例。
类似[I]([A-Z][a-z][A-Za-z]*)
您还可以排除可能的不匹配,例如
IISManager, IPhoneDevice
https://code.visualstudio.com/api/language-extensions/syntax-highlight-guide https://www.apeth.com/nonblog/stories/textmatebundle.html
祝你好运,如果完成了,请告诉我