diff --git a/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.ts b/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.ts index 9c387879fd8..8c3052f63c9 100644 --- a/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.ts +++ b/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.ts @@ -55,7 +55,7 @@ import { EditorBasedInlineChatWidget } from './inlineChatWidget.js'; import { InlineChatZoneWidget } from './inlineChatZoneWidget.js'; import { ChatAgentLocation } from '../../chat/common/constants.js'; import { ChatContextKeys } from '../../chat/common/chatContextKeys.js'; -import { IChatEditingService, ModifiedFileEntryState } from '../../chat/common/chatEditingService.js'; +import { ModifiedFileEntryState } from '../../chat/common/chatEditingService.js'; import { observableConfigValue } from '../../../../platform/observable/common/platformObservableUtils.js'; import { ISharedWebContentExtractorService } from '../../../../platform/webContentExtractor/common/webContentExtractor.js'; import { IFileService } from '../../../../platform/files/common/files.js'; @@ -1499,16 +1499,15 @@ export async function reviewEdits(accessor: ServicesAccessor, editor: ICodeEdito } const chatService = accessor.get(IChatService); - const chatEditingService = accessor.get(IChatEditingService); - const uri = editor.getModel().uri; const chatModel = chatService.startSession(ChatAgentLocation.Editor, token, false); - const editSession = await chatEditingService.createEditingSession(chatModel); + chatModel.startEditingSession(true); + + const editSession = await chatModel.editingSessionObs?.promise; const store = new DisposableStore(); store.add(chatModel); - store.add(editSession); // STREAM const chatRequest = chatModel?.addRequest({ text: '', parts: [] }, { variables: [] }, 0); @@ -1526,11 +1525,11 @@ export async function reviewEdits(accessor: ServicesAccessor, editor: ICodeEdito chatRequest.response.updateContent({ kind: 'textEdit', uri, edits: [], done: true }); if (!token.isCancellationRequested) { - chatRequest.response.complete(); + chatModel.completeResponse(chatRequest); } const isSettled = derived(r => { - const entry = editSession.readEntry(uri, r); + const entry = editSession?.readEntry(uri, r); if (!entry) { return false; } diff --git a/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.ts b/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.ts index 52169f74762..2ebe866eed1 100644 --- a/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.ts +++ b/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.ts @@ -93,7 +93,11 @@ export class InlineChatSessionServiceImpl implements IInlineChatSessionService { @IChatWidgetService private readonly _chatWidgetService: IChatWidgetService, @IConfigurationService private readonly _configurationService: IConfigurationService, ) { - this.hideOnRequest = observableConfigValue(InlineChatConfigKeys.HideOnRequest, false, this._configurationService); + + const v2 = observableConfigValue(InlineChatConfigKeys.EnableV2, false, this._configurationService); + + this.hideOnRequest = observableConfigValue(InlineChatConfigKeys.HideOnRequest, false, this._configurationService) + .map((value, r) => v2.read(r) && value); } dispose() { diff --git a/src/vs/workbench/contrib/inlineChat/common/inlineChat.ts b/src/vs/workbench/contrib/inlineChat/common/inlineChat.ts index a3436539e99..99240d7a38d 100644 --- a/src/vs/workbench/contrib/inlineChat/common/inlineChat.ts +++ b/src/vs/workbench/contrib/inlineChat/common/inlineChat.ts @@ -66,7 +66,7 @@ Registry.as(Extensions.Configuration).registerConfigurat tags: ['preview', 'onExp'], }, [InlineChatConfigKeys.HideOnRequest]: { - description: localize('hideOnRequest', "Whether to hide the inline chat widget after making a request. When enabled, the widget hides after a request has been made and instead the chat overlay shows. When hidden, the widget can always be shown again with the inline chat keybinding or from the chat overlay widget."), + markdownDescription: localize('hideOnRequest', "Whether to hide the inline chat widget after making a request. When enabled, the widget hides after a request has been made and instead the chat overlay shows. When hidden, the widget can always be shown again with the inline chat keybinding or from the chat overlay widget. *Note* that this setting requires `#inlineChat.enableV2#` to be enabled."), default: false, type: 'boolean', tags: ['preview', 'onExp'],