代码之家  ›  专栏  ›  技术社区  ›  spyke

VS代码-使用TextMate突出显示一些变量

  •  7
  • spyke  · 技术社区  · 7 年前

    VS Code 1.15增加了对TextMate语法规则的支持。我想用这些规则强调JavaScript中的一些变量:self,me。我该怎么做?

    2 回复  |  直到 7 年前
        1
  •  9
  •   Gama11 zzapper    7 年前

    简单回答:你不能。

    我想你指的是 new editor.tokenColorCustomizations setting self me 没有受到JS gramar的特别处理,他们使用相同的 variable.other.readwrite.js

    将此与 this variable.language.this.js 范围,所以我们可以使用设置为颜色

    "editor.tokenColorCustomizations": {
        "textMateRules": [
            {
                "scope": "variable.language.this.js",
                "settings": {
                    "foreground": "#FF0000"
                }
            }
        ]
    }
    

        2
  •  3
  •   Mark    7 年前

    正如@Gama11所说,你不能用编辑器来做。tokenColorCustomizations,但您可以使用扩展来实现 TODO Highlight .它不是预期用途,但很容易满足您的需求。唯一的问题是,如果“self”和“me”出现在任何文本中,以及在默认实现中,它们都会突出显示,但可以使用带有单词边界的regexp来修复。下面是一个示例实现:

    "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:如果它们前面有一些空格以及parens中后面的任何内容。

    但是我不明白为什么这个扩展不能用来突出显示你想要的任何特定文本,但你可能会想在“我”和“自我”之前或之后加一个空格,以防它们也嵌入到其他文本中,例如“varmetoo”。

    推荐文章