Commit Graph
2 Commits
Author SHA1 Message Date
Menghuan1918 162c16ec32 feat(file-icon-theme): 可选彩色图标主题接线(懒加载 chunk + 设置开关 + i18n)
- 新 chunk `file-icons`(`lib/client-file-icons.js`,255 kB / gzip 90 kB):把数据表
  注册成 `registerFileIcon` 描述符——按 glyph+color 归并,563 条规则 → 约 250 条注册;
  目录规则只走 `folderNames`(只认领列出的目录,未列出的仍用内置 glyph)。
- `src/client/file-icon-theme.ts`:pref → loadChunk → 注册/注销,generation 守卫
  丢弃「切换中途落地」的加载;chunk 拉取失败只 log,保持内置 glyph。
- pref `fileIconTheme`(默认 `'builtin'`,未知值按 builtin 处理)+ 设置页
  「文件 → 文件图标」下拉(内置单色 / 彩色品牌图标)。
- chunk 名同步四处(chunk-loader / bundle-route / tsdown / manifest-consistency)+
  `bundle-route.spec`;tsdown 为该 chunk 加 react-icons ESM alias——否则整包打进
  6.4 MB,alias 后 255 kB。
- i18n:6 个新 key 镜像到全部 19 份词典(zh/en 之外),locale 键集守护通过。
- 皮肤契约:指南 §12 增豁免条款(品牌色是内容非 chrome,仅限该懒加载 chunk),
  AGENTS §5 同步;`tests/theme.spec.ts` 新增边界用例(核心图标模块零颜色字面量、
  核心不静态 import 该 chunk)。
- 测试:`tests/file-icon-theme.spec.tsx` 7 例(loader 六态 + 真实数据三表注册);
  prefs 新增默认值/解析用例;builtins / prefs / plugin-shape / smoke 夹具补字段。
- 全量 `pnpm test` 失败集与 main 基线逐条一致(5 文件 / 26 例预存环境失败),
  新增用例全绿;typecheck / lint / build / check:consumer-types 全通过。
2026-09-08 21:43:28 +08:00
fenter 8909455df2 feat(file-icon-theme): 彩色文件图标数据表(源自 #429 by @fenter)
本仓库可选图标主题的数据层:扩展名 / 精确文件名 / 目录名 → 品牌或通用
glyph + 展示色,共 563 条规则(218 扩展名 + 197 文件名 + 148 目录名)。
数据来自 PR #429(fenters/DSH-better-sidebar,feat/file-type-icons),
此处作为本插件内置可选主题复用,作者身份保留。

- 目录表的 Android/android、IOS/ios 两组大小写变体折叠为一条规则(解析器
  按大小写不敏感匹配,重复键会静默互相覆盖)。
- 剔除 44 个未被任何规则引用的 react-icons 导入(#429 写作时本仓库尚未
  接入 ESLint,未触发 unused 检查)。
- 本提交只放数据 + IconEntry/colored;注册与接线在后续提交完成。
2026-09-08 21:25:41 +08:00