From cf7f57448b6385aa34f8f0af97f607cad62944ea Mon Sep 17 00:00:00 2001 From: Josh Spicer <23246594+joshspicer@users.noreply.github.com> Date: Tue, 25 Nov 2025 12:42:30 -0800 Subject: [PATCH] shortcut to open untitled editor (#279440) --- .../browser/actions/chatContinueInAction.ts | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.ts b/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.ts index 42a390af431..d64f6156bf7 100644 --- a/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.ts +++ b/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.ts @@ -40,6 +40,7 @@ import { IChatWidgetService } from '../chat.js'; import { CHAT_SETUP_ACTION_ID } from './chatActions.js'; import { CancellationToken } from '../../../../../base/common/cancellation.js'; import { PromptFileVariableKind, toPromptFileVariableEntry } from '../../common/chatVariableEntries.js'; +import { NEW_CHAT_SESSION_ACTION_ID } from '../chatSessions/common.js'; export const enum ActionLocation { ChatWidget = 'chatWidget', @@ -197,25 +198,28 @@ export class ChatContinueInSessionActionItem extends ActionWidgetDropdownActionV class CreateRemoteAgentJobAction { constructor() { } + private openUntitledEditor(commandService: ICommandService, continuationTarget: IChatSessionsExtensionPoint) { + commandService.executeCommand(`${NEW_CHAT_SESSION_ACTION_ID}.${continuationTarget.type}`); + } + async run(accessor: ServicesAccessor, continuationTarget: IChatSessionsExtensionPoint) { const contextKeyService = accessor.get(IContextKeyService); + const commandService = accessor.get(ICommandService); + const widgetService = accessor.get(IChatWidgetService); + const chatAgentService = accessor.get(IChatAgentService); + const chatService = accessor.get(IChatService); + const editorService = accessor.get(IEditorService); + const remoteJobCreatingKey = ChatContextKeys.remoteJobCreating.bindTo(contextKeyService); try { remoteJobCreatingKey.set(true); - const widgetService = accessor.get(IChatWidgetService); - const chatAgentService = accessor.get(IChatAgentService); - const chatService = accessor.get(IChatService); - const editorService = accessor.get(IEditorService); - const widget = widgetService.lastFocusedWidget; - if (!widget) { - return; - } - if (!widget.viewModel) { - return; + if (!widget || !widget.viewModel) { + return this.openUntitledEditor(commandService, continuationTarget); } + // todo@connor4312: remove 'as' cast const chatModel = widget.viewModel.model as ChatModel; if (!chatModel) { @@ -227,8 +231,7 @@ class CreateRemoteAgentJobAction { let userPrompt = widget.getInput(); if (!userPrompt) { if (!chatRequests.length) { - // Nothing to do - return; + return this.openUntitledEditor(commandService, continuationTarget); } userPrompt = 'implement this.'; }