Adopt chat context API changes (#1271)

This commit is contained in:
Alex Ross
2026-02-12 12:54:44 +01:00
committed by GitHub
parent 57eda9e608
commit 61fda64ede

View File

@ -5,9 +5,9 @@ const PROVIDER_ID = 'chat-context-sample.jsonLineCount';
export function activate(context: vscode.ExtensionContext) {
console.log('Chat context sample extension is now active!');
// Register the chat context provider for JSON files
const provider: vscode.ChatContextProvider = {
provideChatContextForResource(options: { resource: vscode.Uri }, token: vscode.CancellationToken): vscode.ProviderResult<vscode.ChatContextItem | undefined> {
// Register the chat resource context provider for JSON files
const provider: vscode.ChatResourceContextProvider = {
provideResourceChatContext(options: { resource: vscode.Uri }, token: vscode.CancellationToken): vscode.ProviderResult<vscode.ChatContextItem | undefined> {
// Find the text document for this resource
const document = vscode.workspace.textDocuments.find(doc => doc.uri.toString() === options.resource.toString());
if (!document) {
@ -18,7 +18,8 @@ export function activate(context: vscode.ExtensionContext) {
const fileName = options.resource.path.split('/').pop() ?? 'unknown';
return {
icon: new vscode.ThemeIcon('json'),
icon: new vscode.ThemeIcon('file'),
resourceUri: options.resource,
label: `${fileName}: ${lineCount} lines`,
modelDescription: `The JSON file "${fileName}" has ${lineCount} lines.`,
tooltip: new vscode.MarkdownString(`**Line count:** ${lineCount}`),
@ -26,14 +27,14 @@ export function activate(context: vscode.ExtensionContext) {
};
},
resolveChatContext(context: vscode.ChatContextItem, token: vscode.CancellationToken): vscode.ProviderResult<vscode.ChatContextItem> {
resolveResourceChatContext(context: vscode.ChatContextItem, token: vscode.CancellationToken): vscode.ProviderResult<vscode.ChatContextItem> {
// Context items already have values, so just return as-is
return context;
}
};
// Register with a document selector for JSON files
const disposable = vscode.chat.registerChatContextProvider(
const disposable = vscode.chat.registerChatResourceContextProvider(
[{ language: 'json' }, { language: 'jsonc' }],
PROVIDER_ID,
provider