gpt4 book ai didi

json - 创建 Visual Studio Code 扩展以实现自定义语言的语法突出显示

转载 作者:行者123 更新时间:2023-12-02 00:08:24 27 4
gpt4 key购买 nike

我正在尝试在 Visual Studio Code 中创建扩展,以便为自定义语言启用语法突出显示。我在这里找到了@Wosi 提供的有用建议:Create Custom Language in Visual Studio Code 。基于此我尝试进行以下测试。我在 %USERPROFILE%\.vscode\extensions 下创建了一个子文件夹,其根目录中的 package.json 定义如下(来自上面的示例):

{
"name": "mylang",
"version": "0.0.1",
"engines": {
"vscode": ">=0.9.0-pre.1"
},
"publisher": "me",
"contributes": {
"languages": [{
"id": "mylang",
"aliases": ["MyLang", "mylang"],
"extensions": [".mylang",".myl"]
}],
"grammars": [{
"language": "mylang",
"scopeName": "source.mylang",
"path": "./syntaxes/mylang.tmLanguage"
}]
}
}

然后,我在该文件夹下创建了一个语法子文件夹,并根据@wozi 给出的示例包含了一个 mylang.tmLanguage 文件:How to create a simple custom language colorization to VS Code有一些小的修改只是为了使命名与上面的 JSON 文件一致:

<?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>scopeName</key>
<string>source.mylang</string>

<key>fileTypes</key>
<array>
<string>mylang</string>
<string>myl</string>
</array>

<key>name</key>
<string>mylang file</string>

<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\b(?i:(hint|info|information))\b</string>
<key>name</key>

<string>info-token</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:(warning|warn))\b</string>
<key>name</key>
<string>warn-token</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:(Error|Failure|Fail))\b</string>
<key>name</key>
<string>error-token</string>
</dict>
<dict>
<key>match</key>
<string>\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\b</string>
<key>name</key>
<string>constant.numeric</string>
</dict>
</array>
<key>uuid</key>
<string>FF0550E0-3A29-11E3-AA6E-0800200C9A77</string>
</dict>
</plist>

但是,当我使用以下测试文件 (test.mylang) 打开 Visual Studio Code (v1.11.2) 时:

2017-04-17 18:38 Hint This should be blue!
2017-04-17 18:38 Warning This should be amber!
2017-04-17 18:38 Fail This should be red!

关键字没有颜色(提示、警告、失败)。我需要做其他事情来指定主题吗?或者我是否需要指定一个新的唯一 UUID(如果是这样,我可以自己编写,还是需要以某种方式注册它)?

最佳答案

当您运行开发人员:检查 TM 范围命令时,您可以看到正在使用正确的范围:

问题在于默认主题中没有与 info-token 范围关联的颜色(因此“无主题选择器”)。看来自从that other answer you linked ,这些作用域的名称已更改为包含 VSCode 1.9.0 的 token.-前缀。这在 #18839 中进行了讨论。 ,并且用新名称重新引入这些作用域的相关提交是 b2aa308 .

在 VSCode 1.13.0 中,我使用 token.info-tokentoken.warn-tokentoken.error-token< 获得了预期的颜色:

关于json - 创建 Visual Studio Code 扩展以实现自定义语言的语法突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43456813/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com