#115289 show only default containers in view menu

This commit is contained in:
Sandeep Somavarapu 2021-02-02 09:55:32 +01:00
parent 3feb8937a8
commit 7020ccf134
25 changed files with 114 additions and 110 deletions

View file

@ -473,7 +473,7 @@ export class MainThreadComments extends Disposable implements MainThreadComments
if (!commentsViewAlreadyRegistered) {
const VIEW_CONTAINER: ViewContainer = Registry.as<IViewContainersRegistry>(ViewExtensions.ViewContainersRegistry).registerViewContainer({
id: COMMENTS_VIEW_ID,
title: { value: localize('comments', "Comments"), original: 'Comments' },
title: COMMENTS_VIEW_TITLE,
ctorDescriptor: new SyncDescriptor(ViewPaneContainer, [COMMENTS_VIEW_ID, { mergeViewWithContainerWhenSingleView: true, donotShowContainerTitleWhenMergedWithContainer: true }]),
storageId: COMMENTS_VIEW_TITLE,
hideIfEmpty: true,

View file

@ -372,7 +372,7 @@ class ViewsExtensionHandler implements IWorkbenchContribution {
viewContainer = this.viewContainersRegistry.registerViewContainer({
id,
title: { value: title, original: title }, extensionId,
title, extensionId,
ctorDescriptor: new SyncDescriptor(
ViewPaneContainer,
[id, { mergeViewWithContainerWhenSingleView: true }]
@ -462,7 +462,7 @@ class ViewsExtensionHandler implements IWorkbenchContribution {
name: item.name,
when: ContextKeyExpr.deserialize(item.when),
containerIcon: icon || viewContainer?.icon,
containerTitle: item.contextualTitle || viewContainer?.title.value,
containerTitle: item.contextualTitle || viewContainer?.title,
canToggleVisibility: true,
canMoveView: viewContainer?.id !== REMOTE,
treeView: type === ViewType.Tree ? this.instantiationService.createInstance(CustomTreeView, item.id, item.name) : undefined,

View file

@ -678,7 +678,7 @@ export class MoveFocusedViewAction extends Action {
.map(viewletId => {
return {
id: viewletId,
label: this.viewDescriptorService.getViewContainerById(viewletId)!.title.value
label: this.viewDescriptorService.getViewContainerById(viewletId)!.title
};
}));
@ -699,7 +699,7 @@ export class MoveFocusedViewAction extends Action {
.map(panel => {
return {
id: panel.id,
label: this.viewDescriptorService.getViewContainerById(panel.id)!.title.value
label: this.viewDescriptorService.getViewContainerById(panel.id)!.title
};
}));

View file

@ -812,7 +812,7 @@ export class ActivitybarPart extends Part implements IActivityBarService {
}
private addComposite(viewContainer: ViewContainer): void {
this.compositeBar.addComposite({ id: viewContainer.id, name: viewContainer.title.value, order: viewContainer.order, requestedIndex: viewContainer.requestedIndex });
this.compositeBar.addComposite({ id: viewContainer.id, name: viewContainer.title, order: viewContainer.order, requestedIndex: viewContainer.requestedIndex });
}
private hideComposite(compositeId: string): void {

View file

@ -310,7 +310,7 @@ export class PanelPart extends CompositePart<Panel> implements IPanelService {
}
if (viewContainerModel.activeViewDescriptors.length) {
contextKey.set(true);
this.compositeBar.addComposite({ id: viewContainer.id, name: viewContainer.title.value, order: viewContainer.order, requestedIndex: viewContainer.requestedIndex });
this.compositeBar.addComposite({ id: viewContainer.id, name: viewContainer.title, order: viewContainer.order, requestedIndex: viewContainer.requestedIndex });
} else if (viewContainer.hideIfEmpty) {
contextKey.set(false);
this.hideComposite(viewContainer.id);

View file

@ -142,24 +142,24 @@ export class ViewsService extends Disposable implements IViewsService {
}));
// Register Action to Open View Container
const defaultLocation = this.viewDescriptorService.getDefaultViewContainerLocation(viewContainer);
const commandAction = {
id: viewContainer.commandId ?? viewContainer.id,
title: viewContainer.title,
keybinding: viewContainer.keybindings ? { ...viewContainer.keybindings, weight: KeybindingWeight.WorkbenchContrib } : undefined
};
const commandId = viewContainer.commandId ?? viewContainer.id;
const that = this;
this._register(registerAction2(class OpenViewContainerAction extends Action2 {
constructor() {
super({
id: commandAction.id,
title: commandAction.title,
keybinding: commandAction.keybinding,
menu: [{
id: MenuId.MenubarViewMenu,
group: defaultLocation === ViewContainerLocation.Sidebar ? '3_views' : '4_panels',
when: ContextKeyExpr.has(getEnabledViewContainerContextKey(viewContainer.id)),
order: viewContainer.order ?? Number.MAX_VALUE
}]
id: commandId,
get title(): ICommandActionTitle {
const viewContainerLocation = that.viewDescriptorService.getViewContainerLocation(viewContainer);
if (viewContainerLocation === ViewContainerLocation.Sidebar) {
return { value: localize('show view', "Show {0}", viewContainer.title), original: `Show ${viewContainer.title}` };
} else {
return { value: localize('toggle view', "Toggle {0}", viewContainer.title), original: `Toggle ${viewContainer.title}` };
}
},
category: CATEGORIES.View.value,
precondition: ContextKeyExpr.has(getEnabledViewContainerContextKey(viewContainer.id)),
keybinding: viewContainer.keybindings ? { ...viewContainer.keybindings, weight: KeybindingWeight.WorkbenchContrib } : undefined,
f1: true
});
}
public async run(serviceAccessor: ServicesAccessor): Promise<any> {
@ -186,22 +186,19 @@ export class ViewsService extends Disposable implements IViewsService {
}
}
}));
const that = this;
this._register(MenuRegistry.appendMenuItem(MenuId.CommandPalette, {
command: {
id: commandAction.id,
get title(): ICommandActionTitle {
const viewContainerLocation = that.viewDescriptorService.getViewContainerLocation(viewContainer);
if (viewContainerLocation === ViewContainerLocation.Sidebar) {
return { value: localize('show view', "Show {0}", commandAction.title.value), original: `Show ${commandAction.title.value}` };
} else {
return { value: localize('toggle view', "Toggle {0}", commandAction.title.value), original: `Toggle ${commandAction.title.value}` };
}
if (viewContainer.mnemonicTitle) {
const defaultLocation = this.viewDescriptorService.getDefaultViewContainerLocation(viewContainer);
this._register(MenuRegistry.appendMenuItem(MenuId.MenubarViewMenu, {
command: {
id: commandId,
title: viewContainer.mnemonicTitle,
},
category: CATEGORIES.View.value,
precondition: ContextKeyExpr.has(getEnabledViewContainerContextKey(viewContainer.id)),
}
}));
group: defaultLocation === ViewContainerLocation.Sidebar ? '3_views' : '4_panels',
when: ContextKeyExpr.has(getEnabledViewContainerContextKey(viewContainer.id)),
order: viewContainer.order ?? Number.MAX_VALUE
}));
}
}
private onDidChangeContainerLocation(viewContainer: ViewContainer, from: ViewContainerLocation, to: ViewContainerLocation): void {
@ -529,7 +526,7 @@ export class ViewsService extends Disposable implements IViewsService {
Registry.as<PanelRegistry>(PanelExtensions.Panels).registerPanel(PanelDescriptor.create(
PaneContainerPanel,
viewContainer.id,
viewContainer.title.value,
viewContainer.title,
undefined,
viewContainer.order,
viewContainer.requestedIndex,
@ -564,7 +561,7 @@ export class ViewsService extends Disposable implements IViewsService {
Registry.as<ViewletRegistry>(ViewletExtensions.Viewlets).registerViewlet(ViewletDescriptor.create(
PaneContainerViewlet,
viewContainer.id,
viewContainer.title.value,
viewContainer.title,
isString(viewContainer.icon) ? viewContainer.icon : undefined,
viewContainer.order,
viewContainer.requestedIndex,

View file

@ -28,7 +28,6 @@ import { mixin } from 'vs/base/common/objects';
import { Codicon } from 'vs/base/common/codicons';
import { registerIcon } from 'vs/platform/theme/common/iconRegistry';
import { CancellationToken } from 'vs/base/common/cancellation';
import { ILocalizedString } from 'vs/platform/actions/common/actions';
export const defaultViewIcon = registerIcon('default-view-icon', Codicon.window, localize('defaultViewIcon', 'Default view icon.'));
@ -64,8 +63,27 @@ export interface IViewContainerDescriptor {
/**
* The title of the view container
*/
readonly title: ILocalizedString & { mnemonic?: string };
readonly title: string;
/**
* The mnemonic title of the view container.
* If provided, container entry is also shown in Menubar > Views.
*/
readonly mnemonicTitle?: string;
/**
* Icon representation of the View container
*/
readonly icon?: ThemeIcon | URI;
/**
* Order of the view container.
*/
readonly order?: number;
/**
* IViewPaneContainer Ctor to instantiate
*/
readonly ctorDescriptor: SyncDescriptor<IViewPaneContainer>;
/**
@ -74,26 +92,33 @@ export interface IViewContainerDescriptor {
readonly keybindings?: IKeybindings & { when?: ContextKeyExpression };
/**
* The command id to open the view container
* The command id to register to open the view container.
* If not provided, id of the view container is used.
*/
readonly commandId?: string;
/**
* Storage id to use to store the view container state.
* If not provided, it will be derived.
*/
readonly storageId?: string;
readonly icon?: ThemeIcon | URI;
/**
* If enabled, view container is not shown if it has no active views.
*/
readonly hideIfEmpty?: boolean;
/**
* Id of the extension that contributed the view container
*/
readonly extensionId?: ExtensionIdentifier;
readonly alwaysUseContainerInfo?: boolean;
readonly viewOrderDelegate?: ViewOrderDelegate;
readonly hideIfEmpty?: boolean;
readonly extensionId?: ExtensionIdentifier;
readonly rejectAddedViews?: boolean;
readonly order?: number;
requestedIndex?: number;
}

View file

@ -346,7 +346,7 @@ const refactorPreviewViewIcon = registerIcon('refactor-preview-view-icon', Codic
const container = Registry.as<IViewContainersRegistry>(ViewContainerExtensions.ViewContainersRegistry).registerViewContainer({
id: BulkEditPane.ID,
title: { value: localize('panel', "Refactor Preview"), original: 'Refactor Preview' },
title: localize('panel', "Refactor Preview"),
hideIfEmpty: true,
ctorDescriptor: new SyncDescriptor(
ViewPaneContainer,

View file

@ -329,10 +329,8 @@ function registerDebugPanel(): void {
const VIEW_CONTAINER: ViewContainer = Registry.as<IViewContainersRegistry>(ViewExtensions.ViewContainersRegistry).registerViewContainer({
id: DEBUG_PANEL_ID,
title: {
value: nls.localize({ comment: ['Debug is a noun in this context, not a verb.'], key: 'debugPanel' }, 'Debug Console'), original: 'Debug Console',
mnemonic: nls.localize({ key: 'miToggleDebugConsole', comment: ['&& denotes a mnemonic'] }, "De&&bug Console")
},
title: nls.localize({ comment: ['Debug is a noun in this context, not a verb.'], key: 'debugPanel' }, 'Debug Console'),
mnemonicTitle: nls.localize({ key: 'miToggleDebugConsole', comment: ['&& denotes a mnemonic'] }, "De&&bug Console"),
keybindings: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_Y },
commandId: 'workbench.debug.action.toggleRepl',
icon: icons.debugConsoleViewIcon,
@ -357,10 +355,8 @@ function registerDebugPanel(): void {
function registerDebugView(): void {
const viewContainer = Registry.as<IViewContainersRegistry>(ViewExtensions.ViewContainersRegistry).registerViewContainer({
id: VIEWLET_ID,
title: {
value: nls.localize('run and debug', "Run and Debug"), original: 'Run and Debug',
mnemonic: nls.localize({ key: 'miViewRun', comment: ['&& denotes a mnemonic'] }, "&&Run"),
},
title: nls.localize('run and debug', "Run and Debug"),
mnemonicTitle: nls.localize({ key: 'miViewRun', comment: ['&& denotes a mnemonic'] }, "&&Run"),
keybindings: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_D },
ctorDescriptor: new SyncDescriptor(DebugViewPaneContainer),
icon: icons.runViewIcon,

View file

@ -100,10 +100,8 @@ Registry.as<IEditorRegistry>(EditorExtensions.Editors).registerEditor(
Registry.as<IViewContainersRegistry>(ViewContainerExtensions.ViewContainersRegistry).registerViewContainer(
{
id: VIEWLET_ID,
title: {
value: localize('extensions', "Extensions"), original: 'Extensions',
mnemonic: localize({ key: 'miViewExtensions', comment: ['&& denotes a mnemonic'] }, "E&&xtensions"),
},
title: localize('extensions', "Extensions"),
mnemonicTitle: localize({ key: 'miViewExtensions', comment: ['&& denotes a mnemonic'] }, "E&&xtensions"),
keybindings: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_X },
ctorDescriptor: new SyncDescriptor(ExtensionsViewPaneContainer),
icon: extensionsViewIcon,

View file

@ -270,10 +270,8 @@ const viewContainerRegistry = Registry.as<IViewContainersRegistry>(Extensions.Vi
*/
export const VIEW_CONTAINER: ViewContainer = viewContainerRegistry.registerViewContainer({
id: VIEWLET_ID,
title: {
value: localize('explore', "Explorer"), original: 'Explorer',
mnemonic: localize({ key: 'miViewExplorer', comment: ['&& denotes a mnemonic'] }, "&&Explorer")
},
title: localize('explore', "Explorer"),
mnemonicTitle: localize({ key: 'miViewExplorer', comment: ['&& denotes a mnemonic'] }, "&&Explorer"),
keybindings: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_E },
ctorDescriptor: new SyncDescriptor(ExplorerViewPaneContainer),
storageId: 'workbench.explorer.views.state',

View file

@ -109,10 +109,8 @@ const markersViewIcon = registerIcon('markers-view-icon', Codicon.warning, local
// markers view container
const VIEW_CONTAINER: ViewContainer = Registry.as<IViewContainersRegistry>(ViewContainerExtensions.ViewContainersRegistry).registerViewContainer({
id: Constants.MARKERS_CONTAINER_ID,
title: {
value: Messages.MARKERS_PANEL_TITLE_PROBLEMS, original: 'Problems',
mnemonic: localize({ key: 'miMarker', comment: ['&& denotes a mnemonic'] }, "&&Problems")
},
title: Messages.MARKERS_PANEL_TITLE_PROBLEMS,
mnemonicTitle: localize({ key: 'miMarker', comment: ['&& denotes a mnemonic'] }, "&&Problems"),
keybindings: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_M },
commandId: 'workbench.actions.view.problems',
icon: markersViewIcon,

View file

@ -54,10 +54,8 @@ ModesRegistry.registerLanguage({
const outputViewIcon = registerIcon('output-view-icon', Codicon.output, nls.localize('outputViewIcon', 'View icon of the output view.'));
const VIEW_CONTAINER: ViewContainer = Registry.as<IViewContainersRegistry>(ViewContainerExtensions.ViewContainersRegistry).registerViewContainer({
id: OUTPUT_VIEW_ID,
title: {
value: nls.localize('output', "Output"), original: 'Output',
mnemonic: nls.localize({ key: 'miToggleOutput', comment: ['&& denotes a mnemonic'] }, "&&Output")
},
title: nls.localize('output', "Output"),
mnemonicTitle: nls.localize({ key: 'miToggleOutput', comment: ['&& denotes a mnemonic'] }, "&&Output"),
keybindings: {
primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_U,
linux: {

View file

@ -543,7 +543,7 @@ registerAction2(SwitchRemoteAction);
Registry.as<IViewContainersRegistry>(Extensions.ViewContainersRegistry).registerViewContainer(
{
id: VIEWLET_ID,
title: { value: nls.localize('remote.explorer', "Remote Explorer"), original: 'Remote Explorer' },
title: nls.localize('remote.explorer', "Remote Explorer"),
ctorDescriptor: new SyncDescriptor(RemoteViewPaneContainer),
hideIfEmpty: true,
viewOrderDelegate: {

View file

@ -68,7 +68,7 @@ export class ForwardedPortsView extends Disposable implements IWorkbenchContribu
if (await this.usePanelTreatment()) {
return Registry.as<IViewContainersRegistry>(Extensions.ViewContainersRegistry).registerViewContainer({
id: TunnelPanel.ID,
title: { value: nls.localize('ports', "Ports"), original: 'Ports' },
title: nls.localize('ports', "Ports"),
icon: portsViewIcon,
ctorDescriptor: new SyncDescriptor(ViewPaneContainer, [TunnelPanel.ID, { mergeViewWithContainerWhenSingleView: true, donotShowContainerTitleWhenMergedWithContainer: true }]),
storageId: TunnelPanel.ID,

View file

@ -43,10 +43,8 @@ const sourceControlViewIcon = registerIcon('source-control-view-icon', Codicon.s
const viewContainer = Registry.as<IViewContainersRegistry>(ViewContainerExtensions.ViewContainersRegistry).registerViewContainer({
id: VIEWLET_ID,
title: {
value: localize('source control', "Source Control"), original: 'Source Control',
mnemonic: localize({ key: 'miViewSCM', comment: ['&& denotes a mnemonic'] }, "S&&CM")
},
title: localize('source control', "Source Control"),
mnemonicTitle: localize({ key: 'miViewSCM', comment: ['&& denotes a mnemonic'] }, "S&&CM"),
keybindings: {
primary: 0,
win: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_G },

View file

@ -618,10 +618,8 @@ const SEARCH_MODE_CONFIG = 'search.mode';
const viewContainer = Registry.as<IViewContainersRegistry>(ViewExtensions.ViewContainersRegistry).registerViewContainer({
id: VIEWLET_ID,
title: {
value: nls.localize('name', "Search"), original: 'Search',
mnemonic: nls.localize({ key: 'miViewSearch', comment: ['&& denotes a mnemonic'] }, "&&Search")
},
title: nls.localize('name', "Search"),
mnemonicTitle: nls.localize({ key: 'miViewSearch', comment: ['&& denotes a mnemonic'] }, "&&Search"),
keybindings: {
primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_F,
// View: Show Search is used for the keybindings in the View menu and the sidebar #115556, but it should only be enabled when search.mode == view, or else it will steal priority over opening a search editor #115511

View file

@ -63,10 +63,8 @@ configurationRegistry.registerConfiguration(terminalConfiguration);
// Register views
const VIEW_CONTAINER = Registry.as<IViewContainersRegistry>(ViewContainerExtensions.ViewContainersRegistry).registerViewContainer({
id: TERMINAL_VIEW_ID,
title: {
value: nls.localize('terminal', "Terminal"), original: 'Terminal',
mnemonic: nls.localize({ key: 'miToggleIntegratedTerminal', comment: ['&& denotes a mnemonic'] }, "&&Terminal")
},
title: nls.localize('terminal', "Terminal"),
mnemonicTitle: nls.localize({ key: 'miToggleIntegratedTerminal', comment: ['&& denotes a mnemonic'] }, "&&Terminal"),
keybindings: {
primary: KeyMod.CtrlCmd | KeyCode.US_BACKTICK,
mac: { primary: KeyMod.WinCtrl | KeyCode.US_BACKTICK }

View file

@ -38,7 +38,7 @@ registerSingleton(IWorkspaceTestCollectionService, WorkspaceTestCollectionServic
const viewContainer = Registry.as<IViewContainersRegistry>(ViewContainerExtensions.ViewContainersRegistry).registerViewContainer({
id: Testing.ViewletId,
title: { value: localize('test', "Test"), original: 'Test' },
title: localize('test', "Test"),
ctorDescriptor: new SyncDescriptor(TestingViewPaneContainer),
icon: testingViewIcon,
alwaysUseContainerInfo: true,

View file

@ -1136,7 +1136,7 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo
return Registry.as<IViewContainersRegistry>(Extensions.ViewContainersRegistry).registerViewContainer(
{
id: SYNC_VIEW_CONTAINER_ID,
title: { value: SYNC_TITLE, original: 'Settings Sync' },
title: SYNC_TITLE,
ctorDescriptor: new SyncDescriptor(
ViewPaneContainer,
[SYNC_VIEW_CONTAINER_ID, { mergeViewWithContainerWhenSingleView: true }]

View file

@ -463,7 +463,7 @@ export class ViewDescriptorService extends Disposable implements IViewDescriptor
const container = this.viewContainersRegistry.registerViewContainer({
id,
ctorDescriptor: new SyncDescriptor(ViewPaneContainer, [id, { mergeViewWithContainerWhenSingleView: true, donotShowContainerTitleWhenMergedWithContainer: true }]),
title: { value: 'Custom Views', original: 'Custom Views' }, // we don't want to see this, so no need to localize
title: 'Custom Views', // we don't want to see this, so no need to localize
icon: location === ViewContainerLocation.Sidebar ? defaultViewIcon : undefined,
storageId: getViewContainerStorageId(id),
hideIfEmpty: true

View file

@ -341,7 +341,7 @@ export class ViewContainerModel extends Disposable implements IViewContainerMode
private updateContainerInfo(): void {
/* Use default container info if one of the visible view descriptors belongs to the current container by default */
const useDefaultContainerInfo = this.viewContainer.alwaysUseContainerInfo || this.visibleViewDescriptors.length === 0 || this.visibleViewDescriptors.some(v => Registry.as<IViewsRegistry>(ViewExtensions.ViewsRegistry).getViewContainer(v.id) === this.viewContainer);
const title = useDefaultContainerInfo ? this.viewContainer.title.value : this.visibleViewDescriptors[0]?.containerTitle || this.visibleViewDescriptors[0]?.name || '';
const title = useDefaultContainerInfo ? this.viewContainer.title : this.visibleViewDescriptors[0]?.containerTitle || this.visibleViewDescriptors[0]?.name || '';
let titleChanged: boolean = false;
if (this._title !== title) {
this._title = title;

View file

@ -61,13 +61,13 @@ suite('ViewContainerModel', () => {
});
test('empty model', function () {
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: { value: 'test', original: 'test' }, ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: 'test', ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
const testObject = viewDescriptorService.getViewContainerModel(container);
assert.equal(testObject.visibleViewDescriptors.length, 0);
});
test('register/unregister', () => {
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: { value: 'test', original: 'test' }, ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: 'test', ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
const testObject = viewDescriptorService.getViewContainerModel(container);
const target = disposableStore.add(new ViewDescriptorSequence(testObject));
@ -94,7 +94,7 @@ suite('ViewContainerModel', () => {
});
test('when contexts', async function () {
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: { value: 'test', original: 'test' }, ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: 'test', ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
const testObject = viewDescriptorService.getViewContainerModel(container);
const target = disposableStore.add(new ViewDescriptorSequence(testObject));
assert.equal(testObject.visibleViewDescriptors.length, 0);
@ -138,7 +138,7 @@ suite('ViewContainerModel', () => {
});
test('when contexts - multiple', async function () {
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: { value: 'test', original: 'test' }, ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: 'test', ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
const testObject = viewDescriptorService.getViewContainerModel(container);
const target = disposableStore.add(new ViewDescriptorSequence(testObject));
const view1: IViewDescriptor = { id: 'view1', ctorDescriptor: null!, name: 'Test View 1' };
@ -161,7 +161,7 @@ suite('ViewContainerModel', () => {
});
test('when contexts - multiple 2', async function () {
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: { value: 'test', original: 'test' }, ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: 'test', ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
const testObject = viewDescriptorService.getViewContainerModel(container);
const target = disposableStore.add(new ViewDescriptorSequence(testObject));
const view1: IViewDescriptor = { id: 'view1', ctorDescriptor: null!, name: 'Test View 1', when: ContextKeyExpr.equals('showview1', true) };
@ -184,7 +184,7 @@ suite('ViewContainerModel', () => {
});
test('setVisible', () => {
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: { value: 'test', original: 'test' }, ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: 'test', ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
const testObject = viewDescriptorService.getViewContainerModel(container);
const target = disposableStore.add(new ViewDescriptorSequence(testObject));
const view1: IViewDescriptor = { id: 'view1', ctorDescriptor: null!, name: 'Test View 1', canToggleVisibility: true };
@ -229,7 +229,7 @@ suite('ViewContainerModel', () => {
});
test('move', () => {
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: { value: 'test', original: 'test' }, ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: 'test', ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
const testObject = viewDescriptorService.getViewContainerModel(container);
const target = disposableStore.add(new ViewDescriptorSequence(testObject));
const view1: IViewDescriptor = { id: 'view1', ctorDescriptor: null!, name: 'Test View 1' };
@ -259,7 +259,7 @@ suite('ViewContainerModel', () => {
test('view states', async function () {
storageService.store(`${container.id}.state.hidden`, JSON.stringify([{ id: 'view1', isHidden: true }]), StorageScope.GLOBAL, StorageTarget.MACHINE);
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: { value: 'test', original: 'test' }, ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: 'test', ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
const testObject = viewDescriptorService.getViewContainerModel(container);
const target = disposableStore.add(new ViewDescriptorSequence(testObject));
@ -279,7 +279,7 @@ suite('ViewContainerModel', () => {
test('view states and when contexts', async function () {
storageService.store(`${container.id}.state.hidden`, JSON.stringify([{ id: 'view1', isHidden: true }]), StorageScope.GLOBAL, StorageTarget.MACHINE);
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: { value: 'test', original: 'test' }, ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: 'test', ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
const testObject = viewDescriptorService.getViewContainerModel(container);
const target = disposableStore.add(new ViewDescriptorSequence(testObject));
@ -309,7 +309,7 @@ suite('ViewContainerModel', () => {
test('view states and when contexts multiple views', async function () {
storageService.store(`${container.id}.state.hidden`, JSON.stringify([{ id: 'view1', isHidden: true }]), StorageScope.GLOBAL, StorageTarget.MACHINE);
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: { value: 'test', original: 'test' }, ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: 'test', ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
const testObject = viewDescriptorService.getViewContainerModel(container);
const target = disposableStore.add(new ViewDescriptorSequence(testObject));
@ -354,7 +354,7 @@ suite('ViewContainerModel', () => {
});
test('remove event is not triggered if view was hidden and removed', async function () {
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: { value: 'test', original: 'test' }, ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: 'test', ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
const testObject = viewDescriptorService.getViewContainerModel(container);
const target = disposableStore.add(new ViewDescriptorSequence(testObject));
const viewDescriptor: IViewDescriptor = {
@ -383,7 +383,7 @@ suite('ViewContainerModel', () => {
});
test('add event is not triggered if view was set visible (when visible) and not active', async function () {
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: { value: 'test', original: 'test' }, ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: 'test', ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
const testObject = viewDescriptorService.getViewContainerModel(container);
const target = disposableStore.add(new ViewDescriptorSequence(testObject));
const viewDescriptor: IViewDescriptor = {
@ -409,7 +409,7 @@ suite('ViewContainerModel', () => {
});
test('remove event is not triggered if view was hidden and not active', async function () {
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: { value: 'test', original: 'test' }, ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: 'test', ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
const testObject = viewDescriptorService.getViewContainerModel(container);
const target = disposableStore.add(new ViewDescriptorSequence(testObject));
const viewDescriptor: IViewDescriptor = {
@ -435,7 +435,7 @@ suite('ViewContainerModel', () => {
});
test('add event is not triggered if view was set visible (when not visible) and not active', async function () {
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: { value: 'test', original: 'test' }, ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: 'test', ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
const testObject = viewDescriptorService.getViewContainerModel(container);
const target = disposableStore.add(new ViewDescriptorSequence(testObject));
const viewDescriptor: IViewDescriptor = {
@ -465,7 +465,7 @@ suite('ViewContainerModel', () => {
});
test('added view descriptors are in ascending order in the event', async function () {
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: { value: 'test', original: 'test' }, ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
container = ViewContainerRegistry.registerViewContainer({ id: 'test', title: 'test', ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
const testObject = viewDescriptorService.getViewContainerModel(container);
const target = disposableStore.add(new ViewDescriptorSequence(testObject));

View file

@ -15,8 +15,8 @@ import { ContextKeyService } from 'vs/platform/contextkey/browser/contextKeyServ
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
const ViewsRegistry = Registry.as<IViewsRegistry>(ViewContainerExtensions.ViewsRegistry);
const sidebarContainer = Registry.as<IViewContainersRegistry>(ViewContainerExtensions.ViewContainersRegistry).registerViewContainer({ id: 'testSidebar', title: { value: 'test', original: 'test' }, ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
const panelContainer = Registry.as<IViewContainersRegistry>(ViewContainerExtensions.ViewContainersRegistry).registerViewContainer({ id: 'testPanel', title: { value: 'test', original: 'test' }, ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Panel);
const sidebarContainer = Registry.as<IViewContainersRegistry>(ViewContainerExtensions.ViewContainersRegistry).registerViewContainer({ id: 'testSidebar', title: 'test', ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
const panelContainer = Registry.as<IViewContainersRegistry>(ViewContainerExtensions.ViewContainersRegistry).registerViewContainer({ id: 'testPanel', title: 'test', ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Panel);
suite('ViewDescriptorService', () => {

View file

@ -48,7 +48,7 @@ suite('MainThreadHostTreeView', function () {
const instantiationService: TestInstantiationService = <TestInstantiationService>workbenchInstantiationService();
const viewDescriptorService = instantiationService.createInstance(ViewDescriptorService);
instantiationService.stub(IViewDescriptorService, viewDescriptorService);
container = Registry.as<IViewContainersRegistry>(Extensions.ViewContainersRegistry).registerViewContainer({ id: 'testContainer', title: { value: 'test', original: 'test' }, ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
container = Registry.as<IViewContainersRegistry>(Extensions.ViewContainersRegistry).registerViewContainer({ id: 'testContainer', title: 'test', ctorDescriptor: new SyncDescriptor(<any>{}) }, ViewContainerLocation.Sidebar);
const viewDescriptor: ITreeViewDescriptor = {
id: testTreeViewId,
ctorDescriptor: null!,