@sussudio/platform
Version:
Internal APIs for VS Code's service injection the base services.
64 lines (62 loc) • 2.86 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 { Disposable } from '@sussudio/base/common/lifecycle.mjs';
import { URI } from '@sussudio/base/common/uri.mjs';
import { IExtensionsProfileScannerService } from '../common/extensionsProfileScannerService.mjs';
import { IExtensionsScannerService } from '../common/extensionsScannerService.mjs';
import { INativeServerExtensionManagementService } from './extensionManagementService.mjs';
import { IExtensionIdentifier } from '../../extensions/common/extensions.mjs';
import { IFileService } from '../../files/common/files.mjs';
import { ILogService } from '../../log/common/log.mjs';
import { IUriIdentityService } from '../../uriIdentity/common/uriIdentity.mjs';
import { IUserDataProfilesService } from '../../userDataProfile/common/userDataProfile.mjs';
export interface DidChangeProfileExtensionsEvent {
readonly added?: {
readonly extensions: readonly IExtensionIdentifier[];
readonly profileLocation: URI;
};
readonly removed?: {
readonly extensions: readonly IExtensionIdentifier[];
readonly profileLocation: URI;
};
}
export declare class ExtensionsWatcher extends Disposable {
private readonly extensionManagementService;
private readonly extensionsScannerService;
private readonly userDataProfilesService;
private readonly extensionsProfileScannerService;
private readonly uriIdentityService;
private readonly fileService;
private readonly logService;
private readonly _onDidChangeExtensionsByAnotherSource;
readonly onDidChangeExtensionsByAnotherSource: import('@sussudio/base/common/event.mjs').Event<DidChangeProfileExtensionsEvent>;
private readonly allExtensions;
private readonly extensionsProfileWatchDisposables;
constructor(
extensionManagementService: INativeServerExtensionManagementService,
extensionsScannerService: IExtensionsScannerService,
userDataProfilesService: IUserDataProfilesService,
extensionsProfileScannerService: IExtensionsProfileScannerService,
uriIdentityService: IUriIdentityService,
fileService: IFileService,
logService: ILogService,
);
private initialize;
private registerListeners;
private onDidChangeProfiles;
private onAddExtensions;
private onDidAddExtensions;
private onRemoveExtensions;
private onDidRemoveExtensions;
private onDidFilesChange;
private onDidExtensionsProfileChange;
private populateExtensionsFromProfile;
private removeExtensionsFromProfile;
private uninstallExtensionsNotInProfiles;
private addExtensionWithKey;
private removeExtensionWithKey;
private getKey;
private fromKey;
}