this.update()));
+ this.toDispose.push(this.keybindings.onKeybindingsChanged(() => this.update()));
this.treeDragType = `application/vnd.code.tree.${this.id.toLowerCase()}`;
}
@@ -731,6 +736,23 @@ export class TreeViewWidget extends TreeViewWelcomeWidget {
return { viewId: this.id, itemId: treeNode.id };
}
+ protected resolveKeybindingForCommand(command: string | undefined): string {
+ let result = '';
+ if (command) {
+ const bindings = this.keybindings.getKeybindingsForCommand(command);
+ let found = false;
+ if (bindings && bindings.length > 0) {
+ bindings.forEach(binding => {
+ if (!found && this.keybindings.isEnabledInScope(binding, this.node)) {
+ found = true;
+ result = ` (${this.keybindings.acceleratorFor(binding, '+')})`;
+ }
+ });
+ }
+ }
+ return result;
+ }
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
protected renderInlineCommand(actionMenuNode: ActionMenuNode, index: number, tabbable: boolean, args: any[]): React.ReactNode {
if (!actionMenuNode.icon || !this.commands.isVisible(actionMenuNode.command, ...args) || !actionMenuNode.when || !this.contextKeys.match(actionMenuNode.when)) {
@@ -738,7 +760,9 @@ export class TreeViewWidget extends TreeViewWelcomeWidget {
}
const className = [TREE_NODE_SEGMENT_CLASS, TREE_NODE_TAIL_CLASS, actionMenuNode.icon, ACTION_ITEM, 'theia-tree-view-inline-action'].join(' ');
const tabIndex = tabbable ? 0 : undefined;
- return
{
+ const titleString = actionMenuNode.label + this.resolveKeybindingForCommand(actionMenuNode.command);
+
+ return
{
e.stopPropagation();
this.commands.executeCommand(actionMenuNode.command, ...args);
}} />;
diff --git a/packages/toolbar/src/browser/toolbar.tsx b/packages/toolbar/src/browser/toolbar.tsx
index d498a1acef5d7..542210a5d6433 100644
--- a/packages/toolbar/src/browser/toolbar.tsx
+++ b/packages/toolbar/src/browser/toolbar.tsx
@@ -51,7 +51,8 @@ export class ToolbarImpl extends TabBarToolbar {
protected isBusyDeferred = new Deferred();
@postConstruct()
- protected init(): void {
+ protected override init(): void {
+ super.init();
this.doInit();
}
@@ -312,20 +313,6 @@ export class ToolbarImpl extends TabBarToolbar {
);
}
- protected resolveKeybindingForCommand(commandID: string | undefined): string {
- if (!commandID) {
- return '';
- }
- const keybindings = this.keybindingRegistry.getKeybindingsForCommand(commandID);
- if (keybindings.length > 0) {
- const binding = keybindings[0];
- const bindingKeySequence = this.keybindingRegistry.resolveKeybinding(binding);
- const keyCode = bindingKeySequence[0];
- return ` (${this.keybindingRegistry.acceleratorForKeyCode(keyCode, '+')})`;
- }
- return '';
- }
-
protected handleOnDragStart = (e: React.DragEvent): void => this.doHandleOnDragStart(e);
protected doHandleOnDragStart(e: React.DragEvent): void {
const draggedElement = e.currentTarget;