主题

Sublime Text 界面的外观由主题控制。术语主题严格地指 UI 的外观 - 按钮、选择列表、侧边栏、选项卡等等。源代码、标记和散文的高亮显示由 配色方案 控制。

Sublime Text 的主题引擎基于光栅图形。PNG 用于防止纹理退化并提供完整的 alpha 控制。UI 中的每个元素最多可以应用四层纹理或填充,并具有控制不透明度和填充的属性。根据用户交互和设置,可以有条件地更改每个元素上设置的属性。

Sublime Text 主题通过 .sublime-theme 格式实现。它是一种 JSON 格式,用于指定匹配元素并修改其外观的规则。

格式🔗

一个 .sublime-theme 文件包含单个 JSON 文档。该文档应为 包含一个键“rules”,其值为 3179 一个规则数组。 一个可选的键“variables”可以添加一个包含变量/值对的对象。 3179

以下是一个 .sublime-theme 文件的示例,展示了格式。一个完整的主题将有更多规则来覆盖 UI 中使用的所有元素。

[
    // Set up the textures for a button
    {
        "class": "button_control",
        "layer0.tint": "#000",
        "layer0.opacity": 1.0,
        "layer1.texture": "Theme - Example/textures/button_background.png",
        "layer1.inner_margin": 4,
        "layer1.opacity": 1.0,
        "layer2.texture": "Theme - Example/textures/button_highlight.png",
        "layer2.inner_margin": 4,
        "layer2.opacity": 0.0,
        "content_margin": [4, 8, 4, 8]
    },
    // Show the highlight texture when the button is hovered
    {
        "class": "button_control",
        "attributes": ["hover"],
        "layer2.opacity": 1.0
    },
    // Basic text label style
    {
        "class": "label_control",
        "fg": [240, 240, 240],
        "font.bold": true
    },
    // Brighten labels contained in a button on hover
    {
        "class": "label_control",
        "parents": [{"class": "button_control", "attributes": ["hover"]}],
        "fg": [255, 255, 255]
    }
]

术语🔗

主题的主要内容是一个规则数组。每个规则对象包含一个用于匹配元素的 "class" 键。除了 "class" 之外,还可以通过指定 "attributes""settings""parents""platforms" 键来进一步限制匹配。属性会影响元素的外观或行为。

变量允许在不同的规则中重复使用值。变量可以

包含任何类型的语法,但只能被规则中的顶级键引用。

3179

大多数元素只有一个类名,尽管有一些元素有多个类名,以允许通用和特定样式。例如,popup_control 类可用于设置自动完成和 HTML 弹出窗口的样式,但 popup_control auto_complete_popup 可用于仅针对自动完成弹出窗口。多个 "class" 值用空格隔开。当规则指定多个类名时,元素上必须存在所有类名才能应用该规则。

"attributes" 由 Sublime Text 设置,并指示用户交互的状态,或有关元素性质的其他信息。该值是一个字符串数组。示例包括 "hover""pressed""dirty"

"settings" 使用来自 .sublime-settings 文件的值来过滤规则。这允许主题作者让用户能够调整主题。主题可以定义自己的设置,但有一些“默认”设置应该尽可能得到支持。有关更多详细信息,请参阅 设置

"settings" 键的值可以是

  • 字符串数组

    每个字符串都是布尔设置的名称。要检查 false 值,请在设置名称前添加 !

    示例:["bold_folder_labels", "!always_show_minimap_viewport"]

  • 对象

    每个键都是一个设置的名称。值可以是布尔值、字符串或字符串数组。如果使用字符串数组,则当数组中的任何字符串与用户的设置值匹配时,将匹配该设置。当与字符串进行比较时,如果用户未设置该设置,则其设置将被强制转换为空字符串。

    示例:{"bold_folder_labels": true, "file_tab_style": "rounded"}

"parents" 是一个对象数组,指定了必须在父元素中匹配的 "class""attributes"。请注意,父元素必须按从最远到最近的顺序排列。

"platforms" 是一个字符串数组,指定了将规则应用于哪些操作系统。有效选项包括 "osx""windows""linux"

属性 指的是 JSON 对象中的所有其他键。某些属性在所有元素上都可用,而其他属性则特定于单个元素。

一般信息🔗

以下部分讨论有关图像的信息以及如何指定样式。

特异性🔗

与 CSS 不同,Sublime Text 主题在将规则应用于元素时不会进行特异性匹配。所有规则都将按顺序针对每个元素进行测试。匹配的后续规则将覆盖先前规则的属性。

纹理图像🔗

主题中的所有纹理都使用 PNG 图像指定。每个纹理应以“正常”DPI 保存,其中文件中的每个像素都将映射到一个设备像素。主题定义中的所有文件路径都应引用正常 DPI 版本。

每个纹理的第二个版本也应该以两倍的 DPI 包含,并在扩展名之前将 @2x 添加到文件名中。Sublime Text 在高 DPI 屏幕上显示时会自动使用 @2x 版本。:since:<还可以为以 300% 或更高比例运行的屏幕指定纹理的 @3x 变体 <3167>>。

目前不支持 SVG 图像。

尺寸🔗

