【问题标题】:Extending an existing VSCode syntax highlighter with new elements使用新元素扩展现有的 VSCode 语法荧光笔
【发布时间】:2021-12-27 22:21:28
【问题描述】:

我正在开发一种新的 Markdown 风格,它引入了一些新的语法元素。我已经手动修改了与 VSCode 捆绑在一起的 markdown.tmLanguage.json 文件,以便为它们实现一些语法高亮。我现在想创建一个 VSCode 扩展,为 Markdown 的语法高亮提供新的补充。

但是,我并不认为复制粘贴原始 Markdown 语法高亮逻辑只是为了在上面添加一些东西是一个好主意——有没有办法创建一个 .json 语法高亮文件 继承(因为没有更好的词)从另一个文件突出显示的现有语法?

例如,这里有一些伪代码:

{
    "version": "1.0.0",
    "name": "My Markdown Flavor",
    "extends": "markdown.tmLanguage.json", // <- PSEUDOCODE
    "repository": { "... insert my extensions here ..." }
}

这可能吗?还是我必须复制粘贴整个markdown.tmLanguage.json 文件?

【问题讨论】:

  • 致投票赞成关闭的人:问题的焦点非常具体和狭窄。请详细说明您的关闭投票。
  • 一种语言是现有语言的超集的频率如何?几乎从不。所以它不是语言文件语法的一部分,编写一个 Node 脚本,通过包含在 VSC 安装或 Insiders 构建中找到的 Markdown 来构建最终语言文件以获取最新版本。读取两个 JSON 文件并将它们合并。

标签: visual-studio-code syntax-highlighting vscode-extensions


【解决方案1】:

我想通了——将text.html.markdown 作为最后一个模式就足够了:

{
    "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
    "name": "Majsdown",
    "patterns": [
        {
            "include": "#majsdown_inject_expression"
        },
        {
            "include": "#majsdown_execute_statement"
        },
        {
            "include": "text.html.markdown"
        }
    ],
    
    // ...

【讨论】:

    猜你喜欢
    • 2016-08-07
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    相关资源
    最近更新 更多