Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/browser/parts/sidebar/sidebarActions.ts
3296 views
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 './media/sidebarpart.css';
7
import { localize2 } from '../../../../nls.js';
8
import { Action2, registerAction2 } from '../../../../platform/actions/common/actions.js';
9
import { IWorkbenchLayoutService, Parts } from '../../../services/layout/browser/layoutService.js';
10
import { KeyMod, KeyCode } from '../../../../base/common/keyCodes.js';
11
import { ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';
12
import { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';
13
import { Categories } from '../../../../platform/action/common/actionCommonCategories.js';
14
import { IPaneCompositePartService } from '../../../services/panecomposite/browser/panecomposite.js';
15
import { ViewContainerLocation } from '../../../common/views.js';
16
import { SideBarVisibleContext } from '../../../common/contextkeys.js';
17
18
registerAction2(class extends Action2 {
19
20
constructor() {
21
super({
22
id: 'workbench.action.closeSidebar',
23
title: localize2('closeSidebar', 'Close Primary Side Bar'),
24
category: Categories.View,
25
f1: true,
26
precondition: SideBarVisibleContext
27
});
28
}
29
30
run(accessor: ServicesAccessor): void {
31
accessor.get(IWorkbenchLayoutService).setPartHidden(true, Parts.SIDEBAR_PART);
32
}
33
});
34
35
export class FocusSideBarAction extends Action2 {
36
37
constructor() {
38
super({
39
id: 'workbench.action.focusSideBar',
40
title: localize2('focusSideBar', 'Focus into Primary Side Bar'),
41
category: Categories.View,
42
f1: true,
43
keybinding: {
44
weight: KeybindingWeight.WorkbenchContrib,
45
when: null,
46
primary: KeyMod.CtrlCmd | KeyCode.Digit0
47
}
48
});
49
}
50
51
async run(accessor: ServicesAccessor): Promise<void> {
52
const layoutService = accessor.get(IWorkbenchLayoutService);
53
const paneCompositeService = accessor.get(IPaneCompositePartService);
54
55
// Show side bar
56
if (!layoutService.isVisible(Parts.SIDEBAR_PART)) {
57
layoutService.setPartHidden(false, Parts.SIDEBAR_PART);
58
}
59
60
// Focus into active viewlet
61
const viewlet = paneCompositeService.getActivePaneComposite(ViewContainerLocation.Sidebar);
62
viewlet?.focus();
63
}
64
}
65
66
registerAction2(FocusSideBarAction);
67
68