用途:在合并 C# 编译器诊断消息文章后,进行最终验证与修正。需要输入 docs/csharp/language-reference/compiler-messages/ 下的目标 .md 文件名。
主要能力与用法:
- 从 H1 后的主错误列表及各 H2 主题分节中提取全部错误代码。
- 对每个代码取数字部分(如 CS0220 取 220),在 ../roslyn/src/Compilers/CSharp/Portable/Errors/ErrorCode.cs 中找到对应常量(如 ERR_CheckedOverflow = 220),再到 ../roslyn/src/Compilers/CSharp/Portable/CSharpResources.resx 中按常量名匹配 <data> 元素,读取 <value> 作为原始编译消息。
- 将该消息与主列表、主题列表及正文内出现的每一处文档实例对比。占位符如 '{0}'、'{1}'、{0}、{1} 被替换为描述性文本时视为匹配,只比对静态文本。发现不一致时以表格报告:错误代码、位置、当前文本、Roslyn 源文本;若无差异,报告 All error messages match the Roslyn source。
- 修正所有不一致:更新目标文件使其与 Roslyn 静态消息文本一致,覆盖主列表、主题列表和正文内引用;保留文档已有的描述性占位符替换,仅改动不匹配的静态文本。
- 若文章有 See also 节,检查每个相对链接在当前仓库分支中是否指向存在且可达的目标,报告并修复失效链接。
- 输出结果:已校验代码总数、发现并修复的不匹配数、每处修改的前后文本,以及 See also 相对链接检查结果。
限制:依赖 Roslyn 仓库中上述文件的路径与结构,以及目标文档位于约定目录;占位符替换的容忍规则仅适用于静态文本比对。