in src/explorer.ts [701:742]
static getApiItems(mod: DiffResult<Mod>, specName: string, contextValue: string): PontChangeTreeItem[] {
const modName = typeof mod.name === "string" ? mod.name : "";
const localSpec = getSpecByName(alicloudAPIMessageService.pontManager.localPontSpecs, specName);
const remoteSpec = getSpecByName(alicloudAPIMessageService.pontManager.remotePontSpecs, specName);
return (mod?.interfaces || []).map((api: DiffResult<PontAPI>) => {
const apiKey = modName ? `${mod.name}/${api.name}` : api.name;
const localApi = localSpec?.apis?.[apiKey];
const remoteApi = remoteSpec?.apis?.[apiKey];
return {
label: api.name,
specName,
modName,
apiName: api.name,
description: api.title || api.summary,
tooltip: api.description || api.summary || api?.name,
contextValue: contextValue + "API",
collapsibleState: vscode.TreeItemCollapsibleState.None,
schema: api,
// resourceUri: vscode.Uri.parse(`pontx-changes://${contextValue}API/`),
iconPath: api.deprecated
? vscode.Uri.joinPath(alicloudAPIMessageService.context.extensionUri, "resources/deprecated.svg")
: vscode.Uri.joinPath(alicloudAPIMessageService.context.extensionUri, "resources/api-outline.svg"),
command: {
command: "alicloud.api.openDocument",
title: "open",
arguments: [
{
specName,
modName,
spec: localApi,
remoteSpec: remoteApi,
name: api.name,
pageType: "changes",
schemaType: "api",
},
],
},
} as PontChangeTreeItem;
});
}