突出崇高文本中的着色

时间:2014-10-20 15:29:53

标签: sublimetext3

我不明白,在这个例子中,颜色是如何与这个正则表达式匹配的。

name: logfile
scopeName: source.log
fileTypes:
- log
patterns:
- match: \b(ERROR|Error)\b
  name: constant.language.log
uuid: 8728e0fe-14c6-4374-acde-da1857d0a378

1 个答案:

答案 0 :(得分:0)

您的问题中的YAML由PackageDev编译为.tmLanguage XML / Plist格式。每个正则表达式都与一个或多个scopes相关联。范围本质上只是具有名称的编辑缓冲区中的特定区域,在本例中为constant.language.log。在修改缓冲区时,Sublime(和TextMate,其中的想法最初来自)扫描文本以匹配.tmLanguage语法定义文件中的正则表达式,并适当地命名它们。在这种情况下,单词ERRORError出现在其自身的任何位置,都会为其分配constant.language.log范围。

着色来自您的配色方案,即用户首选项中显示的.tmTheme文件。颜色方案文件也是基于XML的,但是如果你熟悉它们,它们不是包含正则表达式而是包含scope selectors,类似于CSS选择器。可以为每个范围选择器分配前景色,背景色和/或粗体或斜体文本。因此,例如,颜色方案可能具有选择器constant(将匹配constant.languageconstant.environment等)和规则以将其着色为紫色并使文本变为粗体和斜体。现在,每当Sublime将选择器constant.*分配给一个区域时,颜色方案将根据其规则设置该区域的样式。