✨ feat(vscode): React 文件照源码一块一张卡片,组件卡片只留名称、说明、构造参数

- 组件体的语句不再并进组件卡片,照源码顺序是它的子块;状态、引用、数据源、派生值、副作用、事件处理函数、渲染输出各成一张卡片,回调和函数里的语句是这些卡片下面的子卡片
- 普通变量、提前返回的 if、注释照语言默认的卡片;表格格子里只写名字和位置,去掉「改它的」「来自」格子里单独打开源码的那条路
- 用词改成书面叫法(更新位置、使用位置、计算表达式、依赖项、触发时机、清理函数、绑定事件、样式取决于……),新增 toggle-right、anchor、download、sigma、layout-template 五个种类图标
- 夹具加上 luffy 的 QueuedBubble.tsx、PlanChecklist.tsx,规格的 React 一节照新样子改写
This commit is contained in:
cruldra committed 2026-10-08 07:17:25 +08:00
1 parent 194544b4ba
commit 6ce4ef7ee2
20 files changed
+1327 -989

No files matched your search

@@ -63,24 +63,4 @@ describe('同一行不会同时在两处能改', () => {
const plain = revealPlan(BLOCKS, 15, 999)
expect(plain && uncoveredPlan(plain, covered)).toEqual(plain)
})
it('格子里单独打开的一段,和盖住它的块、跟它重叠的另一段不能同时编辑', () => {
const snippet = (startLine: number, endLine: number) => ({ startLine, endLine, code: 'x', codeTokens: [] })
const card = block('1', 'react.component', [0, 20])
card.properties = [{
label: '状态',
value: [],
items: [{
cells: [[{ text: 'a', role: 'plain' }], [{ text: 'b', role: 'plain' }]],
edits: [
{ cell: 0, from: 0, to: 1, snippet: snippet(4, 6) },
{ cell: 1, from: 0, to: 1, snippet: snippet(6, 7) },
],
}],
}]
const blocks = [card, block('2', 'function', [30, 32])]
expect(startEditing(blocks, ['1~0', '2'], '1')).toEqual(['2', '1'])
expect(startEditing(blocks, ['1', '2'], '1~0')).toEqual(['2', '1~0'])
expect(startEditing(blocks, ['1~0', '2'], '1~1')).toEqual(['2', '1~1'])
})
})