You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自制ZE编程语言VS Code语法高亮不生效问题求助

解决ZE语言VS Code语法高亮无效问题

你的tmlanguage.json文件存在几个关键问题,导致VS Code无法正确加载语法规则,以下是问题排查和修正方案:

1. JSON语法错误

patterns数组最后一项的闭合括号写错,直接导致整个JSON文件解析失败:

// 错误写法
{
    "include": "#keywords"
{  // 此处应为 }

2. Repository键名错误

repository里的注释规则键名多了前缀#,引用时才需要加#,键名本身应该是comment:

// 错误写法
"#comment":{
    "name":"comment.line.double-slash",
    "begin": "//",
    "end":"\\.*"
}

// 正确写法
"comment":{
    "name":"comment.line.double-slash",
    "begin": "//",
    "end":"$"
}

3. 单行注释结束规则错误

原注释的end使用\\.*只会匹配任意数量的点号,无法正确匹配单行注释的行尾,应改为$匹配当前行结束位置。

修正后的完整代码

{
    "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
    "name": "ze Programming Language",
    "foldingStartMarker": "\\{\\s*$",
    "foldingStopMarker": "^\\s*\\}",

    "patterns": [
        {
            "include": "#comment"
        },
        {
            "include": "#strings"
        },
        {
            "include": "#keywords"
        }
    ],
    "repository": {
        "comment": {
            "name": "comment.line.double-slash.ze",
            "begin": "//",
            "end": "$"
        },
        "keywords": {
            "patterns": [{
                "name": "keyword.control.ze",
                "match": "\\b(if|while|for|return)\\b"
            }]
        },
        "strings": {
            "name": "string.quoted.double.ze",
            "begin": "\"",
            "end": "\"",
            "patterns": [
                {
                    "name": "constant.character.escape.ze",
                    "match": "\\\\."
                }
            ]
        }
    },
    "scopeName": "source.ze"
}

额外验证步骤

  • 打开VS Code命令面板(Ctrl+Shift+P),输入Developer: Inspect Editor Tokens and Scopes,光标移到.ze文件代码上,查看是否能识别到对应scope(如keyword.control.ze)。
  • 确认扩展package.json已正确关联文件类型:
"contributes": {
    "languages": [{
        "id": "ze",
        "aliases": ["ZE", "ze"],
        "extensions": [".ze"],
        "configuration": "./language-configuration.json"
    }],
    "grammars": [{
        "language": "ze",
        "scopeName": "source.ze",
        "path": "./syntaxes/ze.tmlanguage.json"
    }]
}

内容的提问来源于stack exchange,提问作者someone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 11:37:28