Skip to content

Commit 5974c2e

Browse files
committed
move ui extensions to product json
1 parent 392d0be commit 5974c2e

6 files changed

Lines changed: 48 additions & 39 deletions

File tree

src/vs/platform/extensionManagement/node/extensionManagementService.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,9 @@ import { Schemas } from 'vs/base/common/network';
4444
import { CancellationToken } from 'vs/base/common/cancellation';
4545
import { getPathFromAmdModule } from 'vs/base/common/amd';
4646
import { getManifest } from 'vs/platform/extensionManagement/node/extensionManagementUtil';
47-
import { IExtensionManifest, ExtensionType, ExtensionIdentifierWithVersion, isUIExtension } from 'vs/platform/extensions/common/extensions';
47+
import { IExtensionManifest, ExtensionType, ExtensionIdentifierWithVersion } from 'vs/platform/extensions/common/extensions';
4848
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
49+
import { isUIExtension } from 'vs/platform/extensions/node/extensionsUtil';
4950

5051
const ERROR_SCANNING_SYS_EXTENSIONS = 'scanningSystem';
5152
const ERROR_SCANNING_USER_EXTENSIONS = 'scanningUser';

src/vs/platform/extensionManagement/node/multiExtensionManagement.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
IExtensionManagementServerService, IExtensionManagementServer, IExtensionGalleryService
1010
} from 'vs/platform/extensionManagement/common/extensionManagement';
1111
import { flatten } from 'vs/base/common/arrays';
12-
import { isUIExtension, ExtensionType, IExtensionManifest } from 'vs/platform/extensions/common/extensions';
12+
import { ExtensionType, IExtensionManifest } from 'vs/platform/extensions/common/extensions';
1313
import { URI } from 'vs/base/common/uri';
1414
import { Disposable } from 'vs/base/common/lifecycle';
1515
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
@@ -19,6 +19,7 @@ import { getManifest } from 'vs/platform/extensionManagement/node/extensionManag
1919
import { ILogService } from 'vs/platform/log/common/log';
2020
import { areSameExtensions } from 'vs/platform/extensionManagement/common/extensionManagementUtil';
2121
import { localize } from 'vs/nls';
22+
import { isUIExtension } from 'vs/platform/extensions/node/extensionsUtil';
2223

2324
export class MultiExtensionManagementService extends Disposable implements IExtensionManagementService {
2425

src/vs/platform/extensions/common/extensions.ts

Lines changed: 1 addition & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
7-
import { getGalleryExtensionId, areSameExtensions } from 'vs/platform/extensionManagement/common/extensionManagementUtil';
6+
import { areSameExtensions } from 'vs/platform/extensionManagement/common/extensionManagementUtil';
87
import * as strings from 'vs/base/common/strings';
9-
import { isNonEmptyArray } from 'vs/base/common/arrays';
108
import { ILocalization } from 'vs/platform/localizations/common/localizations';
119
import { URI } from 'vs/base/common/uri';
1210

@@ -174,39 +172,6 @@ export interface IExtension {
174172
readonly location: URI;
175173
}
176174

177-
const uiExtensions = new Set<string>();
178-
uiExtensions.add('msjsdiag.debugger-for-chrome');
179-
180-
export function isUIExtension(manifest: IExtensionManifest, configurationService: IConfigurationService): boolean {
181-
const extensionId = getGalleryExtensionId(manifest.publisher, manifest.name);
182-
const configuredUIExtensions = configurationService.getValue<string[]>('_workbench.uiExtensions') || [];
183-
if (configuredUIExtensions.length) {
184-
if (configuredUIExtensions.indexOf(extensionId) !== -1) {
185-
return true;
186-
}
187-
if (configuredUIExtensions.indexOf(`-${extensionId}`) !== -1) {
188-
return false;
189-
}
190-
}
191-
switch (manifest.extensionKind) {
192-
case 'ui': return true;
193-
case 'workspace': return false;
194-
default: {
195-
if (uiExtensions.has(extensionId)) {
196-
return true;
197-
}
198-
if (manifest.main) {
199-
return false;
200-
}
201-
if (manifest.contributes && isNonEmptyArray(manifest.contributes.debuggers)) {
202-
return false;
203-
}
204-
// Default is UI Extension
205-
return true;
206-
}
207-
}
208-
}
209-
210175
/**
211176
* **!Do not construct directly!**
212177
*
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
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 { IConfigurationService } from 'vs/platform/configuration/common/configuration';
7+
import { IExtensionManifest } from 'vs/platform/extensions/common/extensions';
8+
import { getGalleryExtensionId, areSameExtensions } from 'vs/platform/extensionManagement/common/extensionManagementUtil';
9+
import { isNonEmptyArray } from 'vs/base/common/arrays';
10+
import product from 'vs/platform/node/product';
11+
12+
export function isUIExtension(manifest: IExtensionManifest, configurationService: IConfigurationService): boolean {
13+
const extensionId = getGalleryExtensionId(manifest.publisher, manifest.name);
14+
const configuredUIExtensions = configurationService.getValue<string[]>('_workbench.uiExtensions') || [];
15+
if (configuredUIExtensions.length) {
16+
if (configuredUIExtensions.indexOf(extensionId) !== -1) {
17+
return true;
18+
}
19+
if (configuredUIExtensions.indexOf(`-${extensionId}`) !== -1) {
20+
return false;
21+
}
22+
}
23+
switch (manifest.extensionKind) {
24+
case 'ui': return true;
25+
case 'workspace': return false;
26+
default: {
27+
if (isNonEmptyArray(product.uiExtensions) && product.uiExtensions.some(id => areSameExtensions({ id }, { id: extensionId }))) {
28+
return true;
29+
}
30+
if (manifest.main) {
31+
return false;
32+
}
33+
if (manifest.contributes && isNonEmptyArray(manifest.contributes.debuggers)) {
34+
return false;
35+
}
36+
// Default is UI Extension
37+
return true;
38+
}
39+
}
40+
}

src/vs/platform/node/product.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ export interface IProductConfiguration {
8080
};
8181
logUploaderUrl: string;
8282
portable?: string;
83+
uiExtensions?: string[];
8384
}
8485

8586
export interface ISurveyData {

src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ import * as resources from 'vs/base/common/resources';
3434
import { CancellationToken } from 'vs/base/common/cancellation';
3535
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
3636
import { IFileService } from 'vs/platform/files/common/files';
37-
import { IExtensionManifest, ExtensionType, ExtensionIdentifierWithVersion, IExtension as IPlatformExtension, isUIExtension } from 'vs/platform/extensions/common/extensions';
37+
import { IExtensionManifest, ExtensionType, ExtensionIdentifierWithVersion, IExtension as IPlatformExtension } from 'vs/platform/extensions/common/extensions';
38+
import { isUIExtension } from 'vs/platform/extensions/node/extensionsUtil';
3839

3940
interface IExtensionStateProvider<T> {
4041
(extension: Extension): T;

0 commit comments

Comments
 (0)