首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在现有语言中添加额外的语法突出显示?

如何在现有语言中添加额外的语法突出显示?
EN

Stack Overflow用户
提问于 2022-05-01 11:09:45
回答 1查看 219关注 0票数 0

我想添加一些额外的语言特性,例如JavaScript内部的液态语言支持:

代码语言:javascript
复制
var firstName = "<% User.firstName %>";
var lastName = "<% User.firstName %>";

我浏览了一下,在vscode存储库中找到了这个文件夹:https://github.com/microsoft/vscode/tree/main/extensions/javascript

它基本上是JavaScript tmLanguage语法规则,所以我想要创建一个新的javascript文件格式(.pjs),并应用相同的tmLanguage文件,并添加以下新规则:

代码语言:javascript
复制
    "pk-liquid-expression": {
        "begin": "<%",
        "beginCaptures": {
            "0": {
                "name": "storage.type.primitive.java"
            }
        },
        "end": "%>",
        "endCaptures": {
            "0": {
                "name": "storage.type.primitive.java"
            }
        },
        "name": "storage.type.primitive.java"
    },

但是,现在我的pjs文件没有任何语言特性,比如错误和警告。

我认为我的解决方案并不是很有前瞻性,但是,是否可以编辑当前的JavaScript tmLanguage规则并添加这些新的标记呢?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-01 15:32:41

一种解决方案是将“液态语言”转换为Javascript语言定义。这方面的主要步骤是定义要注入的语法,并创建一个选择器,该选择器定义何时注入语法:

代码语言:javascript
复制
{
  "contributes": {
    "grammars": [
      {
        "path": "./syntaxes/injection.json",
        "scopeName": "todo-comment.injection",
        "injectTo": ["source.js"]
      }
    ]
  }
}

另见:如何在vscode中适当地注入语法扩展(因此它可以工作)?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72076158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档