src/vs/workbench/browser/parts/panel/panelActions.ts/registerPositionPanelActionById
function registerPositionPanelActionById(config: PanelActionConfig<Position>) {
	const { id, label, alias, when } = config;
	// register the workbench action
	actionRegistry.registerWorkbenchAction(SyncActionDescriptor.create(SetPanelPositionAction, id, label), alias, CATEGORIES.View.value, when);
	// register as a menu item
	MenuRegistry.appendMenuItems([{
		id: MenuId.MenubarAppearanceMenu,
		item: {
			group: '3_workbench_layout_move',
			command: {
				id,
				title: label
			},
			when,
			order: 5
		}
	}, {
		id: MenuId.ViewTitleContext,
		item: {
			group: '3_workbench_layout_move',
			command: {
				id: id,
				title: label,
			},
			when: ContextKeyExpr.and(when, ContextKeyExpr.equals('viewLocation', ViewContainerLocationToString(ViewContainerLocation.Panel))),
			order: 1
		}
	}]);
}