Path: blob/main/src/vs/workbench/browser/parts/sidebar/sidebarActions.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import './media/sidebarpart.css';6import { localize2 } from '../../../../nls.js';7import { Action2, registerAction2 } from '../../../../platform/actions/common/actions.js';8import { IWorkbenchLayoutService, Parts } from '../../../services/layout/browser/layoutService.js';9import { KeyMod, KeyCode } from '../../../../base/common/keyCodes.js';10import { ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';11import { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';12import { Categories } from '../../../../platform/action/common/actionCommonCategories.js';13import { IPaneCompositePartService } from '../../../services/panecomposite/browser/panecomposite.js';14import { ViewContainerLocation } from '../../../common/views.js';15import { SideBarVisibleContext } from '../../../common/contextkeys.js';1617registerAction2(class extends Action2 {1819constructor() {20super({21id: 'workbench.action.closeSidebar',22title: localize2('closeSidebar', 'Close Primary Side Bar'),23category: Categories.View,24f1: true,25precondition: SideBarVisibleContext26});27}2829run(accessor: ServicesAccessor): void {30accessor.get(IWorkbenchLayoutService).setPartHidden(true, Parts.SIDEBAR_PART);31}32});3334export class FocusSideBarAction extends Action2 {3536constructor() {37super({38id: 'workbench.action.focusSideBar',39title: localize2('focusSideBar', 'Focus into Primary Side Bar'),40category: Categories.View,41f1: true,42keybinding: {43weight: KeybindingWeight.WorkbenchContrib,44when: null,45primary: KeyMod.CtrlCmd | KeyCode.Digit046}47});48}4950async run(accessor: ServicesAccessor): Promise<void> {51const layoutService = accessor.get(IWorkbenchLayoutService);52const paneCompositeService = accessor.get(IPaneCompositePartService);5354// Show side bar55if (!layoutService.isVisible(Parts.SIDEBAR_PART)) {56layoutService.setPartHidden(false, Parts.SIDEBAR_PART);57}5859// Focus into active viewlet60const viewlet = paneCompositeService.getActivePaneComposite(ViewContainerLocation.Sidebar);61viewlet?.focus();62}63}6465registerAction2(FocusSideBarAction);666768