mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
WEB-68184 Own "ToolbarProvider" and suppressor for OpenInBrowserAction
Merge-request: IJ-MR-174190 Merged-by: Arsenii Iusufov <arsenii.iusufov@jetbrains.com> GitOrigin-RevId: 1e16ff196c9fd0efe43d4041a9a736e5570a9e3a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
3fafaf4bf6
commit
d627bca71c
@@ -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
|
||||
- <init>():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
|
||||
|
||||
+32
@@ -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<OpenInBrowserFloatingToolbarSuppressor> EP_NAME =
|
||||
ExtensionPointName.create("com.intellij.openInBrowserFloatingToolbarSuppressor");
|
||||
}
|
||||
|
||||
public static class OpenInBrowserEditorContextBarGroupAction extends OpenInBrowserBaseGroupAction {
|
||||
public OpenInBrowserEditorContextBarGroupAction() {
|
||||
super(false);
|
||||
|
||||
-24
@@ -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<EditorFloatingToolbarSuppressor> =
|
||||
ExtensionPointName.create("com.intellij.editorFloatingToolbarProviderSuppressor")
|
||||
}
|
||||
}
|
||||
+2
-5
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -170,8 +170,8 @@
|
||||
interface="com.intellij.openapi.editor.toolbar.floating.FloatingToolbarProvider"
|
||||
dynamic="true"/>
|
||||
|
||||
<extensionPoint name="editorFloatingToolbarProviderSuppressor"
|
||||
interface="com.intellij.openapi.editor.toolbar.floating.EditorFloatingToolbarSuppressor"
|
||||
<extensionPoint name="openInBrowserFloatingToolbarSuppressor"
|
||||
interface="com.intellij.ide.browsers.actions.OpenInBrowserBaseGroupAction$OpenInBrowserFloatingToolbarSuppressor"
|
||||
dynamic="true"/>
|
||||
|
||||
<extensionPoint name="actionPromoter" interface="com.intellij.openapi.actionSystem.ActionPromoter" dynamic="true"/>
|
||||
|
||||
@@ -912,6 +912,10 @@
|
||||
implementation="com.intellij.openapi.editor.toolbar.floating.DefaultFloatingToolbarProvider"
|
||||
id="DefaultFloatingToolbarProvider"/>
|
||||
|
||||
<editorFloatingToolbarProvider
|
||||
implementation="com.intellij.ide.browsers.actions.OpenInBrowserBaseGroupAction$OpenInBrowserFloatingToolbarProvider"
|
||||
id="OpenInBrowserFloatingToolbarProvider"/>
|
||||
|
||||
<bundledKeymap file="$default.xml"/>
|
||||
<bundledKeymap file="Mac OS X 10.5+.xml"/>
|
||||
<bundledKeymap file="Mac OS X.xml"/>
|
||||
|
||||
@@ -1862,9 +1862,10 @@
|
||||
<add-to-group group-id="RevealGroup" anchor="last"/>
|
||||
<override-text place="RevealInPopup"/>
|
||||
</group>
|
||||
<group id="OpenInBrowserEditorContextBarGroup" />
|
||||
<group id="OpenInBrowserEditorContextBarGroupAction"
|
||||
class="com.intellij.ide.browsers.actions.OpenInBrowserBaseGroupAction$OpenInBrowserEditorContextBarGroupAction">
|
||||
<add-to-group group-id="EditorContextBarMenu" anchor="last"/>
|
||||
<add-to-group group-id="OpenInBrowserEditorContextBarGroup" anchor="last"/>
|
||||
</group>
|
||||
</actions>
|
||||
<applicationListeners>
|
||||
|
||||
Reference in New Issue
Block a user