✨ feat(vscode): 代码阅读预览里实参值、return 这类一行译文里跨几行写的字典 / 列表按项拆开,各项带自己的实参表

This commit is contained in:
cruldra committed 2026-10-13 13:57:22 +11:00
1 parent b2c5309d1f
commit 907c4092c8
18 files changed
+515 -102

No files matched your search

@@ -160,6 +160,14 @@ describe('blockMarks', () => {
expect(marks?.doc).toEqual({ markdown: [{ text: '旧说明', change: 'del' }] })
})
it('一行译文下面拆开的各项逐行比:按第一列配,多出来的算加行,没了的算删行', () => {
const before = textView([seg('返回 列表 2 项')], { items: [item('第 1 项'), item('第 2 项')] } as Partial<BlockView>)
const after = textView([seg('返回 列表 1 项')], { items: [item('第 1 项')] } as Partial<BlockView>)
const marks = blockMarks(before, after)
expect(marks?.items?.removed).toEqual([{ after: 0, value: item('第 2 项') }])
expect(blockMarks(after, before)?.items?.changed).toEqual({ 1: { added: true } })
})
it('一块是属性表、一块是一行译文时没法逐行比', () => {
expect(blockMarks(textView([seg('a')]), propertyView([row('名称', [seg('a')])]))).toBeUndefined()
})
@@ -178,6 +186,14 @@ describe('removedView / withoutSource', () => {
expect(JSON.stringify(removed)).not.toMatch(/"offset"|"refers"/)
})
it('一行译文下面拆开的各项、摊开实参的表照样带着,词不带源码下标', () => {
const named = { cells: [[seg('第 1 项')], [seg('x', 'variable', 9)]] }
const removed = removedView(textView([seg('返回 列表 1 项')], { items: [named], table: { columns: ['参数', '值'], items: [named] } } as Partial<BlockView>))
expect('items' in removed && removed.items).toEqual([{ cells: [[seg('第 1 项')], [seg('x', 'variable')]] }])
expect('table' in removed && removed.table?.items).toHaveLength(1)
expect(JSON.stringify(removed)).not.toMatch(/"offset"/)
})
it('框里的词也去掉下标,颜色留着', () => {
const color = { dark: '#fff', light: '#000' }
expect(withoutSource([{ style: 'iteration', label: '列表', segments: [{ ...seg('x', 'variable', 3), color }] }])).toEqual([