✨ feat(vscode): 代码阅读 React 组件卡片按钩子分区:状态 / 引用 / 读取的数据 / 派生值 / 副作用 / 事件处理;副作用、处理函数成子卡片放进卡片那一行下面(库规则新增把子块放进属性表某一行的机制,事件处理表点名称展开)

This commit is contained in:
cruldra committed 2026-10-03 03:11:46 +08:00
1 parent 15f3a6600d
commit ee807ec7a4
19 files changed
+1057 -56

No files matched your search

+11
View File
@@ -48,6 +48,17 @@ function problemOf(rule: LibraryRule, block: CodeBlock, claimed: RuleBlock): str
return undefined
if (!claimed.kind.startsWith(`${rule.id}.`))
return `种类 id「${claimed.kind}」没以「${rule.id}.」开头`
const slots = claimed.slots ?? []
if (slots.some(slot => !block.children.includes(slot.block) || claimed.absorbs.includes(slot.block)))
return '放进卡片里的块不是留下的子块'
if (new Set(slots.map(slot => slot.block)).size < slots.length)
return '同一块放进了卡片里的几处'
for (const { row, item } of slots) {
if (!claimed.rows[row])
return `放进卡片第 ${row} 行下面的块,卡片没有这一行`
if (item !== undefined && !claimed.rows[row].items?.[item])
return `放进卡片第 ${row} 行第 ${item} 个子行的块,这一行没有这个子行`
}
for (const { reference, offset } of referencedSegments(claimed.rows)) {
if (reference?.rule !== rule.id)
return `引用「${reference?.key}」标的规则是「${reference?.rule}」,不是自己`