Path: blob/main/extensions/git/src/historyItemDetailsProvider.ts
3314 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { Command, Disposable } from 'vscode';6import { AvatarQuery, SourceControlHistoryItemDetailsProvider } from './api/git';7import { Repository } from './repository';8import { ApiRepository } from './api/api1';910export interface ISourceControlHistoryItemDetailsProviderRegistry {11registerSourceControlHistoryItemDetailsProvider(provider: SourceControlHistoryItemDetailsProvider): Disposable;12getSourceControlHistoryItemDetailsProviders(): SourceControlHistoryItemDetailsProvider[];13}1415export async function provideSourceControlHistoryItemAvatar(16registry: ISourceControlHistoryItemDetailsProviderRegistry,17repository: Repository,18query: AvatarQuery19): Promise<Map<string, string | undefined> | undefined> {20for (const provider of registry.getSourceControlHistoryItemDetailsProviders()) {21const result = await provider.provideAvatar(new ApiRepository(repository), query);2223if (result) {24return result;25}26}2728return undefined;29}3031export async function provideSourceControlHistoryItemHoverCommands(32registry: ISourceControlHistoryItemDetailsProviderRegistry,33repository: Repository34): Promise<Command[] | undefined> {35for (const provider of registry.getSourceControlHistoryItemDetailsProviders()) {36const result = await provider.provideHoverCommands(new ApiRepository(repository));3738if (result) {39return result;40}41}4243return undefined;44}4546export async function provideSourceControlHistoryItemMessageLinks(47registry: ISourceControlHistoryItemDetailsProviderRegistry,48repository: Repository,49message: string50): Promise<string | undefined> {51for (const provider of registry.getSourceControlHistoryItemDetailsProviders()) {52const result = await provider.provideMessageLinks(53new ApiRepository(repository), message);5455if (result) {56return result;57}58}5960return undefined;61}626364