⚡ perf(vscode): 标差异时旧版本的解析结果按旧内容记着,晚到的答案、翻译插件没变就不再重新解析
This commit is contained in:
1 parent
e9c1c67d6f
commit
5a0c5490ea
8 files changed
+87
-8
No files matched your search
@@ -43,6 +43,25 @@ describe('调用的名字定义成哪种块(DocumentCallees)', () => {
|
||||
expect(from.asked).toEqual([40, 120])
|
||||
})
|
||||
|
||||
it('revision:查到的答案变了才加一,新版本查到的一样不加(差异按它定旧版本要不要重新解析)', async () => {
|
||||
const callees = new DocumentCallees(() => {}, [])
|
||||
const session = callees.session()
|
||||
session.calleeKind(call('Detail', 40))
|
||||
session.calleeKind(call('build', 5))
|
||||
expect(callees.revision).toBe(0)
|
||||
const kinds: Record<number, BlockKind | null> = { 40: 'class', 5: null }
|
||||
callees.resolve(1, session.requests(), source(kinds).kindOf)
|
||||
await vi.waitFor(() => expect(callees.revision).toBe(1))
|
||||
const same = source(kinds)
|
||||
callees.resolve(2, session.requests(), same.kindOf)
|
||||
await vi.waitFor(() => expect(same.asked).toEqual([40, 5]))
|
||||
await Promise.resolve()
|
||||
expect(callees.revision).toBe(1)
|
||||
kinds[40] = 'function'
|
||||
callees.resolve(3, session.requests(), source(kinds).kindOf)
|
||||
await vi.waitFor(() => expect(callees.revision).toBe(2))
|
||||
})
|
||||
|
||||
it('被调用的不是名字(没有 name)不问;查了没有(null)不算变了', async () => {
|
||||
let changed = 0
|
||||
const callees = new DocumentCallees(() => changed++, [])
|
||||
|
||||
Reference in new issue
Block a user