Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/services/extensionManagement/electron-browser/extensionTipsService.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { InstantiationType, registerSingleton } from '../../../../platform/instantiation/common/extensions.js';
7
import { ISharedProcessService } from '../../../../platform/ipc/electron-browser/services.js';
8
import { IChannel } from '../../../../base/parts/ipc/common/ipc.js';
9
import { IExtensionTipsService, IExecutableBasedExtensionTip, IConfigBasedExtensionTip } from '../../../../platform/extensionManagement/common/extensionManagement.js';
10
import { URI } from '../../../../base/common/uri.js';
11
import { ExtensionTipsService } from '../../../../platform/extensionManagement/common/extensionTipsService.js';
12
import { IFileService } from '../../../../platform/files/common/files.js';
13
import { IProductService } from '../../../../platform/product/common/productService.js';
14
import { Schemas } from '../../../../base/common/network.js';
15
16
class NativeExtensionTipsService extends ExtensionTipsService implements IExtensionTipsService {
17
18
private readonly channel: IChannel;
19
20
constructor(
21
@IFileService fileService: IFileService,
22
@IProductService productService: IProductService,
23
@ISharedProcessService sharedProcessService: ISharedProcessService
24
) {
25
super(fileService, productService);
26
this.channel = sharedProcessService.getChannel('extensionTipsService');
27
}
28
29
override getConfigBasedTips(folder: URI): Promise<IConfigBasedExtensionTip[]> {
30
if (folder.scheme === Schemas.file) {
31
return this.channel.call<IConfigBasedExtensionTip[]>('getConfigBasedTips', [folder]);
32
}
33
return super.getConfigBasedTips(folder);
34
}
35
36
override getImportantExecutableBasedTips(): Promise<IExecutableBasedExtensionTip[]> {
37
return this.channel.call<IExecutableBasedExtensionTip[]>('getImportantExecutableBasedTips');
38
}
39
40
override getOtherExecutableBasedTips(): Promise<IExecutableBasedExtensionTip[]> {
41
return this.channel.call<IExecutableBasedExtensionTip[]>('getOtherExecutableBasedTips');
42
}
43
44
}
45
46
registerSingleton(IExtensionTipsService, NativeExtensionTipsService, InstantiationType.Delayed);
47
48