Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcome.ts
4780 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 { Emitter, Event } from '../../../../../base/common/event.js';
7
import { IMarkdownString } from '../../../../../base/common/htmlContent.js';
8
import { Disposable } from '../../../../../base/common/lifecycle.js';
9
import { ThemeIcon } from '../../../../../base/common/themables.js';
10
import { ContextKeyExpression } from '../../../../../platform/contextkey/common/contextkey.js';
11
import { Registry } from '../../../../../platform/registry/common/platform.js';
12
13
export const enum ChatViewsWelcomeExtensions {
14
ChatViewsWelcomeRegistry = 'workbench.registry.chat.viewsWelcome',
15
}
16
17
export interface IChatViewsWelcomeDescriptor {
18
readonly icon?: ThemeIcon;
19
readonly title: string;
20
readonly content: IMarkdownString;
21
readonly when: ContextKeyExpression;
22
}
23
24
export interface IChatViewsWelcomeContributionRegistry {
25
readonly onDidChange: Event<void>;
26
get(): ReadonlyArray<IChatViewsWelcomeDescriptor>;
27
register(descriptor: IChatViewsWelcomeDescriptor): void;
28
}
29
30
class ChatViewsWelcomeContributionRegistry extends Disposable implements IChatViewsWelcomeContributionRegistry {
31
private readonly descriptors: IChatViewsWelcomeDescriptor[] = [];
32
private readonly _onDidChange = this._register(new Emitter<void>());
33
public readonly onDidChange: Event<void> = this._onDidChange.event;
34
35
public register(descriptor: IChatViewsWelcomeDescriptor): void {
36
this.descriptors.push(descriptor);
37
this._onDidChange.fire();
38
}
39
40
public get(): ReadonlyArray<IChatViewsWelcomeDescriptor> {
41
return this.descriptors;
42
}
43
}
44
45
export const chatViewsWelcomeRegistry = new ChatViewsWelcomeContributionRegistry();
46
Registry.add(ChatViewsWelcomeExtensions.ChatViewsWelcomeRegistry, chatViewsWelcomeRegistry);
47
48