mirror of
https://github.com/microsoft/vscode.git
synced 2026-02-15 07:28:05 +00:00
Fix contributed chat context issues found by CCR (#294622)
This commit is contained in:
@@ -50,7 +50,7 @@ export class ExtHostChatContext extends Disposable implements ExtHostChatContext
|
||||
throw new Error('Workspace context provider not found');
|
||||
}
|
||||
const provider = entry.provider as vscode.ChatWorkspaceContextProvider;
|
||||
const result = (await provider.provideWorkspaceChatContext(token)) ?? (await provider.provideChatContext?.(token)) ?? [];
|
||||
const result = (await provider.provideWorkspaceChatContext?.(token)) ?? (await provider.provideChatContext?.(token)) ?? [];
|
||||
return this._convertItems(handle, result);
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ export class ExtHostChatContext extends Disposable implements ExtHostChatContext
|
||||
throw new Error('Explicit context provider not found');
|
||||
}
|
||||
const provider = entry.provider as vscode.ChatExplicitContextProvider;
|
||||
const result = (await provider.provideExplicitChatContext(token)) ?? (await provider.provideChatContext?.(token)) ?? [];
|
||||
const result = (await provider.provideExplicitChatContext?.(token)) ?? (await provider.provideChatContext?.(token)) ?? [];
|
||||
return this._convertItems(handle, result);
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ export class ExtHostChatContext extends Disposable implements ExtHostChatContext
|
||||
if (!extItem) {
|
||||
throw new Error('Chat context item not found');
|
||||
}
|
||||
return this._doResolve((provider.resolveExplicitChatContext ?? provider.resolveChatContext).bind(provider), context, extItem, token);
|
||||
return this._doResolve((provider.resolveExplicitChatContext ?? provider.resolveChatContext)?.bind(provider), context, extItem, token);
|
||||
}
|
||||
|
||||
// Resource context provider methods
|
||||
@@ -89,7 +89,7 @@ export class ExtHostChatContext extends Disposable implements ExtHostChatContext
|
||||
}
|
||||
const provider = entry.provider as vscode.ChatResourceContextProvider;
|
||||
|
||||
const result = (await provider.provideResourceChatContext({ resource: URI.revive(options.resource) }, token)) ?? (await provider.provideChatContext?.({ resource: URI.revive(options.resource) }, token));
|
||||
const result = (await provider.provideResourceChatContext?.({ resource: URI.revive(options.resource) }, token)) ?? (await provider.provideChatContext?.({ resource: URI.revive(options.resource) }, token));
|
||||
if (!result) {
|
||||
return undefined;
|
||||
}
|
||||
@@ -109,7 +109,7 @@ export class ExtHostChatContext extends Disposable implements ExtHostChatContext
|
||||
command: result.command ? { id: result.command.command } : undefined
|
||||
};
|
||||
if (options.withValue && !item.value) {
|
||||
const resolved = await (provider.resolveResourceChatContext ?? provider.resolveChatContext).bind(provider)(result, token);
|
||||
const resolved = await (provider.resolveResourceChatContext ?? provider.resolveChatContext)?.bind(provider)(result, token);
|
||||
item.value = resolved?.value;
|
||||
item.tooltip = resolved?.tooltip ? MarkdownString.from(resolved.tooltip) : item.tooltip;
|
||||
}
|
||||
@@ -127,7 +127,7 @@ export class ExtHostChatContext extends Disposable implements ExtHostChatContext
|
||||
if (!extItem) {
|
||||
throw new Error('Chat context item not found');
|
||||
}
|
||||
return this._doResolve((provider.resolveResourceChatContext ?? provider.resolveChatContext).bind(provider), context, extItem, token);
|
||||
return this._doResolve((provider.resolveResourceChatContext ?? provider.resolveChatContext)?.bind(provider), context, extItem, token);
|
||||
}
|
||||
|
||||
// Command execution
|
||||
@@ -315,7 +315,7 @@ export class ExtHostChatContext extends Disposable implements ExtHostChatContext
|
||||
return;
|
||||
}
|
||||
const provideWorkspaceContext = async () => {
|
||||
const workspaceContexts = await provider.provideWorkspaceChatContext(CancellationToken.None);
|
||||
const workspaceContexts = (await provider.provideWorkspaceChatContext?.(CancellationToken.None) ?? await provider.provideChatContext?.(CancellationToken.None));
|
||||
const resolvedContexts = this._convertItems(handle, workspaceContexts ?? []);
|
||||
return this._proxy.$updateWorkspaceContextItems(handle, resolvedContexts);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user