@sussudio/platform
Version:
Internal APIs for VS Code's service injection the base services.
39 lines (37 loc) • 1.7 kB
text/typescript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { CancellationToken } from '@sussudio/base/common/cancellation.mjs';
import { IDisposable } from '@sussudio/base/common/lifecycle.mjs';
import { IWorkspaceFolder } from './workspace.mjs';
export interface IEditSessionIdentityProvider {
readonly scheme: string;
getEditSessionIdentifier(workspaceFolder: IWorkspaceFolder, token: CancellationToken): Promise<string | undefined>;
provideEditSessionIdentityMatch(
workspaceFolder: IWorkspaceFolder,
identity1: string,
identity2: string,
token: CancellationToken,
): Promise<EditSessionIdentityMatch | undefined>;
}
export declare const IEditSessionIdentityService: import('../../instantiation/common/instantiation.mjs').ServiceIdentifier<IEditSessionIdentityService>;
export interface IEditSessionIdentityService {
readonly _serviceBrand: undefined;
registerEditSessionIdentityProvider(provider: IEditSessionIdentityProvider): IDisposable;
getEditSessionIdentifier(
workspaceFolder: IWorkspaceFolder,
cancellationToken: CancellationToken,
): Promise<string | undefined>;
provideEditSessionIdentityMatch(
workspaceFolder: IWorkspaceFolder,
identity1: string,
identity2: string,
cancellationToken: CancellationToken,
): Promise<EditSessionIdentityMatch | undefined>;
}
export declare enum EditSessionIdentityMatch {
Complete = 100,
Partial = 50,
None = 0,
}