✨ feat(vscode): 代码阅读预览按侧栏筛选算代码差异(未提交的更改对比上一次提交、审查对比 PR 目标分支;兄弟块按名字 / 相似度对齐,卡片内按行 / 值 / 词比对),算好后补发给预览

This commit is contained in:
cruldra committed 2026-09-30 08:35:17 +08:00
1 parent 3db44f84ae
commit 2a5806c6b5
23 files changed
+1527 -31

No files matched your search

@@ -1,5 +1,5 @@
import { describe, expect, it } from 'vitest'
import { CHANGE_STYLES, changeOf } from './changedFiles'
import { CHANGE_STYLES, changeOf, reviewBaseFile } from './changedFiles'
describe('改动状态', () => {
it('新增 A、删除 D,别的(改名、复制、改了、没改)都算修改 M', () => {
@@ -16,3 +16,18 @@ describe('改动状态', () => {
expect(CHANGE_STYLES.D.tooltip).toBe('PR 里删掉了')
})
})
describe('审查时在 PR 目标分支上取哪个文件', () => {
const files = [
{ path: 'src/new.ts', status: 'added' },
{ path: 'src/moved.ts', status: 'renamed', previousFilename: 'src/old.ts' },
{ path: 'src/changed.ts', status: 'changed' },
]
it('新加的目标分支上没有,改名的取改名前的路径,别的照原路径', () => {
expect(reviewBaseFile(files, 'src/new.ts')).toEqual({ path: 'src/new.ts', added: true })
expect(reviewBaseFile(files, 'src/moved.ts')).toEqual({ path: 'src/old.ts', added: false })
expect(reviewBaseFile(files, 'src/changed.ts')).toEqual({ path: 'src/changed.ts', added: false })
expect(reviewBaseFile(files, 'src/untouched.ts')).toEqual({ path: 'src/untouched.ts', added: false })
})
})