From dc5ac03585a199d3254e73103825885d8a0ebf8b Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 21 Aug 2019 17:29:28 +0200 Subject: [PATCH] Add API to let Rider customize the mnemonic of Tools menu (RIDER-25142) GitOrigin-RevId: 620a09ce8745bf42d730744d80bc4f79dbb15496 --- .../intellij/ide/IdeDependentActionGroup.kt | 22 +++++++++++++++++++ .../com/intellij/ui/IdeUICustomization.java | 10 +++++++++ .../src/idea/PlatformActions.xml | 2 +- 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 platform/lang-impl/src/com/intellij/ide/IdeDependentActionGroup.kt diff --git a/platform/lang-impl/src/com/intellij/ide/IdeDependentActionGroup.kt b/platform/lang-impl/src/com/intellij/ide/IdeDependentActionGroup.kt new file mode 100644 index 000000000000..d8a039dd0b0e --- /dev/null +++ b/platform/lang-impl/src/com/intellij/ide/IdeDependentActionGroup.kt @@ -0,0 +1,22 @@ +// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package com.intellij.ide + +import com.intellij.openapi.actionSystem.ActionManager +import com.intellij.openapi.actionSystem.AnActionEvent +import com.intellij.openapi.actionSystem.DefaultActionGroup +import com.intellij.ui.IdeUICustomization + +/** + * @author yole + */ +class IdeDependentActionGroup : DefaultActionGroup() { + private val id by lazy { ActionManager.getInstance().getId(this) } + + override fun update(e: AnActionEvent) { + super.update(e) + val actionText = IdeUICustomization.getInstance().getActionText(id) + if (actionText != null) { + e.presentation.text = actionText + } + } +} diff --git a/platform/platform-api/src/com/intellij/ui/IdeUICustomization.java b/platform/platform-api/src/com/intellij/ui/IdeUICustomization.java index b08189a64ff9..6036ae6938dd 100644 --- a/platform/platform-api/src/com/intellij/ui/IdeUICustomization.java +++ b/platform/platform-api/src/com/intellij/ui/IdeUICustomization.java @@ -4,6 +4,8 @@ package com.intellij.ui; import com.intellij.ide.IdeBundle; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.util.text.StringUtil; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** * Allows to apply IDE-specific customizations to the terms used in platform UI features. @@ -57,4 +59,12 @@ public class IdeUICustomization { public String getSelectAutopopupByCharsText() { return "Insert selected suggestion by pressing space, dot, or other context-dependent keys"; } + + /** + * Allows to replace the text of the given action (only for the actions/groups that support this mechanism) + */ + @Nullable + public String getActionText(@NotNull String actionId) { + return null; + } } diff --git a/platform/platform-resources/src/idea/PlatformActions.xml b/platform/platform-resources/src/idea/PlatformActions.xml index fcde3f84ad0e..d4661ab4d6a8 100644 --- a/platform/platform-resources/src/idea/PlatformActions.xml +++ b/platform/platform-resources/src/idea/PlatformActions.xml @@ -704,7 +704,7 @@ - +