目前在TmThemeEditor登记的243种配色方案中, 我注意到他们几乎都没有使用范围选择器操作符。
对于这样的情况,运算符非常有用:
(text.html | text.xml) & (meta.tag entity)
我认为配色设计师很少使用它们的原因是它们的记录很少。 在ST2的官方文档中根本没有提及它们 或者ST3,或者 unofficial docs for colour schemes。 unofficial docs for syntax definitions {{3}} 提到范围选择器,但不是运营商。
在哪里可以找到Sublime Text支持的范围选择器运算符的文档?
答案 0 :(得分:6)
运算符按优先顺序排列(最高位):
(
)
分组&
交点-
不对称差异(相对补语)|
联盟,
逗号配色方案文件(.tmTheme
)的文件格式继承自TextMate。
以下是TextMate文档中关于范围选择器操作符的一些相关链接和引用:
string, comment
。“(a | b) & c - d
将选择
范围与d
不匹配,并且与c
,a
或b
匹配。“#
上的自定义操作可以扩展
source.ruby string
但我们不希望它用于string source
(字符串中的嵌入代码)。为了这
我们现在可以将范围设置为:(source.ruby string) - (string source)
。我添加了括号
清晰度,它们不是必需的(因为-
具有最低优先级)。“Allan Odgaard(TextMate的创建者)提供 一些非常有用的回答有关范围选择器操作员的问题 TextMate mailing list。该线程已存档 here, 原始邮件在这里: 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)
TextMate支持Sublime Text不支持的其他运算符,包括
*
,^
,>
,$
,L:
,R:
,B:
。这些记录在这里:
1,
2,
3,
4