主题中引用尺寸的整数单位始终以设备无关像素 (DIP) 指定。Sublime Text 会根据屏幕密度自动处理 UI 元素的缩放。

填充和边距🔗

填充和边距可以通过以下三种方式之一指定

  • 单个整数值 - 相同的值应用于左、上、右和下

  • 两个整数的数组 - 第一个值应用于左和右,第二个值应用于上和下

  • 四个整数的数组 - 值按顺序应用于左、上、右和下

继承🔗

主题可以扩展另一个主题,追加规则并覆盖变量。要扩展主题,请在 JSON 对象中添加一个顶级键 "extends",其字符串值为基础主题。

{
    "extends": "Default.sublime-theme",
    "rules":
    [
        {
            "class": "label_control",
            "parents": [{"class": "button_control", "attributes": ["hover"]}],
            "fg": "red"
        }
    ]
}

生成的规则列表将以基础主题规则开头,然后是扩展主题规则。扩展主题中的任何变量都将覆盖基础主题中具有相同名称的变量。变量覆盖将影响基础主题和扩展主题中的规则。

3179

变量🔗

可重用变量可以通过顶级键 "variables" 下的 JSON 对象定义。变量名称是字符串,但值可以是字符串、数字、布尔值、数组或对象。使用变量需要指定格式为 var(example_variable_name) 的字符串。

{
    "variables":
    {
        "light_gray": "rgb(240, 240, 240)"
    },
    "rules":
    [
        {
            "class": "label_control",
            "fg": "var(light_gray)"
        }
    ]
}

变量可以用作任何 属性 的值,但变量必须是整个值,不能嵌入在另一个变量中。此规则的唯一例外是变量可以用作 CSS color() mod 函数的基础颜色。

3179

颜色🔗

颜色可以通过 CSS 或传统颜色语法指定

CSS 颜色语法🔗

从 Sublime Text 版本 3177 开始,主题中的颜色现在可以使用 CSS 语法指定,如 minihtml 参考 中所支持的那样。这包括对十六进制、rgb()hsl()、变量和颜色 mod 函数的支持。此外,所有从配色方案派生的 预定义变量 都可供使用。

白色,以十六进制表示

#fff

白色,使用 rgb() 函数式表示法

rgb(255, 255, 255)

50% 透明度白色,使用 hsl() 函数式表示法

hsla(0, 100%, 100%, 0.5)

配色方案中定义的最接近红色的颜色

var(--redish)

配色方案中定义的最接近红色的颜色,透明度为 50%

