选择器
版本
Sublime Text 中的语法定义使用作用域名称来提供有关标记的元数据。作用域是用点分隔的字符串,从最不具体到最具体指定。例如,PHP 中的 if
关键字可以通过作用域名称 keyword.control.php
指定。标记可以具有一个或多个与其关联的作用域名称。多个作用域名称以有序的方式与标记关联。
本文档涵盖了选择器,它是匹配作用域名称的方法。配色方案、键绑定、API 甚至某些设置都以一种或另一种方式处理选择器。有关标准化作用域名称的信息,请参阅作用域命名文档。
基本匹配🔗
基本选择器指定一个或多个作用域名称,并从最左侧的作用域开始与标记的作用域名称进行匹配。为了使选择器匹配标记的作用域名称,其所有标签必须以相同的顺序出现。
作用域名称 |
选择器 |
匹配 |
---|---|---|
keyword.control.php |
keyword |
是 |
keyword.control.php |
keyword.control |
是 |
keyword.control.php |
control |
否, |
keyword.control.php |
keyword.cont |
否, |
keyword.control.php |
keyword.control.php.embedded |
否,无法匹配 |
当选择器具有多个作用域名称时,每个名称必须按顺序匹配标记的作用域名称之一。
作用域名称 |
选择器 |
匹配 |
---|---|---|
source.php meta.block.php keyword.control.php |
keyword |
是 |
source.php meta.block.php keyword.control.php |
meta keyword |
是 |
source.php meta.block.php keyword.control.php |
keyword meta |
否,在 |
逻辑运算符🔗
除了基于标签前缀匹配来匹配作用域名称之外,选择器还可以指定逻辑运算符。
逻辑或🔗
逻辑或运算符是 |
或 ,
。如果运算符右侧或左侧的选择器匹配,则表达式将匹配。
作用域名称 |
选择器 |
匹配 |
---|---|---|
source.php meta.block.php |
text | meta |
是 |
source.php |
text, meta |
否 |
逻辑与🔗
逻辑与运算符是 &
。它要求运算符右侧和左侧的选择器都匹配,表达式才能匹配。这与选择器之间的空格不同,因为空格表示层次结构。
作用域名称 |
选择器 |
匹配 |
---|---|---|
source.php meta.block.php keyword.control.php |
keyword & meta |
是 |
source.php meta.block.php |
keyword & meta |
否 |
逻辑非🔗
逻辑非运算符是 -
。它要求右侧的选择器不匹配,表达式才能匹配。
作用域名称 |
选择器 |
匹配 |
---|---|---|
source.php meta.block.php |
source - keyword |
是 |
source.php meta.block.php keyword.control.php |
source - keyword |
否 |
分组🔗
使用逻辑运算符时,可以使用括号对选择器进行分组。
作用域名称 |
选择器 |
匹配 |
---|---|---|
source.php meta.block.php |
source - (keyword | storage) |
是 |
source.php meta.block.php |
(source - source.php) | text |
否 |
运算顺序🔗
运算符具有以下优先级
()
分组-
逻辑非&
逻辑与|
逻辑或,
逻辑或
否则,它们按从左到右的顺序排列。所以以下是等效的
a , b & -c | d , e
(a , ((b & (- c)) | d)) , e