Skip to content

Commit c018342

Browse files
authored
Merge pull request microsoft#258346 from microsoft/osortega/remove-label-chat-session-provider
Removing chat session provider label
2 parents a918b44 + 27549c5 commit c018342

File tree

7 files changed

+21
-16
lines changed

7 files changed

+21
-16
lines changed

src/vs/workbench/api/browser/mainThreadChatSessions.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,9 @@ export class MainThreadChatSessions extends Disposable implements MainThreadChat
5151
this._proxy = this._extHostContext.getProxy(ExtHostContext.ExtHostChatSessions);
5252
}
5353

54-
$registerChatSessionItemProvider(handle: number, chatSessionType: string, label: string): void {
54+
$registerChatSessionItemProvider(handle: number, chatSessionType: string): void {
5555
// Register the provider handle - this tracks that a provider exists
5656
const provider: IChatSessionItemProvider = {
57-
label,
5857
chatSessionType,
5958
provideChatSessionItems: (token) => this._provideChatSessionItems(handle, token)
6059
};

src/vs/workbench/api/common/extHost.protocol.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3129,7 +3129,7 @@ export interface ChatSessionDto {
31293129

31303130

31313131
export interface MainThreadChatSessionsShape extends IDisposable {
3132-
$registerChatSessionItemProvider(handle: number, chatSessionType: string, label: string): void;
3132+
$registerChatSessionItemProvider(handle: number, chatSessionType: string): void;
31333133
$unregisterChatSessionItemProvider(handle: number): void;
31343134
$onDidChangeChatSessionItems(chatSessionType: string): void;
31353135

src/vs/workbench/api/common/extHostChatSessions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ export class ExtHostChatSessions extends Disposable implements ExtHostChatSessio
8787
const disposables = new DisposableStore();
8888

8989
this._chatSessionItemProviders.set(handle, { provider, extension, disposable: disposables });
90-
this._proxy.$registerChatSessionItemProvider(handle, chatSessionType, provider.label);
90+
this._proxy.$registerChatSessionItemProvider(handle, chatSessionType);
9191
if (provider.onDidChangeChatSessionItems) {
9292
disposables.add(provider.onDidChangeChatSessionItems(() => {
9393
this._proxy.$onDidChangeChatSessionItems(chatSessionType);

src/vs/workbench/contrib/chat/browser/chatSessions.contribution.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ export class ChatSessionsContribution extends Disposable implements IWorkbenchCo
8282
}
8383
for (const contribution of ext.value) {
8484
const c: IChatSessionsExtensionPoint = {
85+
id: contribution.id,
8586
type: contribution.type,
8687
name: contribution.name,
8788
displayName: contribution.displayName,

src/vs/workbench/contrib/chat/browser/chatSessions.ts

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import { Extensions, IViewContainersRegistry, IViewDescriptorService, ViewContai
2525
import { IExtensionService } from '../../../services/extensions/common/extensions.js';
2626
import { IWorkbenchLayoutService } from '../../../services/layout/browser/layoutService.js';
2727
import { WorkbenchAsyncDataTree } from '../../../../platform/list/browser/listService.js';
28-
import { IChatSessionItem, IChatSessionItemProvider, IChatSessionsService } from '../common/chatSessionsService.js';
28+
import { IChatSessionItem, IChatSessionItemProvider, IChatSessionsExtensionPoint, IChatSessionsService } from '../common/chatSessionsService.js';
2929
import { IAsyncDataSource, ITreeRenderer, ITreeNode } from '../../../../base/browser/ui/tree/tree.js';
3030
import { IListVirtualDelegate } from '../../../../base/browser/ui/list/list.js';
3131
import { CancellationToken } from '../../../../base/common/cancellation.js';
@@ -117,7 +117,6 @@ export class ChatSessionsView extends Disposable implements IWorkbenchContributi
117117
class LocalChatSessionsProvider extends Disposable implements IChatSessionItemProvider {
118118
static readonly CHAT_WIDGET_VIEW_ID = 'workbench.panel.chat.view.copilot';
119119
readonly chatSessionType = 'local';
120-
readonly label = 'Local Chat Sessions';
121120

122121
private readonly _onDidChange = this._register(new Emitter<void>());
123122
readonly onDidChange: Event<void> = this._onDidChange.event;
@@ -439,10 +438,10 @@ class ChatSessionsViewPaneContainer extends ViewPaneContainer {
439438
}
440439

441440
// Register new views
442-
this.registerViews();
441+
this.registerViews(contributions);
443442
}
444443

445-
private async registerViews() {
444+
private async registerViews(extensionPointContributions: IChatSessionsExtensionPoint[]) {
446445
const container = Registry.as<IViewContainersRegistry>(Extensions.ViewContainersRegistry).get(VIEWLET_ID);
447446
const providers = this.getAllChatSessionProviders();
448447

@@ -453,11 +452,22 @@ class ChatSessionsViewPaneContainer extends ViewPaneContainer {
453452
providers.forEach(provider => {
454453
// Only register if not already registered
455454
if (!this.registeredViewDescriptors.has(provider.chatSessionType)) {
455+
let displayName = '';
456+
if (provider.chatSessionType === 'local') {
457+
displayName = 'Local Chat Sessions';
458+
} else {
459+
const extContribution = extensionPointContributions.find(c => c.id === provider.chatSessionType);
460+
if (!extContribution) {
461+
this.logService.warn(`No extension contribution found for chat session type: ${provider.chatSessionType}`);
462+
return; // Skip if no contribution found
463+
}
464+
displayName = extContribution.displayName;
465+
}
456466
const viewDescriptor: IViewDescriptor = {
457467
id: `${VIEWLET_ID}.${provider.chatSessionType}`,
458468
name: {
459-
value: provider.label,
460-
original: provider.label,
469+
value: displayName,
470+
original: displayName,
461471
},
462472
ctorDescriptor: new SyncDescriptor(SessionsViewPane, [provider]),
463473
canToggleVisibility: true,

src/vs/workbench/contrib/chat/common/chatSessionsService.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { IChatAgentRequest } from './chatAgents.js';
1414
import { IRelaxedExtensionDescription } from '../../../../platform/extensions/common/extensions.js';
1515

1616
export interface IChatSessionsExtensionPoint {
17+
readonly id: string;
1718
readonly type: string;
1819
readonly name: string;
1920
readonly displayName: string;
@@ -51,7 +52,6 @@ export interface ChatSession extends IDisposable {
5152

5253
export interface IChatSessionItemProvider {
5354
readonly chatSessionType: string;
54-
readonly label: string;
5555
provideChatSessionItems(token: CancellationToken): Promise<IChatSessionItem[]>;
5656
}
5757

src/vscode-dts/vscode.proposed.chatSessionsProvider.d.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,6 @@ declare module 'vscode' {
88
* Provides a list of information about chat sessions.
99
*/
1010
export interface ChatSessionItemProvider {
11-
/**
12-
* Label of the extension that registers the provider.
13-
*/
14-
readonly label: string; // TODO: move to contribution or registration
15-
1611
/**
1712
* Event that the provider can fire to signal that chat sessions have changed.
1813
*/

0 commit comments

Comments
 (0)