Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.ts
13401 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { isEqual } from '../../../../base/common/resources.js';
7
import { URI } from '../../../../base/common/uri.js';
8
import { isIChatSessionFileChange2 } from '../common/chatSessionsService.js';
9
import { IModifiedFileEntry } from '../common/editing/chatEditingService.js';
10
import { IAgentSession } from './agentSessions/agentSessionsModel.js';
11
12
export function editingEntriesContainResource(entries: readonly IModifiedFileEntry[], resourceUri: URI): boolean {
13
for (const entry of entries) {
14
if (isEqual(entry.modifiedURI, resourceUri) || isEqual(entry.originalURI, resourceUri)) {
15
return true;
16
}
17
}
18
19
return false;
20
}
21
22
export function agentSessionContainsResource(session: IAgentSession, resourceUri: URI): boolean {
23
if (!(session.changes instanceof Array)) {
24
return false;
25
}
26
27
for (const change of session.changes) {
28
if (isIChatSessionFileChange2(change)) {
29
if (isEqual(change.uri, resourceUri) || (change.originalUri && isEqual(change.originalUri, resourceUri)) || (change.modifiedUri && isEqual(change.modifiedUri, resourceUri))) {
30
return true;
31
}
32
} else if (isEqual(change.modifiedUri, resourceUri) || (change.originalUri && isEqual(change.originalUri, resourceUri))) {
33
return true;
34
}
35
}
36
37
return false;
38
}
39
40