【问题标题】:highlight coloration in sublime text在崇高的文本中突出显示颜色
【发布时间】:2014-12-15 15:44:11
【问题描述】:

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

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

【问题讨论】:

  • 你的问题很不清楚。请edit它并添加更多详细信息。
  • 在崇高的文本中,我们可以使用包制作自己的突出显示颜色:AAAPackageDev。着色基于正则表达式检测。在这个例子中,我了解正则表达式是如何构建的,但不了解颜色是如何关联的。
  • 是的,你可以。还有……?
  • 我看不出颜色是如何与正则表达式相关联的。
  • 我在link 看到了这个例子,如果它有用的话。

标签: sublimetext3


【解决方案1】:

您问题中的 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.* 分配给一个区域时,配色方案都会根据其规则设置该区域的样式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 2010-10-18
    相关资源
    最近更新 更多