mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-30 05:21:08 +01:00
* Support syncing with remote before Continue On * Use `AsyncEmitter` util to implement `waitUntil`
72 lines
2.6 KiB
TypeScript
72 lines
2.6 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
declare module 'vscode' {
|
|
|
|
// https://github.com/microsoft/vscode/issues/157734
|
|
|
|
export namespace workspace {
|
|
/**
|
|
* An event that is emitted when an edit session identity is about to be requested.
|
|
*/
|
|
export const onWillCreateEditSessionIdentity: Event<EditSessionIdentityWillCreateEvent>;
|
|
|
|
/**
|
|
*
|
|
* @param scheme The URI scheme that this provider can provide edit session identities for.
|
|
* @param provider A provider which can convert URIs for workspace folders of scheme @param scheme to
|
|
* an edit session identifier which is stable across machines. This enables edit sessions to be resolved.
|
|
*/
|
|
export function registerEditSessionIdentityProvider(scheme: string, provider: EditSessionIdentityProvider): Disposable;
|
|
}
|
|
|
|
export interface EditSessionIdentityProvider {
|
|
/**
|
|
*
|
|
* @param workspaceFolder The workspace folder to provide an edit session identity for.
|
|
* @param token A cancellation token for the request.
|
|
* @returns A string representing the edit session identity for the requested workspace folder.
|
|
*/
|
|
provideEditSessionIdentity(workspaceFolder: WorkspaceFolder, token: CancellationToken): ProviderResult<string>;
|
|
|
|
/**
|
|
*
|
|
* @param identity1 An edit session identity.
|
|
* @param identity2 A second edit session identity to compare to @param identity1.
|
|
* @param token A cancellation token for the request.
|
|
* @returns An {@link EditSessionIdentityMatch} representing the edit session identity match confidence for the provided identities.
|
|
*/
|
|
provideEditSessionIdentityMatch(identity1: string, identity2: string, token: CancellationToken): ProviderResult<EditSessionIdentityMatch>;
|
|
}
|
|
|
|
export enum EditSessionIdentityMatch {
|
|
Complete = 100,
|
|
Partial = 50,
|
|
None = 0
|
|
}
|
|
|
|
export interface EditSessionIdentityWillCreateEvent {
|
|
|
|
/**
|
|
* A cancellation token.
|
|
*/
|
|
readonly token: CancellationToken;
|
|
|
|
/**
|
|
* The workspace folder to create an edit session identity for.
|
|
*/
|
|
readonly workspaceFolder: WorkspaceFolder;
|
|
|
|
/**
|
|
* Allows to pause the event until the provided thenable resolves.
|
|
*
|
|
* *Note:* This function can only be called during event dispatch.
|
|
*
|
|
* @param thenable A thenable that delays saving.
|
|
*/
|
|
waitUntil(thenable: Thenable<any>): void;
|
|
}
|
|
}
|