Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/platform/actions/browser/dropdownActionViewItemWithKeybinding.ts
3294 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 { IContextMenuProvider } from '../../../base/browser/contextmenu.js';
7
import { IActionProvider } from '../../../base/browser/ui/dropdown/dropdown.js';
8
import { DropdownMenuActionViewItem, IDropdownMenuActionViewItemOptions } from '../../../base/browser/ui/dropdown/dropdownActionViewItem.js';
9
import { IAction } from '../../../base/common/actions.js';
10
import * as nls from '../../../nls.js';
11
import { IContextKeyService } from '../../contextkey/common/contextkey.js';
12
import { IKeybindingService } from '../../keybinding/common/keybinding.js';
13
14
export class DropdownMenuActionViewItemWithKeybinding extends DropdownMenuActionViewItem {
15
constructor(
16
action: IAction,
17
menuActionsOrProvider: readonly IAction[] | IActionProvider,
18
contextMenuProvider: IContextMenuProvider,
19
options: IDropdownMenuActionViewItemOptions = Object.create(null),
20
@IKeybindingService private readonly keybindingService: IKeybindingService,
21
@IContextKeyService private readonly contextKeyService: IContextKeyService,
22
) {
23
super(action, menuActionsOrProvider, contextMenuProvider, options);
24
}
25
26
protected override getTooltip() {
27
const keybinding = this.keybindingService.lookupKeybinding(this.action.id, this.contextKeyService);
28
const keybindingLabel = keybinding && keybinding.getLabel();
29
30
const tooltip = this.action.tooltip ?? this.action.label;
31
return keybindingLabel
32
? nls.localize('titleAndKb', "{0} ({1})", tooltip, keybindingLabel)
33
: tooltip;
34
}
35
}
36
37