4

我正在为 Visual Studio Code 编写一个简单的自定义“语言”(带有一些关键字的制表符分隔文件),以用于学习目的。我相信我了解插件是如何设置的,但是我在让 VS Code 应用样式时遇到了一些困难。

当我启动 VS Code 时,语言在选择器中显示为一个选项,并按预期自动应用于任何以 .td 结尾的文件。但是,不会对测试文件的任何部分应用颜色。

我错过了一步吗?我遗漏了什么重要的东西吗?使用的范围/名称不知何故无效?

我的 package.json:

{
    "name": "tab-delimited",
    "version": "0.1.0",
    "publisher": "tsassone",
    "engines": { "vscode": "*" },
    "contributes": {
        "languages": [{
            "id": "tab-delimited",
            "aliases": ["Tab Delimited", "tab delimited"],
            "extensions": [".td"]
        }],
        "grammars": [{
            "language": "tab-delimited",
            "scopeName": "source.td",
            "path": "./syntaxes/tab-delimited.plist"
        }]
    }
}

制表符分隔的.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>name</key>
    <string>Tab Delimited</string>
    <key>scopeName</key>
    <string>source.td</string>
    <key>fileTypes</key>
    <array>
        <string>td</string>
    </array>
    <key>patterns</key>
    <array>
        <dict>
            <key>match</key>
            <string>\d+</string>
            <key>name</key>
            <string>keyword.control.td</string>
        </dict>
        <dict>
            <key>match</key>
            <string>\b(friend|explicit|virtual)\b</string>
            <key>name</key>
            <string>storage.modifier.$1.td</string>
        </dict>
    </dict>
    <key>uuid</key>
    <string>3F4DA1dc-F063-11E5-9CE9-5E5517507C66</string>
</dict>
</plist>

一个简单的测试文件:

12345
friend
4

0 回答 0