61 lines
1.8 KiB
TypeScript
61 lines
1.8 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import { Disposable, Event, ProviderResult, Uri } from 'vscode';
|
|
export { ProviderResult } from 'vscode';
|
|
|
|
export interface API {
|
|
registerRemoteSourceProvider(provider: RemoteSourceProvider): Disposable;
|
|
pickRemoteSource(options: PickRemoteSourceOptions): Promise<string | PickRemoteSourceResult | undefined>;
|
|
}
|
|
|
|
export interface GitBaseExtension {
|
|
|
|
readonly enabled: boolean;
|
|
readonly onDidChangeEnablement: Event<boolean>;
|
|
|
|
/**
|
|
* Returns a specific API version.
|
|
*
|
|
* Throws error if git-base extension is disabled. You can listed to the
|
|
* [GitBaseExtension.onDidChangeEnablement](#GitBaseExtension.onDidChangeEnablement)
|
|
* event to know when the extension becomes enabled/disabled.
|
|
*
|
|
* @param version Version number.
|
|
* @returns API instance
|
|
*/
|
|
getAPI(version: 1): API;
|
|
}
|
|
|
|
export interface PickRemoteSourceOptions {
|
|
readonly providerLabel?: (provider: RemoteSourceProvider) => string;
|
|
readonly urlLabel?: string;
|
|
readonly providerName?: string;
|
|
readonly branch?: boolean; // then result is PickRemoteSourceResult
|
|
}
|
|
|
|
export interface PickRemoteSourceResult {
|
|
readonly url: string;
|
|
readonly branch?: string;
|
|
}
|
|
|
|
export interface RemoteSource {
|
|
readonly name: string;
|
|
readonly description?: string;
|
|
readonly url: string | string[];
|
|
}
|
|
|
|
export interface RemoteSourceProvider {
|
|
readonly name: string;
|
|
/**
|
|
* Codicon name
|
|
*/
|
|
readonly icon?: string;
|
|
readonly supportsQuery?: boolean;
|
|
|
|
getBranches?(url: string): ProviderResult<string[]>;
|
|
getRemoteSources(query?: string): ProviderResult<RemoteSource[]>;
|
|
}
|