Sublime Text:范围选择器运算符

Tac*_*tex 7 scope operators sublimetext sublimetext2 sublimetext3

在目前在TmThemeEditor上注册的243种配色方案中,我注意到它们几乎都没有使用范围选择器操作符.

运算符对于这样的情况非常有用:

(text.html | text.xml) & (meta.tag entity)
Run Code Online (Sandbox Code Playgroud)

我认为配色设计师很少使用它们的原因是它们的记录很少.它们在ST2ST3的官方文档中或者在配色文件非官方文档中都没有被提及.语法定义非官方文档 提到了范围选择器,但没有提到运算符.

在哪里可以找到Sublime Text支持的范围选择器运算符的文档?

Tac*_*tex 6

运算符按优先顺序(最高优先级)排列:

( )  分组

&  路口

-  不对称差异(相对补语)

|  联盟

,  逗号

颜色方案文件(.tmTheme)的文件格式继承自TextMate.

以下是TextMate文档中关于范围选择器运算符的一些相关链接和引用:

  • 手册:示波器选择器
    • 排除元素
      "我们可以使用减号运算符减去范围选择器以获得(非对称)差异."
    • 逗号
      "当我们想要某些东西匹配几个不同的范围时,我们可以使用逗号运算符对范围选择器进行分组.例如,为了匹配字符串和注释,范围选择器将是:string, comment."
  • 范围简介
    "也可以对范围选择器进行AND,OR和减法,例如:(a | b) & c - d选择不匹配的范围,并且选择d两者c和/ ab."
  • Beta 17注释:范围选择器
    "可以对范围选择器执行布尔操作,并采用两个范围选择器之间的不对称差异.因此,在上面的示例中,我们希望我们的自定义操作#可以扩展 source.ruby string但我们不希望它string source(嵌入式)为此,我们现在可以将范围设置为:(source.ruby string) - (string source).为了清楚起见,我添加了括号,它们不是必需的(因为它-具有最低优先级)."

Allan Odgaard(TextMate的创建者)对TextMate邮件列表中有关范围选择器操作符的问题提供了一些非常有用的回复 .线程被存档 这里,和原始的消息的位置: 1, 2, 3, 4, 5, 6.这种反应特别有用:

范围是字面匹配的(例如string).这些可以形成"后代选择器",例如source.ruby string,对于后代选择器,可以采用并集(|,),交集(&)或不对称差异(-).

也可以用括号分组.究其原因,虽然这两个,|可用于工会是, 被其他运营商(模仿CSS语法),所以当过不了多久介绍&加入,我觉得应该有||优先级高于,它与优先级最低的运营商,所以例如:

a - b | c & d, e - f | g & h ? (a - b | c & d), (e - f | g & h)
Run Code Online (Sandbox Code Playgroud)

TextMate的支持未通过崇高的文本,包括支持其他运营商 *,^,>,$,L:,R:,B:.这些被记录在这里: 1, 2, 3, 4.