emi*_*ast 9 syntax-highlighting visual-studio-code tmlanguage
我正在尝试为日志文件创建一个简单的着色,现在可以在Code中包含自定义语言(我在0.9.2上).我创建了一个简单的.tmLanguage文件,用于着色字母'q',仅用于启动,但是没有成功.
我的新语言log与文件扩展名正确关联,我也可以从Code内部手动选择它,但不会出现着色.我觉得这与我将模式联系起来的"范围"有关,但我不确定.是否有可供选择的有效范围列表?最初我以为我会使用一些通用的东西,例如"评论"来获得一些颜色,但它似乎不起作用.
这是我的.tmLanguage文件:
<?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>text.log</string>
<key>fileTypes</key>
<array>
<string>log</string>
</array>
<key>name</key>
<string>Log file</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>q</string>
<key>name</key>
<string>comment</string>
</dict>
</array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
我可能在这里误解了一些东西,所以非常感谢任何帮助:-)
您需要使用正则表达式而不是静态字符串来描述模式:
<key>match</key>
<string>q</string> <- This needs to be a regular expression
<key>name</key>
<string>comment</string>
Run Code Online (Sandbox Code Playgroud)
我为日志文件荧光笔提供了一个更有用的示例.它以不同颜色为数字,提示,警告和错误着色.识别这些关键字和数字的规则基于正则表达式.
<?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>text.log</string>
<key>fileTypes</key>
<array>
<string>log</string>
</array>
<key>name</key>
<string>Log 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>
Run Code Online (Sandbox Code Playgroud)
荧光笔给出这样的结果(使用默认主题):
我没有找到有关可用令牌(像一个正式文件error-token,constant.numeric等等).但是有一个文件位于%VSCODE_INSTALLATION%\resources\app\out\vs\languages\markdown\common\tokens.css.它似乎列出了所有可用的令牌等.在创建.tmLanguage文件时将其用作参考.
但要注意:有些主题只使用基本标记.其他一些主题使用相同的颜色用于许多不同的令牌.因此,您应该经常针对最常见的主题测试荧光笔,以查看结果是否良好.
您一定要访问有关语言语法的页面以了解更多信息.
小智 7
我们刚刚发布了一个语言扩展,它将颜色化带到了Output面板.基本上,它与此线程上的已批准答案的作用相同,并添加了text/x-code-output"输出"面板使用的mime类型.
在这里免费获取:https: //marketplace.visualstudio.com/items?itemName = IBM.output -colorizer
来源:https: //github.com/IBM-Bluemix/vscode-log-output-colorizer 请帮助贡献!错误,功能请求,贡献都欢迎.
以下是它工作的一些截图:
| 归档时间: |
|
| 查看次数: |
9137 次 |
| 最近记录: |