Skip to content

Commit 696f968

Browse files
Introduce chat.experimental.defaultMode to decide default chat experience (microsoft#188429)
1 parent 28e972e commit 696f968

File tree

3 files changed

+23
-3
lines changed

3 files changed

+23
-3
lines changed

src/vs/workbench/contrib/chat/browser/actions/quickQuestionActions/quickQuestionAction.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6+
import { Codicon } from 'vs/base/common/codicons';
67
import { KeyCode, KeyMod } from 'vs/base/common/keyCodes';
78
import { Lazy } from 'vs/base/common/lazy';
89
import { localize } from 'vs/nls';
9-
import { Action2 } from 'vs/platform/actions/common/actions';
10+
import { Action2, MenuId } from 'vs/platform/actions/common/actions';
1011
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
12+
import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
1113
import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
1214
import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry';
1315
import { CHAT_CATEGORY } from 'vs/workbench/contrib/chat/browser/actions/chatActions';
@@ -25,6 +27,7 @@ export interface IQuickQuestionMode {
2527
run(accessor: ServicesAccessor, query: string): void;
2628
}
2729

30+
// TODO: This should be registered per chat-provider probably.
2831
export class AskQuickQuestionAction extends Action2 {
2932

3033
private static readonly modeRegistry: Map<QuickQuestionMode, Lazy<IQuickQuestionMode>> = new Map();
@@ -35,8 +38,9 @@ export class AskQuickQuestionAction extends Action2 {
3538
constructor() {
3639
super({
3740
id: ASK_QUICK_QUESTION_ACTION_ID,
38-
title: { value: localize('askQuickQuestion', "Ask Quick Question"), original: 'Ask Quick Question' },
41+
title: { value: localize('chat', "Chat"), original: 'Chat' },
3942
precondition: CONTEXT_PROVIDER_EXISTS,
43+
icon: Codicon.commentDiscussion,
4044
f1: false,
4145
category: CHAT_CATEGORY,
4246
keybinding: {
@@ -46,6 +50,12 @@ export class AskQuickQuestionAction extends Action2 {
4650
primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyMod.Alt | KeyCode.KeyI
4751
}
4852
},
53+
menu: {
54+
id: MenuId.LayoutControlMenu,
55+
group: '0_workbench_toggles',
56+
when: ContextKeyExpr.equals('config.chat.experimental.defaultMode', 'quickQuestion'),
57+
order: 0
58+
}
4959
});
5060
}
5161

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,13 @@ configurationRegistry.registerConfiguration({
7878
description: nls.localize('interactiveSession.editor.lineHeight', "Controls the line height in pixels in chat codeblocks. Use 0 to compute the line height from the font size."),
7979
default: 0
8080
},
81+
'chat.experimental.defaultMode': {
82+
type: 'string',
83+
tags: ['experimental'],
84+
enum: ['chatView', 'quickQuestion'],
85+
description: nls.localize('interactiveSession.defaultMode', "Controls the default mode of the chat experience."),
86+
default: 'chatView'
87+
},
8188
'chat.experimental.quickQuestion.mode': {
8289
type: 'string',
8390
tags: ['experimental'],

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,10 @@ export class ChatContributionService implements IChatContributionService {
125125
canToggleVisibility: false,
126126
canMoveView: true,
127127
ctorDescriptor: new SyncDescriptor(ChatViewPane, [<IChatViewOptions>{ providerId: providerDescriptor.id }]),
128-
when: ContextKeyExpr.deserialize(providerDescriptor.when),
128+
when: ContextKeyExpr.and(
129+
ContextKeyExpr.deserialize(providerDescriptor.when),
130+
ContextKeyExpr.equals('config.chat.experimental.defaultMode', 'chatView')
131+
)
129132
}];
130133
Registry.as<IViewsRegistry>(ViewExtensions.ViewsRegistry).registerViews(viewDescriptor, viewContainer);
131134

0 commit comments

Comments
 (0)