Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/copilot/src/extension/getting-started/common/newWorkspaceContext.ts
13399 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
import { IVSCodeExtensionContext } from '../../../platform/extContext/common/extensionContext';
6
7
export const NEW_WORKSPACE_STORAGE_KEY = 'copilot.newWorkspaceAgent.workspaceContexts';
8
9
export interface INewWorkspaceStoredData {
10
workspaceURI: string;
11
userPrompt: string;
12
initialized: boolean | undefined;
13
}
14
15
export function saveNewWorkspaceContext(add: INewWorkspaceStoredData, extensionContext: IVSCodeExtensionContext) {
16
const contexts = extensionContext.globalState.get<INewWorkspaceStoredData[]>(NEW_WORKSPACE_STORAGE_KEY, []);
17
const idx = contexts.findIndex(context => context.workspaceURI === add.workspaceURI);
18
if (idx >= 0) {
19
contexts.splice(idx, 1);
20
}
21
22
contexts.unshift(add);
23
while (contexts.length > 30) {
24
contexts.pop();
25
}
26
27
extensionContext.globalState.update(NEW_WORKSPACE_STORAGE_KEY, contexts);
28
}
29