【发布时间】:2016-02-29 19:29:32
【问题描述】:
我想为具有特定格式的日志文件设置新的语言定义。我一直在互联网上搜索一个真正有效的教程,但我还没有找到。我尝试创建sublime-syntax 文件、AAAPackageDev 文件(JSON 和 YAML),以及另一个我记不起名字的语法包——它们似乎都不起作用,其中一些被遗漏了重要的细节,比如在哪里保存文件,如何让语法定义作为一个选项出现(我怀疑这与保存位置有关),或者keyword.other.joelog 范围如何与keyword.other 主题颜色相关(你只是删除最后一位?最后一位是否必须与标题中设置的范围相匹配?)。非常令人沮丧。
在最简单的情况下,我想获取以下文件并突出显示它:
2015-11-25 14:35:11 [LOG] Blah Blah Blah
2015-11-25 14:35:11 [LOG] some log statement
2015-11-25 14:35:11 [LOG] some other log statement
2015-11-25 14:35:11 [DEBUG] some embedded filename: [[ /path/to/file ]]
2015-11-25 14:35:11 [INFO] .............. blah blah ..............
2015-11-25 14:35:11 [DEBUG] <<PASS>> Directory not found: [[ /some/dir/name ]]
2015-11-25 14:35:11 [ERROR] <<FAIL>> Directory found: [[ /some/other/dir/name ]]
2015-11-25 14:35:11 [WARNING] some strange condition occurred
最终我想要类似于以下的语法定义:
- LOG 行应该是“普通”文本
- DEBUG 行应完全视为 cmets
- ERROR 行应被视为其他内容(例如变量)
- INFO 行正常,除了单词 INFO 应突出显示为某事(例如关键字)
- 类似于 ERROR 或 INFO 的警告
- 嵌入格式为
[[ some string ]]的字符串突出显示为字符串,无论它所在的行类型如何 -
<<PASS>>和<<FAIL>>以不同颜色突出显示,无论它们所在的行类型如何
我很高兴在手动选择模式时让其中任何一项工作,如果我可以根据完整文件名选择模式(它将根据前缀而不是后缀选择),我会很高兴,例如 joelog-20151126-110719.log 键控 'joelog' 前缀和 'log' 后缀)。
这可能吗?我可以用 JSON、YAML、XML、Martian 来编写它——只要我知道规则,任何语言或样式定义都可以。
编辑:抱歉,我的意思是包含我尝试关注的页面:
- http://docs.sublimetext.info/en/latest/extensibility/syntaxdefs.html
- http://www.sublimetext.com/docs/3/syntax.html
- https://github.com/SublimeText/AAAPackageDev
- https://packagecontrol.io/packages/SyntaxHighlightTools
对于sublime-syntx 文件,我不知道如何让它显示为一个选项。使用AAAPackageDev 文件,我可以显示我的新语法定义,但它从未突出显示任何内容,即使只是遵循教程(放弃我自己的所有愿望,只是试图以任何方式突出显示某些内容) )。
谢谢!
【问题讨论】:
标签: sublimetext3 syntax-highlighting