add InlineChatController#reviewEdits which allows to reuse the inline code review flow/ui (#225981)

This commit is contained in:
Johannes Rieken
2024-08-19 17:51:14 +02:00
committed by GitHub
parent 6b35f9e5d3
commit 469f45091d
9 changed files with 247 additions and 78 deletions

View File

@@ -26,7 +26,7 @@ import { IChatService } from 'vs/workbench/contrib/chat/common/chatService';
import { CTX_INLINE_CHAT_HAS_AGENT, EditMode } from 'vs/workbench/contrib/inlineChat/common/inlineChat';
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
import { UntitledTextEditorInput } from 'vs/workbench/services/untitled/common/untitledTextEditorInput';
import { EmptyResponse, ErrorResponse, HunkData, ReplyResponse, Session, SessionExchange, SessionWholeRange, StashedSession, TelemetryData, TelemetryDataClassification } from './inlineChatSession';
import { EmptyResponse, ErrorResponse, HunkData, ReplyResponse, Session, SessionExchange, SessionPrompt, SessionWholeRange, StashedSession, TelemetryData, TelemetryDataClassification } from './inlineChatSession';
import { IInlineChatSessionEndEvent, IInlineChatSessionEvent, IInlineChatSessionService, ISessionKeyComputer, Recording } from './inlineChatSessionService';
@@ -126,6 +126,9 @@ export class InlineChatSessionServiceImpl implements IInlineChatSessionService {
const { response } = e.request;
const prompt = new SessionPrompt(e.request, session.textModelN.getAlternativeVersionId());
session.addInput(prompt);
lastResponseListener.value = response.onDidChange(() => {
if (!response.isComplete) {
@@ -155,7 +158,7 @@ export class InlineChatSessionServiceImpl implements IInlineChatSessionService {
);
}
session.addExchange(new SessionExchange(session.lastInput!, inlineResponse));
session.addExchange(new SessionExchange(prompt, inlineResponse));
if (inlineResponse instanceof ReplyResponse && inlineResponse.untitledTextModel) {
this._textModelService.createModelReference(inlineResponse.untitledTextModel.resource).then(ref => {