fileIcons(见本页末尾):无论用户使用哪个图标主题,这些图标都会显示。
开始
icons/theme.json 和四个 SVG:
主题文件
theme.json 把名称映射到 SVG 文件(路径相对包目录):
匹配规则:
- 文件先按完整文件名匹配,再按最长扩展名(
a.test.ts先试test.ts,再试ts),最后用file。 - 文件夹先按名称匹配,再用
folder/folderExpanded。有特殊角色的文件夹(源码根目录、已排除、模块)保留内置图标。 - 名称不区分大小写。
url() 或实体。
可选字段
- 浅色与深色。
iconDefinitions的值可以是{ "light", "dark" },深色主题下使用 dark 版本。图标 id 不能以_dark结尾。 patterns是按顺序检查的正则表达式,优先于fileNames和fileExtensions。target为file(默认)或folder; 设置path时匹配整个路径(以/分隔)而不是名称;ignoreCase忽略大小写。可能严重回溯的模式(重复的分组、 同一名称有过多匹配方式)、环视、内联标志和命名分组都会被拒绝。openIcon(文件夹模式)和folderOpen(其他文件夹)用于包含已在编辑器中打开文件的文件夹,前提是开启了主题的空心文件夹选项。overrides按名称替换 IDE 的内置图标(chevron-right、folder-source等);符号图标(symbol-<kind>、class、method等) 是代码元素图标。groups是用户可以整组开关的模式集合;enabled为默认状态。choices是用户从中选一个的变体;所选选项的overrides优先于顶层的overrides。accent: true:带data-tint="true"的元素使用用户选择的颜色。- 带
data-themed="true"的元素使用 设置 › 外观与行为 › 外观 中的强调色,或配色主题自定义的强调色。
设置页面
settings 描述主题在 设置 › 插件 下的页面,页面以主题的 label 命名。没有 settings 的主题没有设置页面。
title 和 items。每一项指定一个由 IDE 实现的 option,附上主题提供的 label、可选的 hint,以及该选项需要时的 default:
这些值按主题保存在
appearance.fileIconThemeOptions 设置中,在该主题被选中时生效。
为插件自己的文件类型提供图标
新增语言或文件类型的插件,不必做成图标主题也能附带图标。无论用户使用哪个图标主题,这些图标都会显示:.dot 文件提供图标。
这些 SVG 与图标主题的 SVG 一样会被净化。
建议
- Material Icons 的 SVG 和
theme.json由脚本生成(generate.py,不属于插件包);图标很多时,生成比手工编辑更可靠。 - 让图标在 16 px 下、浅色和深色背景上都清晰可辨,或者提供
dark版本。 openidea-plugin check会像安装时一样校验主题文件和每个 SVG。