color(var(--redish) a(0.5)
3179

传统颜色语法🔗

在支持 CSS 颜色语法之前,主题只能使用以下格式指定颜色,这些格式现在已弃用。

RGB🔗

RGB 颜色空间中的颜色通过一个包含 3 或 4 个数字的数组指定,前三个数字是介于 0255 之间的整数,分别代表红色、绿色和蓝色分量。可选的第四个数字是介于 0.01.0 之间的浮点数,用于控制颜色的透明度。

白色,透明度为 100%

[255, 255, 255]

蓝色,透明度为 50%

[0, 0, 255, 0.5]

HSL🔗

颜色也可以使用 HSL 颜色空间指定,方法是创建一个包含 4 个元素的数组,第一个元素是字符串 "hsl"。第二个元素是介于 0360 之间的整数,指定色调。第三个元素是介于 0100 之间的整数,指定饱和度,第四个元素是介于 0100 之间的整数,指定亮度。

深洋红色,透明度为 100%

["hsl", 325, 100, 30]

可以添加一个从 0.01.0 的浮点数作为第五个元素来控制透明度。

亮青色,透明度为 50%

["hsl", 180, 100, 75, 0.5]

派生颜色🔗

也可以从当前全局配色方案中派生颜色。这种格式的颜色使用具有特定格式的数组来指定。在所有情况下,第一个元素都是基本颜色,可以是 "foreground""background""accent"

更改基本颜色的透明度🔗

要更改基本颜色的透明度,请指定一个包含 2 个元素的数组,第一个元素是基本颜色名称,第二个元素是从 0.01.0 的浮点数。透明度将设置为浮点数的值。

配色方案的前景,透明度为 90%

["foreground", 0.9]
降低基本颜色的饱和度🔗

要降低基本颜色的饱和度,请指定一个包含 3 个元素的数组。第一个元素是基本颜色的名称,第二个元素是字符串 "grayscale",第三个元素是从 0100 的整数,它指定应保留现有颜色饱和度(在 HSL 颜色空间中)的百分比。值为 100 表示没有变化,而值为 0 将导致颜色完全去饱和。

配色方案的前景,饱和度调整为原始值的 1/4。

["foreground", "grayscale", 25]
为基本颜色着色🔗

5 元素和 6 元素派生颜色允许将颜色混合到基本颜色中。5 元素颜色使用 RGBA 颜色,而 6 元素颜色使用 HSLA。在这两种情况下,最后一个元素(通常代表透明度)控制将多少次要颜色混合到基本颜色中。

配色方案的背景,用白色提亮

["background", 255, 255, 255, 0.1]

配色方案的强调色,用深红色着色

["accent", "hsl", 0, 100, 30, 0.2]

从配色方案派生的颜色将始终基于全局配色方案,并且不会反映特定于视图的配色方案。UI 中的某些特定于视图的控件具有着色属性,允许使用特定于视图的配色方案颜色。

字体大小🔗

字体大小可以以以下格式指定

数字🔗

一个整数或浮点数,用于指定字体的大小(以像素为单位)。

示例:1213.5

CSS 格式🔗

一个 pxrem CSS 字体大小的字符串。

示例:12px1.`2rem

对于大多数元素,rem 大小基于全局设置 font_size。使用不同根字体大小的元素将在描述中指定。

4050

属性🔗

属性以字符串数组的形式指定。每个字符串都是一个属性名称。要检查属性是否不存在,请在名称前加上 !

以下属性是所有元素共有的

hover

当用户将鼠标悬停在元素上时设置。

Luminosity🔗

虽然并非所有元素都可用,但许多元素都根据当前配色方案的近似亮度设置属性。大多数元素的属性根据全局配色方案设置。但是,选项卡和选项卡背景的属性根据所选视图的特定配色方案设置。

属性根据背景颜色的 V 值分配,当表示为 HSV 颜色时。

file_light

V0.60-1.00

file_medium

V0.30-0.59

file_medium_dark

V0.10-0.29

file_dark

V0.00-0.09

Settings🔗

某些 Sublime Text 设置旨在影响 UI。主题应尊重这些设置并根据这些设置更改元素。

"overlay_scroll_bars"🔗

这应该影响滚动条的样式 - 通常它们应该是半透明的,并且 overlay 属性的 scroll_area_control 应该设置为 true

"always_show_minimap_viewport"🔗

如果当前视窗区域应该在小地图上突出显示,即使用户没有将鼠标悬停在小地图上。

"bold_folder_labels"🔗

如果侧边栏中的文件夹名称应该将 font.bold 属性设置为 true

"mouse_wheel_switches_tabs"🔗

这用于控制 Linux 上选项卡的鼠标滚轮行为。它应该与检查 !enable_tab_scrolling 相结合,以将 mouse_wheel_switch 属性的 tabset_control 更改为 false

"highlight_modified_tabs"🔗

如果已修改文件的选项卡应该突出显示。此设置应与 dirty 属性一起检查。

"show_tab_close_buttons"🔗

如果选项卡应该有关闭按钮。

"inactive_sheet_dimming"🔗
4095

如果除了具有 highlighted 属性的选项卡之外的选项卡应该使用 background_modifier 在视觉上淡化。

Properties🔗

一个 .sublime-theme 文件的 "rules" 键是一个 JSON 数组,其中包含描述如何对 UI 元素进行样式设置的对象。UI 中的每个元素都支持以下键

layer0.*

元素的最底层纹理

layer1.*

元素的第二个纹理

layer2.*

元素的第三个纹理

layer3.*

元素的第四个纹理

hit_test_level

一个浮点值,用于设置点击被视为“命中”所需的像素不透明度。

层属性🔗

UI 中的每个元素都支持最多四个纹理层,用于显示填充颜色和光栅图形。每个层在 layer#.sub-key 格式下都有带点的子键。有效的子键包括

layer#.opacity

一个从 0.01.0 的浮点值,用于控制层的整体不透明度。

示例:0.9

layer#.tint

要应用于层的填充颜色的 颜色值

示例:[255, 0, 0, 127]

layer#.texture

相对于 Packages/ 文件夹的 PNG 图像文件路径的字符串。

示例:"Theme - Default/arrow_right.png"

layer#.inner_margin

纹理图像通过使用四条线将其切分成 9 个网格来拉伸以适应元素。有关用于指定用于创建切片的边距的有效格式,请参见 填充和边距

示例:[5, 2, 5, 2]

layer#.draw_center

一个布尔值,用于控制是否应绘制通过 layer#.inner_margin 创建的 9 个网格的中心矩形。这是一个优化,允许跳过未使用的纹理部分。

示例:false

layer#.repeat

一个布尔值,用于控制纹理是否应重复而不是拉伸。

示例:false

值动画🔗

由浮点数指定的属性可以在一段时间内进行动画处理。动画不是通过提供单个数值来指定的,而是通过包含动画详细信息的对象来指定的。值动画主要用于随时间推移更改不透明度。对象键是

target

一个从 0.01.0 的浮点值,用于控制目标值。

示例:1.0

speed

一个大于或等于 1.0 的浮点值,用于控制动画的相对持续时间。

示例:1.5

interpolation

一个可选字符串,允许指定使用smoothstep函数而不是默认的linear函数。

默认值:"linear"

示例:"smoothstep"

纹理动画🔗

layer#.texture 子键可以是一个对象,用于指定基于两个或多个 PNG 图像的动画。对象键是

关键帧

一个字符串数组,按顺序包含 PNG 图像的路径

示例:["Theme - Default/spinner.png", "Theme - Default/spinner1.png"]

循环

一个可选的布尔值,控制动画是否应该重复

默认值:false

示例:true

帧时间

一个可选的浮点数,指定每帧应该显示多长时间。 1.0 代表 1 秒。

默认值:0.0333 (30 帧/秒)

示例:0.0166 (60 帧/秒)

纹理着色属性🔗

某些元素有一个可用的色调值,由当前颜色方案的背景设置。色调可以修改并应用于 layer#.texture 图像。

色调索引

控制将色调应用于哪个图层。必须是 03 之间的整数。

色调修饰符

一个包含四个整数的数组,范围为 0255。前三个与色调颜色中的 RGB 值混合,第四个值指定要应用这些 RGB 修饰符值的多少。

字体属性🔗

某些文本元素允许设置以下字体属性

font.face

字体名称。

font.size

字体大小。

font.bold

一个布尔值,如果字体应该是粗体。

font.italic

一个布尔值,如果字体应该是斜体。

color

用于文本的颜色值 - fg 属性是它的别名,用于向后兼容。

shadow_color

用于文本阴影的颜色值。

shadow_offset

一个包含阴影的 X 和 Y 偏移量的 2 元素数组

opacity
4073

一个从 0.01.0 的浮点数,它乘以 colorshadow_color 属性的不透明度。

过滤器标签属性🔗

快速面板中使用的标签根据选择和匹配进行颜色控制

fg

未选中、未匹配文本的颜色值。

match_fg

未选中、匹配文本的颜色值。

bg

未选中行的背景颜色值。

selected_fg

选中、未匹配文本的颜色值。

selected_match_fg

选定匹配文本的 颜色值

bg

选定行的背景 颜色值

font.face

字体名称。

font.size

字体大小。

数据表属性🔗

基于行的表格数据提供以下属性

dark_content

如果背景是深色 - 用于设置滚动条的 dark 属性。

row_padding

添加到每一行的填充,采用 填充和边距 中描述的格式之一。

样式化标签属性🔗

某些标签允许对它们的外观进行额外的控制。它们支持以下属性

border_color

标签边框的 颜色值

background_color

标签背景的 颜色值

元素🔗

以下是构成 Sublime Text UI 的元素的完整列表,以及支持的属性和特性

窗口🔗

title_bar
属性:

亮度

特性:
fg

用于窗口标题文本的 颜色值 - 仅限 Mac 10.10 或更高版本

bg

用于标题栏背景的 颜色值 - 仅限 Mac 10.10 或更高版本

style
4050

用于标题栏的 OS 样式 - "system", "dark" (仅限 Mac/Linux)"light" (仅限 Mac)

默认值: "system"

window

此元素不能直接设置样式,但可以在 "parents" 键中使用。亮度属性根据全局颜色方案设置。

属性:

亮度

edit_window

此元素包含主编辑窗口,旨在用于 "parents" 键中。

switch_project_window

此元素包含切换项目窗口,旨在用于 "parents" 键中。

选项卡🔗

tabset_control
属性:

亮度

特性:

纹理着色属性

content_margin

围绕 tab_control边距

tab_overlap

选项卡应重叠的 DIP 数。

tab_width

当有可用空间时,默认的选项卡宽度。

tab_min_width

选项卡滚动发生之前的最小选项卡宽度。

tab_height

选项卡的高度,以 DIP 为单位。

mouse_wheel_switch

如果鼠标滚轮应该切换选项卡 - 这应该只设置为 true,如果设置 enable_tab_scrollingfalse

tab_control
属性:

亮度

dirty

当关联视图有未保存的更改时。

已添加

当关联视图是新文件时。

已修改

当关联视图是已修改的文件时。

已删除

当关联视图是已删除或不再存在的文件时。

selected

当关联视图是其组中的活动视图时。

transient

当关联视图是预览且未完全打开时。

highlighted
4050

当选项卡是具有输入焦点的表格时。

left
4095

当选项卡是选项卡集中最左边的选项卡时。

right
4095

当选项卡是选项卡集中最右边的选项卡时。

multiple
4095

当选项卡是表格多选的一部分时。

left_of_selected
4095

当选项卡位于选定选项卡的左侧时。

left_of_hover
4095

当选项卡位于悬停选项卡的左侧时。

right_of_selected
4095

当选项卡位于选定选项卡的右侧时。

right_of_hover
4095

当选项卡位于悬停选项卡的右侧时。

left_overhang
4095

当选项卡悬停在其表格的左侧时,这可能发生在表格多选期间。

right_overhang
4095

当选项卡悬停在其表格的右侧时,这可能发生在表格多选期间。

特性:

纹理着色属性

content_margin

围绕 tab_label边距

max_margin_trim

当选项卡空间极其有限时,可以删除多少左右 content_margin

accent_tint_index

控制将强调色调应用于哪个图层。必须是 03 之间的整数。强调色由配色方案指定。

accent_tint_modifier

一个包含四个整数的数组,范围在 0255 之间。前三个与强调色中的 RGB 值混合,第四个值指定要应用多少这些 RGB 修饰符值。

tab_label
属性:
dirty

当关联视图有未保存的更改时。

已添加

当关联视图是新文件时。

已修改

当关联视图是已修改的文件时。

已删除

当关联视图是已删除或不再存在的文件时。

transient

当关联视图是预览且未完全打开时

特性:

字体属性

tab_close_button
特性:
content_margin

对于按钮,边距指定尺寸。

accent_tint_index

控制将强调色调应用于哪个图层。必须是 03 之间的整数。强调色由配色方案指定。

accent_tint_modifier

一个包含四个整数的数组,范围在 0255 之间。前三个与强调色中的 RGB 值混合,第四个值指定要应用多少这些 RGB 修饰符值。

scroll_tabs_left_button
特性:
content_margin

对于按钮,边距指定尺寸。

scroll_tabs_right_button
特性:
content_margin

对于按钮,边距指定尺寸。

show_tabs_dropdown_button
特性:
content_margin

对于按钮,边距指定尺寸。

tab_connector
4095
属性:
left_overhang

当选项卡悬停在其表格的左侧时,这可能发生在表格多选期间。

right_overhang

当选项卡悬停在其表格的右侧时,这可能发生在表格多选期间。

特性:

纹理着色属性

快速面板🔗

快速面板用于各种转到功能、命令面板,并且插件可以使用它。

overlay_control

快速面板的容器,包括输入和数据表。

专业化::

为了允许在快速面板用于特定功能时定位 overlay_control,可以使用以下多类选择器

overlay_control goto_file

转到文件快速面板。

overlay_control goto_symbol

转到符号快速面板。

overlay_control goto_symbol_in_project

转到项目中的符号快速面板。

overlay_control goto_line

转到行快速面板。

overlay_control goto_word

转到任何内容快速面板,按单词过滤。

overlay_control command_palette

命令面板。

4050
特性:
content_margin

围绕 quick_panel边距

quick_panel

显示在输入下方的数据表。通常高度是动态的,因此图层将不可见,但是切换项目窗口将使用图层来表示过滤选项下方空白区域。

特性:

数据表属性

mini_quick_panel_row

quick_panel 中的非文件行。包含一个 quick_panel_label,用于表示行中的每一行文本。

属性:
selected

当行被选中时。

quick_panel_row

quick_panel 中的转到任何内容文件行。也用于切换项目窗口。

包含 quick_panel_label,用于表示文件名,以及 quick_panel_path_label,用于表示文件路径。

属性:
selected

当行被选中时。

quick_panel_entry
4050

一个仅用于控制间距的容器,用于控制 quick_panel_labelquick_panel_path_label 之间的间距,当一行包含一个或多个详细信息行时。

特性:
间距

文本行之间像素的整数数量。

kind_container
4050

在“转到符号”和“在项目中转到符号”快速面板中,符号左侧显示的容器。它包含 kind_label,用于指示符号的类型。

此元素也用于 auto_complete 中,以显示正在插入的项目的类型。应使用 "parents" 键来区分这两种用法。

元素 kind_container 始终与第二个类名配对,该类名指示该类型所属的通用类别。快速面板中使用的类别如下:

专业化::
kind_container kind_ambiguous

当项目的类型未知时 – 无颜色

kind_container kind_keyword

当项目是关键字时 – 通常为粉红色

kind_container kind_type

当项目是数据类型、类、结构体、接口、枚举、特征等时 – 通常为紫色

kind_container kind_function

当项目是函数、方法、构造函数或子例程时 – 通常为红色

kind_container kind_namespace

当项目是命名空间或模块时 – 通常为蓝色

kind_container kind_navigation

当项目是定义、标签或部分时 – 通常为黄色

kind_container kind_markup

当项目是标记组件时,包括 HTML 标签和 CSS 选择器 – 通常为橙色

kind_container kind_variable

当项目是变量、成员、属性、常量或参数时 – 通常为青色

kind_container kind_snippet

当项目是代码片段时 – 通常为绿色

kind_container kind_color_redish

当插件作者想要显示红色时。

kind_container kind_color_orangish

当插件作者想要显示橙色时。

kind_container kind_color_yellowish

当插件作者想要显示黄色时。

kind_container kind_color_greenish

当插件作者想要显示绿色时。

kind_container kind_color_cyanish

当插件作者想要显示青色时。

kind_container kind_color_bluish

当插件作者想要显示蓝色时。

kind_container kind_color_purplish

当插件作者想要显示紫色时。

kind_container kind_color_pinkish

当插件作者想要显示粉红色时。

kind_container kind_color_dark

当插件作者想要显示深色背景时。

kind_container kind_color_light

当插件作者想要显示浅色背景时。

特性:
content_margin

一个 边距,它将添加到 kind_label 周围。

kind_label
4050

一个显示单个 Unicode 字符的标签,包含在 kind_container 中。

此元素也用于 auto_complete 中,以显示正在插入的项目的类型。应使用 "parents" 键来区分这两种用法。

特性:

字体属性

symbol_container
4050

在显示“转到符号”或“在项目中转到符号”符号列表时,quick_panel_label 周围的容器。

特性:
content_margin

一个 边距,它将添加到 quick_panel_label 周围。

quick_panel_label

quick_panel_row 中的文件名和 mini_quick_panel_row 中的所有文本。

特性:

过滤标签属性

quick_panel_path_label

quick_panel_row 中的文件路径。

特性:

过滤标签属性

quick_panel_label key_binding
4073

快捷键显示在 quick_panel_row 的右侧。

特性:

过滤标签属性

quick_panel_label hint
4073

注释显示在 quick_panel_row 的右侧。

特性:

过滤标签属性

quick_panel_detail_label
4083

quick_panel_row 中的详细信息行。

特性:
color

用于文本的 颜色值

link_color

用于链接的 颜色值

monospace_color

用于等宽文本的 颜色值

monospace_background_color

用于等宽文本背景的 颜色值

工作表🔗

sheet_contents
4095

工作表可以包含文本、图像或 HTML 内容。

属性:

亮度

highlighted
4095

当工作表获得输入焦点时。

特性:
background_modifier

一个包含由 color() mod 函数 支持的调整器的空格分隔列表的字符串。用于实现非活动工作表调光。

视图🔗

text_area_control

此元素不能直接设置样式,因为这由配色方案控制,但它可以在 "parents" 键中使用。

属性:

亮度

grid_layout_control

当多个组可见时,在视图之间显示的边框。

特性:
border_color

用于边框的 颜色值

border_size

边框大小的整数,以 DIP 为单位。

minimap_control

控制在小地图上显示视口投影。

特性:
viewport_color

用于填充视口投影的 颜色值

viewport_opacity

一个从 0.01.0 的浮点数,指定视口投影的不透明度。

fold_button_control

代码折叠按钮在代码边距中。

属性:
expanded

当代码的一部分展开时。

特性:
content_margin

对于按钮,边距指定尺寸。

popup_shadow
4075

弹出窗口的包装器,允许控制阴影。

popup_control html_popup

用于 显示定义 和第三方软件包的 HTML 弹出窗口的主要容器。滚动条的色调将设置为 HTML 文档的背景颜色。

popup_control annotation_popup
4050

由构建系统和第三方软件包添加到编辑器窗格右侧的注释的主要容器。

annotation_close_button
4050

显示在 annotation_popup 左侧边缘的关闭按钮。

特性:
content_margin

对于按钮,边距指定尺寸。

自动完成🔗

popup_control auto_complete_popup

自动完成弹出窗口的主要容器。

auto_complete

完成数据的表格。色调根据应用于显示弹出窗口的视图的配色方案的背景颜色设置。

特性:

数据表属性

纹理着色属性

table_row

auto_complete 中的一行。

属性:
selected

当用户突出显示一个完成项时。

kind_container
4050

显示在自动完成项左侧的容器,其中包含 kind_label,用于指示项的类型。

此元素也用于 quick_panel 的“转到符号”和“在项目中转到符号”。应使用 "parents" 键来区分这两种用法。

元素 kind_container 始终与第二个类名配对,该类名指示类型所属的通用类别。自动完成窗口中使用的类别如下

专业化::
kind_container kind_ambiguous

当项目的类型未知时 – 无颜色

kind_container kind_keyword

当项目是关键字时 – 通常为粉红色

kind_container kind_type

当项目是数据类型、类、结构体、接口、枚举、特征等时 – 通常为紫色

kind_container kind_function

当项目是函数、方法、构造函数或子例程时 – 通常为红色

kind_container kind_namespace

当项目是命名空间或模块时 – 通常为蓝色

kind_container kind_navigation

当项目是定义、标签或部分时 – 通常为黄色

kind_container kind_markup

当项目是标记组件时,包括 HTML 标签和 CSS 选择器 – 通常为橙色

kind_container kind_variable

当项目是变量、成员、属性、常量或参数时 – 通常为青色

kind_container kind_snippet

当项目是代码片段时 – 通常为绿色

特性:
content_margin

一个 边距,它将添加到 kind_label 周围。

kind_label
4050

一个显示单个 Unicode 字符的标签,包含在 kind_container 中。

此元素也用于 quick_panel 的“转到符号”和“在项目中转到符号”。应使用 parents 键来区分这两种用法。

特性:

字体属性

显示自动完成窗口的编辑器控件的字体大小决定了 rem 根字体大小。

trigger_container
4050

围绕 auto_complete_label 的容器。

特性:
content_margin

围绕 auto_complete_label 添加的 边距

auto_complete_label

table_row 中的文本。

特性:

过滤标签属性

fg_blend

一个布尔值,控制是否将 fgmatch_fgselected_fgselected_match_fg 值混合到当前视图颜色方案的前景色上。

auto_complete_label auto_complete_hint
4073

table_row 右侧显示的“注释”提示。

特性:

字体属性

显示自动完成窗口的编辑器控件的字体大小决定了 rem 根字体大小。

fg_blend

一个布尔值,控制是否将 color 值混合到当前视图颜色方案的前景色上。

auto_complete_detail_pane
4050

一个显示在自动完成项列表下方的详细信息窗格,包含 auto_complete_info 间隔符,以及其中的 auto_complete_kind_name_labelauto_complete_details

特性:
content_margin

在子控件周围添加的 边距

auto_complete_info
4050

auto_complete_kind_name_labelauto_complete_details 之间提供间距。

特性:
间距

每个包含控件之间的像素整数。

auto_complete_kind_name_label
4050

用于显示自动完成类型的名称的标签。

特性:

字体属性

显示自动完成窗口的编辑器控件的字体大小决定了 rem 根字体大小。

样式化标签属性

auto_complete_details
4050

用于显示自动完成项详细信息的单行 HTML 控件。

特性:
font.face

字体名称。

font.size

字体大小 - rem 根字体大小基于显示自动完成窗口的编辑器控件的字体大小

color

用于文本的 颜色值

link_color

用于链接的 颜色值

monospace_color

用于等宽文本的 颜色值

monospace_background_color

用于等宽文本背景的 颜色值

面板🔗

panel_control find_panel

查找和增量查找面板的容器。

特性:
content_margin

面板内容周围的 边距

panel_control replace_panel

替换面板的容器。

特性:
content_margin

面板内容周围的 边距

panel_control find_in_files_panel

在文件中查找面板的容器。

特性:
content_margin

面板内容周围的 边距

panel_control input_panel

输入面板的容器,可通过 API 使用,用于文件重命名等操作。

特性:
content_margin

面板内容周围的 边距

panel_control console_panel

控制台的容器。

特性:
content_margin

面板内容周围的 边距

panel_control output_panel

输出面板的容器,可通过 API 使用,用于构建结果。

特性:
content_margin

面板内容周围的 边距

panel_control switch_project_panel

切换项目窗口中输入的容器。

特性:
content_margin

面板内容周围的 边距

panel_grid_control

用于在各种面板上定位输入的布局网格。

特性:
inside_spacing

在网格的每个单元格之间放置的整数填充。

outside_vspacing

在网格上方和下方放置的整数填充。

outside_hspacing

在网格左侧和右侧放置的整数填充。

panel_close_button

用于关闭打开的面板的按钮

特性:
content_margin

对于按钮,边距指定尺寸。

状态栏🔗

status_bar
属性:
panel_visible

当面板显示在状态栏上方时

特性:
content_margin

围绕 sidebar_button_controlstatus_containerstatus_buttons边距

panel_button_control
<4050

状态栏左侧的面板切换按钮。

特性:
content_margin

对于按钮,边距指定尺寸。

sidebar_button_control
4050

状态栏左侧的侧边栏/面板切换按钮。

特性:
content_margin

对于按钮,边距指定尺寸。

status_container

包含当前状态消息的区域。

特性:
content_margin

围绕状态消息的 边距

status_button

显示并允许更改缩进、语法、编码和行尾的按钮。

特性:
content_margin

对于按钮,边距指定尺寸。

min_size

一个包含两个整数的数组,以 DIP 为单位指定按钮的最小宽度和高度。

vcs_status
3181

包含 vcs_branch_icon、带有当前分支名称的 label_controlvcs_changes_annotation 控件的容器。

特性:
content_margin

围绕包含控件的 边距

间距

每个包含控件之间的像素整数。

vcs_branch_icon
3181

显示在当前分支名称左侧的图标。

特性:
content_margin

对于图标,边距指定尺寸。

vcs_changes_annotation
3181

显示已添加、修改或删除的文件数量。

特性:

字体属性

样式化标签属性

对话框🔗

dialog

索引器状态和更新窗口都使用此类作为窗口背景。

progress_bar_control

进度条容器。进度条显示在用于 Mac 和 Windows 更新的更新窗口中。

progress_gauge_control

表示迄今为止完成的进度的条形。

特性:
content_margin

The margin 指定条形的高度。

滚动条🔗

scroll_area_control

滚动区域包含正在滚动的元素,以及条形、轨道和滑块。

属性:
scrollable
3186

当控件可以垂直滚动时。

hscrollable
3186

当控件可以水平滚动时。

特性:
content_margin

A margin 添加到正在滚动的内容周围。

overlay

将滚动条设置为渲染在内容之上。

left_shadow

A color value 用于绘制阴影以指示区域可以向左滚动。

left_shadow_size

当区域可以向左滚动时,要绘制的阴影的宽度(整数)。

top_shadow

A color value 用于绘制阴影以指示区域可以向上滚动。

top_shadow_size

当区域可以向上滚动时,要绘制的阴影的高度(整数)。

right_shadow

A color value 用于绘制阴影以指示区域可以向右滚动。

right_shadow_size

当区域可以向右滚动时,要绘制的阴影的宽度(整数)。

bottom_shadow

A color value 用于绘制阴影以指示区域可以向下滚动。

bottom_shadow_size

当区域可以向下滚动时,要绘制的阴影的高度(整数)。

scroll_bar_control

滚动条包含滚动轨道。色调根据正在滚动的元素的背景颜色设置。

属性:
dark

当滚动区域内容为深色时,需要浅色滚动条。

horizontal

当滚动条应为水平而不是垂直时。

特性:

纹理着色属性

content_margin

A margin 添加到滚动轨道周围。

scroll_track_control

滑块沿其运行的轨道。色调根据正在滚动的元素的背景颜色设置。

属性:
dark

当滚动区域内容为深色时,需要浅色滚动条。

horizontal

当滚动条应为水平而不是垂直时。

特性:

纹理着色属性

scroll_corner_control

当垂直和水平滚动条都显示时,scroll_area_control 右下角的空白区域。

属性:
dark

当滚动区域内容为深色时,需要浅色滚动条。

特性:

纹理着色属性

puck_control

滚动滑块或手柄。色调根据正在滚动的元素的背景颜色设置。

属性:
dark

当滚动区域内容为深色时,需要浅色滚动条。

horizontal

当滚动条应为水平而不是垂直时。

特性:

纹理着色属性

输入🔗

text_line_control

快速面板、查找、替换、在文件中查找和输入面板使用的文本输入。

特性:
content_margin

The margin 围绕文本。

color_scheme_tint

A color value 用于对颜色方案的背景进行着色。

color_scheme_tint_2

A color value 用于对颜色方案的背景添加二次着色。

dropdown_button_control

用于关闭打开的面板的按钮。

特性:
content_margin

对于按钮,边距指定尺寸。

按钮🔗

button_control

文本按钮。

属性:
pressed

当按下按钮时设置。

disabled

当按钮没有任何效果或其他情况下不可用时。

特性:
min_size

一个包含两个整数的数组,以 DIP 为单位指定按钮的最小宽度和高度。

icon_button_group

控制相关图标按钮间距的网格。

特性:

no layer support

间距

组中每个按钮之间的像素数(整数)。

icon_button_control
查找、在文件中查找、

和替换面板中的小型基于图标的按钮

属性:
selected

当图标按钮被切换为打开时。

left

当按钮是组中最左边的按钮时。

right

当按钮是组中最右边的按钮时。

icon_regex

用于在“查找”、“在文件中查找”和“替换”面板中启用正则表达式模式的按钮。

特性:
content_margin

对于图标,边距指定尺寸。

icon_case

用于在“查找”、“在文件中查找”和“替换”面板中启用区分大小写模式的按钮。

特性:
content_margin

对于图标,边距指定尺寸。

icon_whole_word

用于在“查找”、“在文件中查找”和“替换”面板中启用整词模式的按钮。

特性:
content_margin

对于图标,边距指定尺寸。

icon_wrap

用于在使用“查找”和“替换”面板时启用搜索循环的按钮。

特性:
content_margin

对于图标,边距指定尺寸。

icon_in_selection

用于在使用“查找”和“替换”面板时仅在选定区域中搜索的按钮。

特性:
content_margin

对于图标,边距指定尺寸。

icon_highlight

用于在“查找”和“替换”面板中启用突出显示所有匹配项的按钮。

特性:
content_margin

对于图标,边距指定尺寸。

icon_preserve_case

用于在使用“替换”面板时启用保留大小写模式的按钮。

特性:
content_margin

对于图标,边距指定尺寸。

icon_context

用于在使用“在文件中查找”面板时显示匹配项周围的上下文信息的按钮。

特性:
content_margin

对于图标,边距指定尺寸。

icon_use_buffer

用于在使用“在文件中查找”面板时将结果显示在缓冲区中,而不是输出面板中的按钮。

特性:
content_margin

对于图标,边距指定尺寸。

icon_use_gitignore
4073

用于切换使用 .gitignore 来过滤“在文件中查找”面板中的文件的按钮。

特性:
content_margin

对于图标,边距指定尺寸。

标签🔗

label_control

标签显示在“查找”、“替换”、“在文件中查找”和“输入”面板中。此外,标签还用于“更新”窗口、文本按钮以及 status_container 中的文本。

可以通过使用 "parents" 键来定位特定标签。

特性:

字体属性

title_label_control

标题标签用于“关于”窗口。

特性:

字体属性

工具提示🔗

tool_tip_control

将鼠标悬停在选项卡和按钮上时显示的工具提示。

特性:
content_margin

工具提示文本周围的 边距

tool_tip_label_control

工具提示中显示的文本

特性:

字体属性

已弃用🔗

颜色值🔗

在 3127 版本之前,指定颜色不透明度的唯一方法是使用包含从 0255 的所有整数的 4 元素数组。第四个元素控制不透明度,因此 0 表示完全透明,255 表示完全不透明。现在首选的格式是使用从 0.01.0 的浮点数。

已过时🔗

随着 Sublime Text UI 的不断改进,某些元素和属性不再适用或不受支持。

元素🔗

panel_button_control 元素已从状态栏中移除,并由 sidebar_button_control 替换。

4050

sheet_container_control 元素在 Sublime Text 的最新版本中对用户不可见。

名为 icon_reverse 的元素曾经存在于查找面板中,用于控制在视图中向前或向后搜索。现在由“查找”和“查找上一个”按钮控制。

名为 quick_panel_score_label 的元素不再存在于“转到任何位置”快速面板中。

属性🔗

blur 属性曾经支持模糊元素后面的像素数据,但由于实现原因,目前不支持。

自定义🔗

用户可以通过创建包含新规则的文件来自定义主题,这些规则将附加到原始主题定义中。

要创建主题的特定于用户的自定义,请创建一个与主题同名的文件,但将其保存在 Packages/User/ 目录中。

例如,要自定义默认主题,请创建一个名为 Packages/User/Default.sublime-theme 的文件。在该文件中添加以下规则将增加侧边栏中文字的大小。

[
    {
        "class": "sidebar_heading",
        "font.size": 15,
    },
    {
        "class": "sidebar_label",
        "font.size": 14
    }
]