diff --git a/platform/platform-impl/api-dump.txt b/platform/platform-impl/api-dump.txt index 56bf9e0298d7..72229c2c8600 100644 --- a/platform/platform-impl/api-dump.txt +++ b/platform/platform-impl/api-dump.txt @@ -183,6 +183,13 @@ com.intellij.ide.actions.SettingsEntryPointAction$IconCustomizer - sf:EP_NAME:com.intellij.openapi.extensions.ExtensionPointName - a:getCustomIcon(com.intellij.ui.BadgeIconSupplier):javax.swing.Icon - getSecondIcon():javax.swing.Icon +c:com.intellij.ide.browsers.actions.OpenInBrowserBaseGroupAction$OpenInBrowserFloatingToolbarProvider +- com.intellij.openapi.editor.toolbar.floating.AbstractFloatingToolbarProvider +- ():V +- isApplicable(com.intellij.openapi.actionSystem.DataContext):Z +com.intellij.ide.browsers.actions.OpenInBrowserBaseGroupAction$OpenInBrowserFloatingToolbarSuppressor +- sf:EP_NAME:com.intellij.openapi.extensions.ExtensionPointName +- a:isSuppressed(com.intellij.openapi.editor.toolbar.floating.FloatingToolbarProvider,com.intellij.openapi.actionSystem.DataContext):Z com.intellij.ide.dnd.TransferableWrapper - com.intellij.ide.dnd.FileFlavorProvider - a:getPsiElements():com.intellij.psi.PsiElement[] @@ -588,11 +595,6 @@ com.intellij.openapi.editor.impl.softwrap.mapping.SoftWrapApplianceManager$Visib com.intellij.openapi.editor.markup.LineMarkerRendererEx - com.intellij.openapi.editor.markup.LineMarkerRenderer - a:getPosition():com.intellij.openapi.editor.markup.LineMarkerRendererEx$Position -com.intellij.openapi.editor.toolbar.floating.EditorFloatingToolbarSuppressor -- sf:Companion:com.intellij.openapi.editor.toolbar.floating.EditorFloatingToolbarSuppressor$Companion -- a:isSuppressed(com.intellij.openapi.editor.toolbar.floating.FloatingToolbarProvider,com.intellij.openapi.actionSystem.DataContext):Z -f:com.intellij.openapi.editor.toolbar.floating.EditorFloatingToolbarSuppressor$Companion -- f:getEP_NAME():com.intellij.openapi.extensions.ExtensionPointName com.intellij.openapi.editor.toolbar.floating.FloatingToolbarComponent - a:getAutoHideable():Z - a:getBackgroundAlpha():F diff --git a/platform/platform-impl/src/com/intellij/ide/browsers/actions/OpenInBrowserBaseGroupAction.java b/platform/platform-impl/src/com/intellij/ide/browsers/actions/OpenInBrowserBaseGroupAction.java index 04b50145e48d..3097707ac330 100644 --- a/platform/platform-impl/src/com/intellij/ide/browsers/actions/OpenInBrowserBaseGroupAction.java +++ b/platform/platform-impl/src/com/intellij/ide/browsers/actions/OpenInBrowserBaseGroupAction.java @@ -11,6 +11,9 @@ import com.intellij.lang.Language; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.diff.impl.DiffUtil; import com.intellij.openapi.editor.Editor; +import com.intellij.openapi.editor.toolbar.floating.AbstractFloatingToolbarProvider; +import com.intellij.openapi.editor.toolbar.floating.FloatingToolbarProvider; +import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.openapi.fileTypes.LanguageFileType; import com.intellij.openapi.fileTypes.PlainTextLanguage; import com.intellij.openapi.project.DumbAware; @@ -22,6 +25,7 @@ import com.intellij.psi.util.CachedValue; import com.intellij.psi.util.CachedValueProvider; import com.intellij.ui.jcef.JBCefApp; import com.intellij.util.CachedValueImpl; +import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -99,6 +103,34 @@ public abstract class OpenInBrowserBaseGroupAction extends ActionGroup implement } } + public static class OpenInBrowserFloatingToolbarProvider extends AbstractFloatingToolbarProvider { + private static final String ACTION_GROUP = "OpenInBrowserEditorContextBarGroup"; + + public OpenInBrowserFloatingToolbarProvider() { + super(ACTION_GROUP); + } + + @Override + public boolean isApplicable(@NotNull DataContext dataContext) { + boolean suppressed = ContainerUtil.exists( + OpenInBrowserFloatingToolbarSuppressor.EP_NAME.getExtensionList(), + suppressor -> suppressor.isSuppressed(this, dataContext) + ); + + return !suppressed && super.isApplicable(dataContext); + } + } + + public interface OpenInBrowserFloatingToolbarSuppressor { + /** + * Determines if the floating toolbar should be suppressed. + */ + boolean isSuppressed(FloatingToolbarProvider provider, DataContext dataContext); + + ExtensionPointName EP_NAME = + ExtensionPointName.create("com.intellij.openInBrowserFloatingToolbarSuppressor"); + } + public static class OpenInBrowserEditorContextBarGroupAction extends OpenInBrowserBaseGroupAction { public OpenInBrowserEditorContextBarGroupAction() { super(false); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/toolbar/floating/EditorFloatingToolbarSuppressor.kt b/platform/platform-impl/src/com/intellij/openapi/editor/toolbar/floating/EditorFloatingToolbarSuppressor.kt deleted file mode 100644 index 7da34ab50e5e..000000000000 --- a/platform/platform-impl/src/com/intellij/openapi/editor/toolbar/floating/EditorFloatingToolbarSuppressor.kt +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.openapi.editor.toolbar.floating - -import com.intellij.openapi.actionSystem.DataContext -import com.intellij.openapi.extensions.ExtensionPointName - -/** - * Extension point to suppress the display of editor floating toolbars. - * If any extension returns true from [isSuppressed], the toolbar will not be shown. - */ -interface EditorFloatingToolbarSuppressor { - /** - * Determines if the floating toolbar should be suppressed. - */ - fun isSuppressed( - provider: FloatingToolbarProvider, - dataContext: DataContext, - ): Boolean - - companion object { - val EP_NAME: ExtensionPointName = - ExtensionPointName.create("com.intellij.editorFloatingToolbarProviderSuppressor") - } -} \ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/toolbar/floating/FloatingToolbarProvider.kt b/platform/platform-impl/src/com/intellij/openapi/editor/toolbar/floating/FloatingToolbarProvider.kt index b8c5798ccc81..ba9989e1780b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/toolbar/floating/FloatingToolbarProvider.kt +++ b/platform/platform-impl/src/com/intellij/openapi/editor/toolbar/floating/FloatingToolbarProvider.kt @@ -37,10 +37,7 @@ interface FloatingToolbarProvider { val actionGroup: ActionGroup - fun isApplicable(dataContext: DataContext): Boolean { - val suppressors = EditorFloatingToolbarSuppressor.EP_NAME.extensionList - return !suppressors.any { it.isSuppressed(this, dataContext) } - } + fun isApplicable(dataContext: DataContext): Boolean = true fun register(dataContext: DataContext, component: FloatingToolbarComponent, parentDisposable: Disposable) {} @@ -61,4 +58,4 @@ interface FloatingToolbarProvider { return EP_NAME.createExtensionDisposable(provider, parentDisposable) } } -} +} \ No newline at end of file diff --git a/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml b/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml index 6591bda2b51c..994dc6b28cfd 100644 --- a/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml +++ b/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml @@ -170,8 +170,8 @@ interface="com.intellij.openapi.editor.toolbar.floating.FloatingToolbarProvider" dynamic="true"/> - diff --git a/platform/platform-resources/src/META-INF/PlatformExtensions.xml b/platform/platform-resources/src/META-INF/PlatformExtensions.xml index 457df234a3e1..650ba3f81de8 100644 --- a/platform/platform-resources/src/META-INF/PlatformExtensions.xml +++ b/platform/platform-resources/src/META-INF/PlatformExtensions.xml @@ -912,6 +912,10 @@ implementation="com.intellij.openapi.editor.toolbar.floating.DefaultFloatingToolbarProvider" id="DefaultFloatingToolbarProvider"/> + + diff --git a/platform/platform-resources/src/idea/PlatformActions.xml b/platform/platform-resources/src/idea/PlatformActions.xml index 1a7a8e405f94..4b821045edf4 100644 --- a/platform/platform-resources/src/idea/PlatformActions.xml +++ b/platform/platform-resources/src/idea/PlatformActions.xml @@ -1862,9 +1862,10 @@ + - +