mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-24 20:26:08 +00:00
Merge pull request #193018 from microsoft/joh/architectural-earwig
inline - some more API tweaks
This commit is contained in:
@@ -1299,7 +1299,7 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
|
||||
|
||||
registerInteractiveEditorSessionProvider(provider: vscode.InteractiveEditorSessionProvider, metadata?: vscode.InteractiveEditorSessionProviderMetadata) {
|
||||
checkProposedApiEnabled(extension, 'interactive');
|
||||
return extHostInteractiveEditor.registerProvider(extension, provider, metadata = { label: provider.label ?? extension.displayName ?? extension.name });
|
||||
return extHostInteractiveEditor.registerProvider(extension, provider, metadata = { label: metadata?.label ?? extension.displayName ?? extension.name });
|
||||
},
|
||||
registerInteractiveSessionProvider(id: string, provider: vscode.InteractiveSessionProvider) {
|
||||
checkProposedApiEnabled(extension, 'interactive');
|
||||
|
||||
@@ -143,7 +143,6 @@ export class ExtHostInteractiveEditor implements ExtHostInlineChatShape {
|
||||
}
|
||||
|
||||
const apiRequest: vscode.InteractiveEditorRequest = {
|
||||
session: sessionData.session,
|
||||
prompt: request.prompt,
|
||||
selection: typeConvert.Selection.to(request.selection),
|
||||
wholeRange: typeConvert.Range.to(request.wholeRange),
|
||||
@@ -171,9 +170,7 @@ export class ExtHostInteractiveEditor implements ExtHostInlineChatShape {
|
||||
}
|
||||
};
|
||||
|
||||
const task = typeof entry.provider.provideInteractiveEditorResponse2 === 'function'
|
||||
? entry.provider.provideInteractiveEditorResponse2(apiRequest, progress, token)
|
||||
: entry.provider.provideInteractiveEditorResponse(apiRequest.session, apiRequest, progress, token);
|
||||
const task = entry.provider.provideInteractiveEditorResponse(sessionData.session, apiRequest, progress, token);
|
||||
|
||||
Promise.resolve(task).finally(() => done = true);
|
||||
|
||||
@@ -230,12 +227,7 @@ export class ExtHostInteractiveEditor implements ExtHostInlineChatShape {
|
||||
}
|
||||
|
||||
$releaseSession(handle: number, sessionId: number) {
|
||||
const sessionData = this._inputSessions.get(sessionId);
|
||||
const entry = this._inputProvider.get(handle);
|
||||
if (sessionData && entry) {
|
||||
entry.provider.releaseInteractiveEditorSession?.(sessionData.session);
|
||||
}
|
||||
this._inputSessions.delete(sessionId);
|
||||
// TODO@jrieken remove this
|
||||
}
|
||||
|
||||
private static _isMessageResponse(thing: any): thing is vscode.InteractiveEditorMessageResponse {
|
||||
|
||||
@@ -34,7 +34,6 @@ export interface IInlineChatSession {
|
||||
message?: string;
|
||||
slashCommands?: IInlineChatSlashCommand[];
|
||||
wholeRange?: IRange;
|
||||
dispose?(): void;
|
||||
}
|
||||
|
||||
export interface IInlineChatRequest {
|
||||
|
||||
16
src/vscode-dts/vscode.proposed.interactive.d.ts
vendored
16
src/vscode-dts/vscode.proposed.interactive.d.ts
vendored
@@ -27,9 +27,7 @@ declare module 'vscode' {
|
||||
|
||||
// todo@API make classes
|
||||
export interface InteractiveEditorRequest {
|
||||
session: InteractiveEditorSession;
|
||||
prompt: string;
|
||||
|
||||
selection: Selection;
|
||||
wholeRange: Range;
|
||||
attempt: number;
|
||||
@@ -67,23 +65,11 @@ declare module 'vscode' {
|
||||
}
|
||||
|
||||
export interface InteractiveEditorSessionProvider<S extends InteractiveEditorSession = InteractiveEditorSession, R extends InteractiveEditorResponse | InteractiveEditorMessageResponse = InteractiveEditorResponse | InteractiveEditorMessageResponse> {
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
label: string;
|
||||
|
||||
// Create a session. The lifetime of this session is the duration of the editing session with the input mode widget.
|
||||
prepareInteractiveEditorSession(context: TextDocumentContext, token: CancellationToken): ProviderResult<S>;
|
||||
|
||||
provideInteractiveEditorResponse(session: S, request: Omit<InteractiveEditorRequest, 'session'>, progress: Progress<{ message: string; edits: TextEdit[] }>, token: CancellationToken): ProviderResult<R>;
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
provideInteractiveEditorResponse2?(request: InteractiveEditorRequest, progress: Progress<{ message: string; edits: TextEdit[] }>, token: CancellationToken): ProviderResult<R>;
|
||||
|
||||
// eslint-disable-next-line local/vscode-dts-provider-naming
|
||||
releaseInteractiveEditorSession?(session: S): any;
|
||||
provideInteractiveEditorResponse(session: S, request: InteractiveEditorRequest, progress: Progress<{ message: string; edits: TextEdit[] }>, token: CancellationToken): ProviderResult<R>;
|
||||
|
||||
// eslint-disable-next-line local/vscode-dts-provider-naming
|
||||
handleInteractiveEditorResponseFeedback?(session: S, response: R, kind: InteractiveEditorResponseFeedbackKind): void;
|
||||
|
||||
Reference in New Issue
Block a user