mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-03-30 00:30:29 -04:00
Merge from vscode 718331d6f3ebd1b571530ab499edb266ddd493d5
This commit is contained in:
@@ -10,7 +10,7 @@ import * as arrays from 'vs/base/common/arrays';
|
||||
import { OS } from 'vs/base/common/platform';
|
||||
import { Event, Emitter } from 'vs/base/common/event';
|
||||
import { Cache, CacheResult } from 'vs/base/common/cache';
|
||||
import { Action } from 'vs/base/common/actions';
|
||||
import { Action, IAction } from 'vs/base/common/actions';
|
||||
import { isPromiseCanceledError } from 'vs/base/common/errors';
|
||||
import { dispose, toDisposable, Disposable, DisposableStore, IDisposable } from 'vs/base/common/lifecycle';
|
||||
import { domEvent } from 'vs/base/browser/event';
|
||||
@@ -34,7 +34,6 @@ import { IOpenerService, matchesScheme } from 'vs/platform/opener/common/opener'
|
||||
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
||||
import { KeybindingLabel } from 'vs/base/browser/ui/keybindingLabel/keybindingLabel';
|
||||
import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
|
||||
import { Command } from 'vs/editor/browser/editorExtensions';
|
||||
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
|
||||
import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry';
|
||||
import { Color } from 'vs/base/common/color';
|
||||
@@ -61,6 +60,7 @@ import { IModeService } from 'vs/editor/common/services/modeService';
|
||||
import { TokenizationRegistry } from 'vs/editor/common/modes';
|
||||
import { generateTokensCSSForColorMap } from 'vs/editor/common/modes/supports/tokenization';
|
||||
import { editorBackground } from 'vs/platform/theme/common/colorRegistry';
|
||||
import { registerAction2, Action2 } from 'vs/platform/actions/common/actions';
|
||||
|
||||
function removeEmbeddedSVGs(documentContent: string): string {
|
||||
const newDocument = new DOMParser().parseFromString(documentContent, 'text/html');
|
||||
@@ -243,7 +243,7 @@ export class ExtensionEditor extends BaseEditor {
|
||||
const extensionActions = append(details, $('.actions'));
|
||||
const extensionActionBar = this._register(new ActionBar(extensionActions, {
|
||||
animated: false,
|
||||
actionViewItemProvider: (action: Action) => {
|
||||
actionViewItemProvider: (action: IAction) => {
|
||||
if (action instanceof ExtensionEditorDropDownAction) {
|
||||
return action.createActionViewItem();
|
||||
}
|
||||
@@ -459,7 +459,7 @@ export class ExtensionEditor extends BaseEditor {
|
||||
template.navbar.push(NavbarSection.ExtensionPack, localize('extensionPack', "Extension Pack"), localize('extensionsPack', "Set of extensions that can be installed together"));
|
||||
}
|
||||
if (manifest && manifest.contributes) {
|
||||
template.navbar.push(NavbarSection.Contributions, localize('contributions', "Contributions"), localize('contributionstooltip', "Lists contributions to VS Code by this extension"));
|
||||
template.navbar.push(NavbarSection.Contributions, localize('contributions', "Feature Contributions"), localize('contributionstooltip', "Lists contributions to VS Code by this extension"));
|
||||
}
|
||||
if (extension.hasChangelog()) {
|
||||
template.navbar.push(NavbarSection.Changelog, localize('changelog', "Changelog"), localize('changelogtooltip', "Extension update history, rendered from the extension's 'CHANGELOG.md' file"));
|
||||
@@ -1419,60 +1419,69 @@ export class ExtensionEditor extends BaseEditor {
|
||||
}
|
||||
|
||||
const contextKeyExpr = ContextKeyExpr.and(ContextKeyExpr.equals('activeEditor', ExtensionEditor.ID), ContextKeyExpr.not('editorFocus'));
|
||||
class ShowExtensionEditorFindCommand extends Command {
|
||||
public runCommand(accessor: ServicesAccessor, args: any): void {
|
||||
registerAction2(class ShowExtensionEditorFindAction extends Action2 {
|
||||
constructor() {
|
||||
super({
|
||||
id: 'editor.action.extensioneditor.showfind',
|
||||
title: localize('find', "Find"),
|
||||
keybinding: {
|
||||
when: contextKeyExpr,
|
||||
weight: KeybindingWeight.EditorContrib,
|
||||
primary: KeyMod.CtrlCmd | KeyCode.KEY_F,
|
||||
}
|
||||
});
|
||||
}
|
||||
run(accessor: ServicesAccessor): any {
|
||||
const extensionEditor = getExtensionEditor(accessor);
|
||||
if (extensionEditor) {
|
||||
extensionEditor.showFind();
|
||||
}
|
||||
}
|
||||
}
|
||||
(new ShowExtensionEditorFindCommand({
|
||||
id: 'editor.action.extensioneditor.showfind',
|
||||
precondition: contextKeyExpr,
|
||||
kbOpts: {
|
||||
primary: KeyMod.CtrlCmd | KeyCode.KEY_F,
|
||||
weight: KeybindingWeight.EditorContrib
|
||||
}
|
||||
})).register();
|
||||
});
|
||||
|
||||
class StartExtensionEditorFindNextCommand extends Command {
|
||||
public runCommand(accessor: ServicesAccessor, args: any): void {
|
||||
registerAction2(class StartExtensionEditorFindNextAction extends Action2 {
|
||||
constructor() {
|
||||
super({
|
||||
id: 'editor.action.extensioneditor.findNext',
|
||||
title: localize('find next', "Find Next"),
|
||||
keybinding: {
|
||||
when: ContextKeyExpr.and(
|
||||
contextKeyExpr,
|
||||
KEYBINDING_CONTEXT_WEBVIEW_FIND_WIDGET_FOCUSED),
|
||||
primary: KeyCode.Enter,
|
||||
weight: KeybindingWeight.EditorContrib
|
||||
}
|
||||
});
|
||||
}
|
||||
run(accessor: ServicesAccessor): any {
|
||||
const extensionEditor = getExtensionEditor(accessor);
|
||||
if (extensionEditor) {
|
||||
extensionEditor.runFindAction(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
(new StartExtensionEditorFindNextCommand({
|
||||
id: 'editor.action.extensioneditor.findNext',
|
||||
precondition: ContextKeyExpr.and(
|
||||
contextKeyExpr,
|
||||
KEYBINDING_CONTEXT_WEBVIEW_FIND_WIDGET_FOCUSED),
|
||||
kbOpts: {
|
||||
primary: KeyCode.Enter,
|
||||
weight: KeybindingWeight.EditorContrib
|
||||
}
|
||||
})).register();
|
||||
});
|
||||
|
||||
class StartExtensionEditorFindPreviousCommand extends Command {
|
||||
public runCommand(accessor: ServicesAccessor, args: any): void {
|
||||
registerAction2(class StartExtensionEditorFindPreviousAction extends Action2 {
|
||||
constructor() {
|
||||
super({
|
||||
id: 'editor.action.extensioneditor.findPrevious',
|
||||
title: localize('find previous', "Find Previous"),
|
||||
keybinding: {
|
||||
when: ContextKeyExpr.and(
|
||||
contextKeyExpr,
|
||||
KEYBINDING_CONTEXT_WEBVIEW_FIND_WIDGET_FOCUSED),
|
||||
primary: KeyMod.Shift | KeyCode.Enter,
|
||||
weight: KeybindingWeight.EditorContrib
|
||||
}
|
||||
});
|
||||
}
|
||||
run(accessor: ServicesAccessor): any {
|
||||
const extensionEditor = getExtensionEditor(accessor);
|
||||
if (extensionEditor) {
|
||||
extensionEditor.runFindAction(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
(new StartExtensionEditorFindPreviousCommand({
|
||||
id: 'editor.action.extensioneditor.findPrevious',
|
||||
precondition: ContextKeyExpr.and(
|
||||
contextKeyExpr,
|
||||
KEYBINDING_CONTEXT_WEBVIEW_FIND_WIDGET_FOCUSED),
|
||||
kbOpts: {
|
||||
primary: KeyMod.Shift | KeyCode.Enter,
|
||||
weight: KeybindingWeight.EditorContrib
|
||||
}
|
||||
})).register();
|
||||
});
|
||||
|
||||
function getExtensionEditor(accessor: ServicesAccessor): ExtensionEditor | null {
|
||||
const activeControl = accessor.get(IEditorService).activeControl as ExtensionEditor;
|
||||
|
||||
@@ -404,7 +404,7 @@ registerAction2(class extends Action2 {
|
||||
constructor() {
|
||||
super({
|
||||
id: 'workbench.extensions.action.configure',
|
||||
title: { value: localize('workbench.extensions.action.configure', "Configure..."), original: 'Configure...' },
|
||||
title: { value: localize('workbench.extensions.action.configure', "Extension Settings"), original: 'Extension Settings' },
|
||||
menu: {
|
||||
id: MenuId.ExtensionContext,
|
||||
group: '2_configure',
|
||||
|
||||
@@ -679,11 +679,21 @@ export class DropDownMenuActionViewItem extends ExtensionActionViewItem {
|
||||
}
|
||||
}
|
||||
|
||||
export function getContextMenuActions(menuService: IMenuService, contextKeyService: IContextKeyService): ExtensionAction[][] {
|
||||
export function getContextMenuActions(menuService: IMenuService, contextKeyService: IContextKeyService, extension: IExtension | undefined | null): ExtensionAction[][] {
|
||||
const scopedContextKeyService = contextKeyService.createScoped();
|
||||
if (extension) {
|
||||
scopedContextKeyService.createKey<boolean>('isBuiltinExtension', extension.type === ExtensionType.System);
|
||||
scopedContextKeyService.createKey<boolean>('extensionHasConfiguration', extension.local && !!extension.local.manifest.contributes && !!extension.local.manifest.contributes.configuration);
|
||||
if (extension.state === ExtensionState.Installed) {
|
||||
scopedContextKeyService.createKey<string>('extensionStatus', 'installed');
|
||||
}
|
||||
}
|
||||
|
||||
const groups: ExtensionAction[][] = [];
|
||||
const menu = menuService.createMenu(MenuId.ExtensionContext, contextKeyService);
|
||||
const menu = menuService.createMenu(MenuId.ExtensionContext, scopedContextKeyService);
|
||||
menu.getActions({ shouldForwardArgs: true }).forEach(([, actions]) => groups.push(actions.map(action => new MenuItemExtensionAction(action))));
|
||||
menu.dispose();
|
||||
|
||||
return groups;
|
||||
}
|
||||
|
||||
@@ -735,10 +745,7 @@ export class ManageExtensionAction extends ExtensionDropDownAction {
|
||||
groups.push([this.instantiationService.createInstance(UninstallAction)]);
|
||||
groups.push([this.instantiationService.createInstance(InstallAnotherVersionAction)]);
|
||||
|
||||
const contextKeyService = this.contextKeyService.createScoped();
|
||||
contextKeyService.createKey('extensionStatus', 'installed');
|
||||
contextKeyService.createKey<boolean>('extensionHasConfiguration', !!this.extension && !!this.extension.local && !!this.extension.local.manifest.contributes && !!this.extension.local.manifest.contributes.configuration);
|
||||
getContextMenuActions(this.menuService, contextKeyService).forEach(actions => groups.push(actions));
|
||||
getContextMenuActions(this.menuService, this.contextKeyService, this.extension).forEach(actions => groups.push(actions));
|
||||
|
||||
groups.forEach(group => group.forEach(extensionAction => extensionAction.extension = this.extension));
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
import { append, $, addClass, removeClass, toggleClass } from 'vs/base/browser/dom';
|
||||
import { IDisposable, dispose, combinedDisposable } from 'vs/base/common/lifecycle';
|
||||
import { Action } from 'vs/base/common/actions';
|
||||
import { IAction } from 'vs/base/common/actions';
|
||||
import { ActionBar } from 'vs/base/browser/ui/actionbar/actionbar';
|
||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||
import { IListVirtualDelegate } from 'vs/base/browser/ui/list/list';
|
||||
@@ -81,7 +81,7 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
|
||||
const author = append(footer, $('.author.ellipsis'));
|
||||
const actionbar = new ActionBar(footer, {
|
||||
animated: false,
|
||||
actionViewItemProvider: (action: Action) => {
|
||||
actionViewItemProvider: (action: IAction) => {
|
||||
if (action.id === ManageExtensionAction.ID) {
|
||||
return (<ManageExtensionAction>action).createActionViewItem();
|
||||
}
|
||||
|
||||
@@ -541,8 +541,8 @@ export class ExtensionsViewPaneContainer extends ViewPaneContainer implements IE
|
||||
))).then(() => undefined);
|
||||
}
|
||||
|
||||
protected onDidAddViews(added: IAddedViewDescriptorRef[]): ViewPane[] {
|
||||
const addedViews = super.onDidAddViews(added);
|
||||
protected onDidAddViewDescriptors(added: IAddedViewDescriptorRef[]): ViewPane[] {
|
||||
const addedViews = super.onDidAddViewDescriptors(added);
|
||||
this.progress(Promise.all(addedViews.map(addedView =>
|
||||
(<ExtensionsListView>addedView).show(this.normalizedQuery())
|
||||
.then(model => this.alertSearchResult(model.length, addedView.id))
|
||||
|
||||
@@ -243,7 +243,7 @@ export class ExtensionsListView extends ViewPane {
|
||||
getActions: () => actions.slice(0, actions.length - 1)
|
||||
});
|
||||
} else if (e.element) {
|
||||
const groups = getContextMenuActions(this.menuService, this.contextKeyService.createScoped());
|
||||
const groups = getContextMenuActions(this.menuService, this.contextKeyService.createScoped(), e.element);
|
||||
groups.forEach(group => group.forEach(extensionAction => extensionAction.extension = e.element!));
|
||||
let actions: IAction[] = [];
|
||||
for (const menuActions of groups) {
|
||||
|
||||
@@ -528,12 +528,10 @@ export class ExtensionsWorkbenchService extends Disposable implements IExtension
|
||||
if (extensionManagementServerService.localExtensionManagementServer) {
|
||||
this.localExtensions = this._register(instantiationService.createInstance(Extensions, extensionManagementServerService.localExtensionManagementServer, ext => this.getExtensionState(ext)));
|
||||
this._register(this.localExtensions.onChange(e => this._onChange.fire(e ? e.extension : undefined)));
|
||||
this._register(Event.filter(this.localExtensions.onChange, e => !!e && e.operation === InstallOperation.Install)(e => this.onDidInstallExtension(e!.extension)));
|
||||
}
|
||||
if (extensionManagementServerService.remoteExtensionManagementServer) {
|
||||
this.remoteExtensions = this._register(instantiationService.createInstance(Extensions, extensionManagementServerService.remoteExtensionManagementServer, ext => this.getExtensionState(ext)));
|
||||
this._register(this.remoteExtensions.onChange(e => this._onChange.fire(e ? e.extension : undefined)));
|
||||
this._register(Event.filter(this.remoteExtensions.onChange, e => !!e && e.operation === InstallOperation.Install)(e => this.onDidInstallExtension(e!.extension)));
|
||||
}
|
||||
|
||||
this.syncDelayer = new ThrottledDelayer<void>(ExtensionsWorkbenchService.SyncPeriod);
|
||||
@@ -948,10 +946,6 @@ export class ExtensionsWorkbenchService extends Disposable implements IExtension
|
||||
}
|
||||
}
|
||||
|
||||
private onDidInstallExtension(extension: IExtension): void {
|
||||
this.setEnablement(extension, EnablementState.EnabledGlobally);
|
||||
}
|
||||
|
||||
private promptAndSetEnablement(extensions: IExtension[], enablementState: EnablementState): Promise<any> {
|
||||
const enable = enablementState === EnablementState.EnabledGlobally || enablementState === EnablementState.EnabledWorkspace;
|
||||
if (enable) {
|
||||
|
||||
@@ -12,32 +12,32 @@ export class Query {
|
||||
}
|
||||
|
||||
static suggestions(query: string): string[] {
|
||||
const commands = ['installed', 'outdated', 'enabled', 'disabled', 'builtin', 'recommended', 'sort', 'category', 'tag', 'ext', 'id'];
|
||||
const commands = ['installed', 'outdated', 'enabled', 'disabled', 'builtin', 'recommended', 'sort', 'category', 'tag', 'ext', 'id'] as const;
|
||||
const subcommands = {
|
||||
'sort': ['installs', 'rating', 'name'],
|
||||
'category': ['"programming languages"', 'snippets', 'linters', 'themes', 'debuggers', 'formatters', 'keymaps', '"scm providers"', 'other', '"extension packs"', '"language packs"'],
|
||||
'tag': [''],
|
||||
'ext': [''],
|
||||
'id': ['']
|
||||
};
|
||||
} as const;
|
||||
|
||||
let queryContains = (substr: string) => query.indexOf(substr) > -1;
|
||||
let hasSort = subcommands.sort.some(subcommand => queryContains(`@sort:${subcommand}`));
|
||||
let hasCategory = subcommands.category.some(subcommand => queryContains(`@category:${subcommand}`));
|
||||
const queryContains = (substr: string) => query.indexOf(substr) > -1;
|
||||
const hasSort = subcommands.sort.some(subcommand => queryContains(`@sort:${subcommand}`));
|
||||
const hasCategory = subcommands.category.some(subcommand => queryContains(`@category:${subcommand}`));
|
||||
|
||||
return flatten(
|
||||
commands.map(command => {
|
||||
if (hasSort && command === 'sort' || hasCategory && command === 'category') {
|
||||
return [];
|
||||
}
|
||||
if ((subcommands as any)[command]) {
|
||||
return (subcommands as any)[command].map((subcommand: string) => `@${command}:${subcommand}${subcommand === '' ? '' : ' '}`);
|
||||
if (command in subcommands) {
|
||||
return (subcommands as Record<string, readonly string[]>)[command]
|
||||
.map(subcommand => `@${command}:${subcommand}${subcommand === '' ? '' : ' '}`);
|
||||
}
|
||||
else {
|
||||
return [`@${command} `];
|
||||
return queryContains(`@${command}`) ? [] : [`@${command} `];
|
||||
}
|
||||
}));
|
||||
|
||||
}
|
||||
|
||||
static parse(value: string): Query {
|
||||
|
||||
@@ -128,7 +128,7 @@ export class ExtensionContainers extends Disposable {
|
||||
this.containers.forEach(c => c.extension = extension);
|
||||
}
|
||||
|
||||
private update(extension: IExtension): void {
|
||||
private update(extension: IExtension | undefined): void {
|
||||
for (const container of this.containers) {
|
||||
if (extension && container.extension) {
|
||||
if (areSameExtensions(container.extension.identifier, extension.identifier)) {
|
||||
|
||||
@@ -17,7 +17,7 @@ import { IWorkbenchExtensionEnablementService, EnablementState, IExtensionManage
|
||||
import { getGalleryExtensionId } from 'vs/platform/extensionManagement/common/extensionManagementUtil';
|
||||
import { ExtensionManagementService } from 'vs/platform/extensionManagement/node/extensionManagementService';
|
||||
import { ExtensionTipsService } from 'vs/workbench/contrib/extensions/browser/extensionTipsService';
|
||||
import { TestExtensionEnablementService } from 'vs/workbench/services/extensionManagement/test/electron-browser/extensionEnablementService.test';
|
||||
import { TestExtensionEnablementService } from 'vs/workbench/services/extensionManagement/test/browser/extensionEnablementService.test';
|
||||
import { ExtensionGalleryService } from 'vs/platform/extensionManagement/common/extensionGalleryService';
|
||||
import { IURLService } from 'vs/platform/url/common/url';
|
||||
import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock';
|
||||
@@ -27,7 +27,8 @@ import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
import { NullTelemetryService } from 'vs/platform/telemetry/common/telemetryUtils';
|
||||
import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions';
|
||||
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
|
||||
import { TestContextService, TestSharedProcessService } from 'vs/workbench/test/workbenchTestServices';
|
||||
import { TestContextService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { TestSharedProcessService } from 'vs/workbench/test/electron-browser/workbenchTestServices';
|
||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
import { ILogService, NullLogService } from 'vs/platform/log/common/log';
|
||||
import { URLService } from 'vs/platform/url/node/urlService';
|
||||
|
||||
@@ -22,7 +22,8 @@ import { Emitter } from 'vs/base/common/event';
|
||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
import { NullTelemetryService } from 'vs/platform/telemetry/common/telemetryUtils';
|
||||
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
|
||||
import { TestContextService, TestLifecycleService, TestSharedProcessService, productService } from 'vs/workbench/test/workbenchTestServices';
|
||||
import { TestContextService, TestLifecycleService, productService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { TestSharedProcessService } from 'vs/workbench/test/electron-browser/workbenchTestServices';
|
||||
import { TestNotificationService } from 'vs/platform/notification/test/common/testNotificationService';
|
||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
@@ -34,7 +35,7 @@ import { getGalleryExtensionId } from 'vs/platform/extensionManagement/common/ex
|
||||
import { IEnvironmentService } from 'vs/platform/environment/common/environment';
|
||||
import { ConfigurationKey } from 'vs/workbench/contrib/extensions/common/extensions';
|
||||
import { ExtensionManagementService } from 'vs/platform/extensionManagement/node/extensionManagementService';
|
||||
import { TestExtensionEnablementService } from 'vs/workbench/services/extensionManagement/test/electron-browser/extensionEnablementService.test';
|
||||
import { TestExtensionEnablementService } from 'vs/workbench/services/extensionManagement/test/browser/extensionEnablementService.test';
|
||||
import { IURLService } from 'vs/platform/url/common/url';
|
||||
import { ITextModel } from 'vs/editor/common/model';
|
||||
import { IModelService } from 'vs/editor/common/services/modelService';
|
||||
|
||||
@@ -18,7 +18,7 @@ import { IWorkbenchExtensionEnablementService, EnablementState, IExtensionManage
|
||||
import { getGalleryExtensionId } from 'vs/platform/extensionManagement/common/extensionManagementUtil';
|
||||
import { ExtensionManagementService } from 'vs/platform/extensionManagement/node/extensionManagementService';
|
||||
import { ExtensionTipsService } from 'vs/workbench/contrib/extensions/browser/extensionTipsService';
|
||||
import { TestExtensionEnablementService } from 'vs/workbench/services/extensionManagement/test/electron-browser/extensionEnablementService.test';
|
||||
import { TestExtensionEnablementService } from 'vs/workbench/services/extensionManagement/test/browser/extensionEnablementService.test';
|
||||
import { ExtensionGalleryService } from 'vs/platform/extensionManagement/common/extensionGalleryService';
|
||||
import { IURLService } from 'vs/platform/url/common/url';
|
||||
import { Emitter } from 'vs/base/common/event';
|
||||
@@ -27,7 +27,8 @@ import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
import { NullTelemetryService } from 'vs/platform/telemetry/common/telemetryUtils';
|
||||
import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions';
|
||||
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
|
||||
import { TestContextService, TestSharedProcessService, TestMenuService } from 'vs/workbench/test/workbenchTestServices';
|
||||
import { TestContextService, TestMenuService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { TestSharedProcessService } from 'vs/workbench/test/electron-browser/workbenchTestServices';
|
||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
import { ILogService, NullLogService } from 'vs/platform/log/common/log';
|
||||
import { URLService } from 'vs/platform/url/node/urlService';
|
||||
|
||||
@@ -18,7 +18,7 @@ import { IWorkbenchExtensionEnablementService, EnablementState, IExtensionManage
|
||||
import { getGalleryExtensionId } from 'vs/platform/extensionManagement/common/extensionManagementUtil';
|
||||
import { ExtensionManagementService } from 'vs/platform/extensionManagement/node/extensionManagementService';
|
||||
import { ExtensionTipsService } from 'vs/workbench/contrib/extensions/browser/extensionTipsService';
|
||||
import { TestExtensionEnablementService } from 'vs/workbench/services/extensionManagement/test/electron-browser/extensionEnablementService.test';
|
||||
import { TestExtensionEnablementService } from 'vs/workbench/services/extensionManagement/test/browser/extensionEnablementService.test';
|
||||
import { ExtensionGalleryService } from 'vs/platform/extensionManagement/common/extensionGalleryService';
|
||||
import { IURLService } from 'vs/platform/url/common/url';
|
||||
import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock';
|
||||
@@ -27,7 +27,8 @@ import { IPager } from 'vs/base/common/paging';
|
||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
import { NullTelemetryService } from 'vs/platform/telemetry/common/telemetryUtils';
|
||||
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
|
||||
import { TestContextService, TestSharedProcessService } from 'vs/workbench/test/workbenchTestServices';
|
||||
import { TestContextService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { TestSharedProcessService } from 'vs/workbench/test/electron-browser/workbenchTestServices';
|
||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
import { ILogService, NullLogService } from 'vs/platform/log/common/log';
|
||||
import { IProgressService } from 'vs/platform/progress/common/progress';
|
||||
@@ -942,16 +943,6 @@ suite('ExtensionsWorkbenchServiceTest', () => {
|
||||
});
|
||||
});
|
||||
|
||||
test('test installing an extension re-eanbles it when disabled globally', async () => {
|
||||
testObject = await aWorkbenchService();
|
||||
const local = aLocalExtension('pub.a');
|
||||
await instantiationService.get(IWorkbenchExtensionEnablementService).setEnablement([local], EnablementState.DisabledGlobally);
|
||||
didInstallEvent.fire({ local, identifier: local.identifier, operation: InstallOperation.Install });
|
||||
instantiationService.stubPromise(IExtensionManagementService, 'getInstalled', [local]);
|
||||
const actual = await testObject.queryLocal();
|
||||
assert.equal(actual[0].enablementState, EnablementState.EnabledGlobally);
|
||||
});
|
||||
|
||||
test('test updating an extension does not re-eanbles it when disabled globally', async () => {
|
||||
testObject = await aWorkbenchService();
|
||||
const local = aLocalExtension('pub.a');
|
||||
@@ -962,16 +953,6 @@ suite('ExtensionsWorkbenchServiceTest', () => {
|
||||
assert.equal(actual[0].enablementState, EnablementState.DisabledGlobally);
|
||||
});
|
||||
|
||||
test('test installing an extension re-eanbles it when workspace disabled', async () => {
|
||||
testObject = await aWorkbenchService();
|
||||
const local = aLocalExtension('pub.a');
|
||||
await instantiationService.get(IWorkbenchExtensionEnablementService).setEnablement([local], EnablementState.DisabledWorkspace);
|
||||
didInstallEvent.fire({ local, identifier: local.identifier, operation: InstallOperation.Install });
|
||||
instantiationService.stubPromise(IExtensionManagementService, 'getInstalled', [local]);
|
||||
const actual = await testObject.queryLocal();
|
||||
assert.equal(actual[0].enablementState, EnablementState.EnabledGlobally);
|
||||
});
|
||||
|
||||
test('test updating an extension does not re-eanbles it when workspace disabled', async () => {
|
||||
testObject = await aWorkbenchService();
|
||||
const local = aLocalExtension('pub.a');
|
||||
|
||||
Reference in New Issue
Block a user