✨ feat(vscode): 代码阅读页面画链式调用卡片:竖轨道、小链、收起的闭包和合成的表

链的各步排在值下面的竖轨道上,方法一列对齐、轨道线是函数色淡到 35%;实参是链的缩进成空心点小链,注释挂在步骤下;收起的闭包是能点的小框,点开那一步才画挂着的子块(折叠 id 记在属性行下面);跳到定义、查找、高度估算、只看改动都算上链里的字和步骤下的子块
This commit is contained in:
cruldra committed 2026-10-15 21:05:07 +11:00
1 parent ee595f3da9
commit 1956879aa1
13 files changed
+531 -47

No files matched your search

+3 -3
View File
@@ -115,14 +115,14 @@ export function foldUnchanged(blocks: readonly BlockView[], tree: DiffTree, show
}
close()
}
/** 一层子块:挂在父卡片子行上、点子行才展开的不折、只往里看改动,别的照常折 */
/** 一层子块:画在父卡片里的(挂在子行上、链式调用某一步下面,点开才展开)不折、只往里看改动,别的照常折 */
function visit(list: readonly BlockView[], owner: string): void {
const breaks = new Set((tree.removed.get(owner) ?? []).map(item => item.after))
for (const block of list) {
if (block.slot && (tree.changes.has(block.id) || kept(block)))
if ((block.slot || block.step) && (tree.changes.has(block.id) || kept(block)))
visit(block.children, block.id)
}
visitRun(list.filter(block => !block.slot), breaks)
visitRun(list.filter(block => !block.slot && !block.step), breaks)
}
visit(blocks, '')
return { runs, folded }