Path: blob/main/src/vs/platform/actions/browser/dropdownActionViewItemWithKeybinding.ts
3294 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 { IContextMenuProvider } from '../../../base/browser/contextmenu.js';6import { IActionProvider } from '../../../base/browser/ui/dropdown/dropdown.js';7import { DropdownMenuActionViewItem, IDropdownMenuActionViewItemOptions } from '../../../base/browser/ui/dropdown/dropdownActionViewItem.js';8import { IAction } from '../../../base/common/actions.js';9import * as nls from '../../../nls.js';10import { IContextKeyService } from '../../contextkey/common/contextkey.js';11import { IKeybindingService } from '../../keybinding/common/keybinding.js';1213export class DropdownMenuActionViewItemWithKeybinding extends DropdownMenuActionViewItem {14constructor(15action: IAction,16menuActionsOrProvider: readonly IAction[] | IActionProvider,17contextMenuProvider: IContextMenuProvider,18options: IDropdownMenuActionViewItemOptions = Object.create(null),19@IKeybindingService private readonly keybindingService: IKeybindingService,20@IContextKeyService private readonly contextKeyService: IContextKeyService,21) {22super(action, menuActionsOrProvider, contextMenuProvider, options);23}2425protected override getTooltip() {26const keybinding = this.keybindingService.lookupKeybinding(this.action.id, this.contextKeyService);27const keybindingLabel = keybinding && keybinding.getLabel();2829const tooltip = this.action.tooltip ?? this.action.label;30return keybindingLabel31? nls.localize('titleAndKb', "{0} ({1})", tooltip, keybindingLabel)32: tooltip;33}34}353637