- 适配器 i18n 接入(eslint/pmd/sql-lint/stylelint) - Provider 动态注册机制(registry.ts + providers.json + factory 重构) - SetupView 全面重构(setupView.ts 新增 600+ 行) - i18n 消息扩展(messages.ts +210 行) - 规则导入流程优化(import-service / prompt-builder) - 新增 PMD jars 依赖及测试用例
1.6 KiB
1.6 KiB
Excel AI 转换器设计
1. 背景
当前 ExcelConverter 通过固定列名(id、severity、description、message)解析 Excel 并程序化生成 YAML。非技术人员无法随意使用自己习惯的表头命名,体验受限。
2. 目标
去掉对固定列名的依赖,将 Excel 内容以 Markdown 表格形式喂给 AI,让 AI 理解任意表头结构并生成 YAML 规则。与 .md/.txt 的 AI 转换模式保持一致。
3. 设计
3.1 数据流
用户选择 .xlsx/.xls 文件
↓
ExcelConverter.convert()
├── XLSX.readFile → sheet_to_json
├── 行数据序列化为 Markdown 表格字符串
├── 调用 convertContentWithAI(content, context) // 复用 import-service.ts
└── AI 返回 YAML → 写入 yamlPath
3.2 变更范围
只改一个文件:src/rules/converters/excel-converter.ts
- 删除:列名白名单校验(REQUIRED_FIELDS)、severity 合法值校验(VALID_SEVERITIES)、程序化 YAML 拼接逻辑
- 新增:
buildMarkdownTable(rows)将 JSON 行转 Markdown 表格 - 复用:
convertContentWithAI()做 AI 转换并写文件 - 保留:
XLSX.readFile的 try/catch 错误处理
3.3 Markdown 表格格式示例
| id | severity | description | message | languages |
|----|----------|-------------|---------|-----------|
| rule-1 | warning | 禁止直接使用 console.log | 请使用 logger 代替 | javascript, typescript |
3.4 不涉及变更
setupView.ts:ExcelConverter 已注册、过滤器已含 xlsx/xls,无需改动import-service.ts:convertContentWithAI已存在,无需改动- 其他 converter:不受影响