Files
ArtPlayer/refactor/changes/2026-09-15-SITE-07-monaco-modes.md
T

46 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SITE-07 Monaco 四种语言模式来源与编辑器集成
修改前 HEAD:99c208aeee331eec2d9ffa9bb15a608fdc17a840。
Thumbnail 默认策略仍待用户选择,本批不改变该包的配置。
## 本批实现
新增四个 mode bundle 的固定来源记录及可重复执行脚本。六份 npm 归档、23 份
固定 Git 文件包含构建配方、配置、14 个 Monaco TS 模块与六个依赖源码;另有
两个包别名。CSS/HTML/JSON/TypeScript 分别有 5/5/12/4 个模块实例。复用全片段
检查覆盖辅助代码和模块之间所有非空白字节,不只比较 AMD 模块名。
四个完整压缩产物均与当前站点逐字节相等。
抽出 compiler.ts 统一固定 TypeScript 4.4.4 发射,保持原标准库与各包 strict
配置。JSON tokenization 使用 jsonc-parser 3.0.0 原始声明解析 const enum;孤立
编译保留属性访问不能复现旧产物,因此不能手工替换数字。解析器仅允许显式
传入的声明,不意外读当前工作区依赖。仍不声称已恢复上游完整语义类型检查。
AMD 模块名增加合法 lib.index 支持,继续拒绝路径遍历段。新反例验证错误枚举
声明会导致复现失败;此前 TypeScript 源转换和缺失模块/额外辅助代码测试保留。
共享编译器改动后重跑全部三个语言 worker 源码及压缩复现,保持精确相等。
jsonc-parser 与 vscode-languageserver-types 的 notice 资产绑定扩大到模式文件。
这两包原有完整许可已随站点交付,没有新增或改写 notice 正文。站点依然有
81 份 notice 加一个索引。Monaco 运行代码、旧 URL、根依赖和 yarn.lock 未变。
## 实际编辑器验证
新增 editor-modes.spec.js 使用真实 Monaco editor,通过自动模式加载和 provider
注册检测 CSS/JSON/TypeScript 错误,再改成合法代码等待诊断清空。调用编辑器的
文档格式化 action 验证 JSON/HTML 输出分行且内容保留;四个 mode 请求必须成功。
同一个编辑器依次切换模型,最后销毁并检查旧模型诊断被清理。
早期测试读取了不属于 0.30.1 的 getModeId;对照该包原始声明后使用 getLanguageId。
这是测试元数据接口修正,没有改生产逻辑或放宽诊断/格式化断言。
三引擎 3/3 通过,无重试/跳过;15/15 单元、严格 docs-tools 类型与相关 lint
通过。来源复现、网络尝试和浏览器环境见
[验证记录](../baselines/monaco-modes-validation.json)。网络首次请求出现 npm DNS
ENOTFOUND,保留失败记录;缓存离线验证不被冒充为首次联网成功。
SITE-07 doing / VENDOR-06 open,整体仍 199/265。Monaco editor-core、基础语言
定义及其余上游来源细节继续审查,物理设备/外部 SDK/远端 CI/三轮复盘门槛
未完成。回退本批脚本、绑定和测试即可,运行资产未改。独立本地提交,不推送、
不部署、不发布,也不替用户决定 Thumbnail 默认行为。