小编Mat*_*ler的帖子

是否可以扩展Visual Studio Code中的语言?

情境

我有描述一系列要执行的任务的JSON文件,其中每个任务可以引用JSON文件中的其他任务和对象。

{
    "tasks": [
        { "id": "first", "action": "doSomething()", "result": {} },
        { "id": "second", "action": "doSomething(${id:first.result})", "result": {} },
    ]
}
Run Code Online (Sandbox Code Playgroud)

我想同时具有JSON模式验证和自定义语言文本效果,例如关键字着色,甚至在JSON的字符串中都支持“转到定义”。

我可以做什么

我可以创建一个扩展名,该扩展名为文件扩展名“ * .foo.json”指定JSON模式。如果vscode将文件识别为JSON文件,则可以在编辑器中进行模式验证和代码完成。

我还可以在扩展名中为“ * .foo.json”文件创建新的“ foo”语言,该文件在JSON字符串中具有自定义关键字颜色。我通过创建从JSON.tmLanguage.json复制的TextMate(* .tmLanguage.json)文件,然后修改“ stringcontent”定义来完成此操作。

问题

问题是模式验证和提示仅在我在状态栏中选择了“ JSON”作为文件类型时才起作用,而自定义文本着色仅在我在状态栏中选择了“ foo”作为文件类型时才起作用。

有什么办法可以同时拥有两者?我可以以某种方式在vscode中扩展JSON语言处理吗?

visual-studio-code tmlanguage vscode-extensions

5
推荐指数
1
解决办法
545
查看次数