[英]VS Code - highlight some variables with TextMate
VS Code 1.15添加了對TextMate語法規則的支持。 我想用以下規則突出顯示JavaScript中的一些變量:自我,我。 我怎樣才能做到這一點?
簡短的答案:您不能。
我假設您是指新的editor.tokenColorCustomizations
設置 。 此設置僅允許您更改與TextMate語法已定義的特定范圍相關的顏色。 JS gramar並沒有對self
和me
進行特殊處理,它們使用與其他變量相同的variable.other.readwrite.js
范圍:
將此與this
關鍵字進行對比:它具有自己獨特的variable.language.this.js
范圍,因此我們可以使用該設置this
顏色this
紅色:
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": "variable.language.this.js",
"settings": {
"foreground": "#FF0000"
}
}
]
}
正如@ Gama11所說,您不能使用editor.tokenColorCustomizations來實現,但是可以使用擴展名TODO Highlight來實現 。 它不是預期的用途,但可以輕松滿足您的需求。 唯一的問題是,如果使用默認實現,則“ self”和“ me”也會出現在任何文本中,但是可以使用帶有單詞邊界的正則表達式來解決。 這是一個示例實現:
"todohighlight.keywords": [
"DEBUG:",
"REVIEW:",
{
"text": "NOTE:",
"color": "#ff0000",
"backgroundColor": "yellow",
"overviewRulerColor": "grey"
},
{
"text": "HACK:",
"color": "#000",
"isWholeLine": false
},
{
"text": "TODO:",
"color": "red",
"borderRadius":"0px",
"backgroundColor": "rgba(0,0,0,.2)"
}
],
您可以只用“自我”和“我”代替。 我使用一種有趣的模式:
// highlight `TODO:`,`FIXME:` and 'HACK:' and content between parentheses
// "todohighlight.keywordsPattern": "((\\s\\sTODO\\s*:\\s{0,5})|(\\s\\sFIXME\\s*:\\s{0,5})|(\\s\\sHACK\\s*:\\s{0,5}))(\\(.*\\)\\s)*",
它突出顯示TODO:,FIXME:和HACK :,如果它們前面有一些空格以及后面的任何內容(在括號中)。
但是我不明白為什么不能使用此擴展名突出顯示您想要的任何特定文本,但是您可能希望在“我”和“自我”之前和之后添加一個空格,以防它們也可能嵌入在其中。其他文字,例如“ varmetoo”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.