From 1cfdf568337e0dba1dc556e04382170c8694da93 Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Mon, 23 Sep 2024 17:01:56 +0400 Subject: [PATCH] add knownIssue section for top issues GitOrigin-RevId: 53b7a54336643b9ef4efb9bbfeeef65d2489961a --- .../debugger/ui/breakpoints/Breakpoint.java | 10 ++++++++-- .../execution/impl/ExecutionManagerImpl.kt | 10 +++++++--- .../ui/QuickFixPreviewPanelFactory.java | 6 +++++- .../intellij/refactoring/copy/CopyHandler.java | 6 +++++- .../openapi/ui/ComponentWithBrowseButton.java | 8 +++++++- .../util/EditSourceOnEnterKeyHandler.java | 5 ++++- .../ui/presentation/VerticalBarPresentation.kt | 15 +++++++++++++-- 7 files changed, 49 insertions(+), 11 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/Breakpoint.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/Breakpoint.java index 77bd26a0f2a6..debb0ad456ed 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/Breakpoint.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/Breakpoint.java @@ -27,6 +27,7 @@ import com.intellij.debugger.statistics.DebuggerStatistics; import com.intellij.debugger.ui.impl.watch.CompilingEvaluatorImpl; import com.intellij.debugger.ui.overhead.OverheadProducer; import com.intellij.icons.AllIcons; +import com.intellij.openapi.application.AccessToken; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ReadAction; import com.intellij.openapi.project.IndexNotReadyException; @@ -43,6 +44,7 @@ import com.intellij.ui.AppUIUtil; import com.intellij.ui.SimpleColoredComponent; import com.intellij.ui.classFilter.ClassFilter; import com.intellij.util.ObjectUtils; +import com.intellij.util.SlowOperations; import com.intellij.util.ThreeState; import com.intellij.util.concurrency.AppExecutorUtil; import com.intellij.util.containers.ContainerUtil; @@ -150,11 +152,15 @@ public abstract class Breakpoint

implements public void customizeRenderer(SimpleColoredComponent renderer) { if (myXBreakpoint != null) { renderer.setIcon(myXBreakpoint.getType().getEnabledIcon()); - renderer.append(XBreakpointUtil.getShortText(myXBreakpoint)); + try (AccessToken ignore = SlowOperations.knownIssue("IJPL-162794")) { + renderer.append(XBreakpointUtil.getShortText(myXBreakpoint)); + } } else { renderer.setIcon(AllIcons.Debugger.Db_set_breakpoint); - renderer.append(getDisplayName()); + try (AccessToken ignore = SlowOperations.knownIssue("IJPL-162794")) { + renderer.append(getDisplayName()); + } } } diff --git a/platform/execution-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.kt b/platform/execution-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.kt index fb8bbc455c7e..bf6fe4f8134e 100644 --- a/platform/execution-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.kt +++ b/platform/execution-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.kt @@ -60,6 +60,7 @@ import com.intellij.ui.UIBundle import com.intellij.ui.content.ContentManager import com.intellij.ui.content.impl.ContentImpl import com.intellij.util.Alarm +import com.intellij.util.SlowOperations import com.intellij.util.SmartList import com.intellij.util.concurrency.AppExecutorUtil import com.intellij.util.containers.ContainerUtil @@ -71,7 +72,6 @@ import org.jetbrains.concurrency.Promise import org.jetbrains.concurrency.resolvedPromise import java.awt.BorderLayout import java.io.OutputStream -import java.lang.Runnable import java.util.* import java.util.concurrent.Callable import java.util.concurrent.atomic.AtomicBoolean @@ -224,7 +224,9 @@ open class ExecutionManagerImpl(private val project: Project, coroutineScope: Co override fun startRunProfile(environment: ExecutionEnvironment, starter: () -> Promise) { doStartRunProfile(environment) { // errors are handled by startRunProfile - starter() + SlowOperations.knownIssue("IJPL-162793").use { + starter() + } .then { descriptor -> if (descriptor != null) { descriptor.executionId = environment.executionId @@ -622,7 +624,9 @@ open class ExecutionManagerImpl(private val project: Project, coroutineScope: Co } val settings = environment.runnerAndConfigurationSettings - executeConfiguration(environment, settings != null && settings.isEditBeforeRun) + SlowOperations.knownIssue("IJPL-162789").use { + executeConfiguration(environment, settings != null && settings.isEditBeforeRun) + } } } }, 50) diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ui/QuickFixPreviewPanelFactory.java b/platform/lang-impl/src/com/intellij/codeInspection/ui/QuickFixPreviewPanelFactory.java index 2c362f4c91eb..5380d24e5010 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ui/QuickFixPreviewPanelFactory.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ui/QuickFixPreviewPanelFactory.java @@ -12,10 +12,12 @@ import com.intellij.lang.LangBundle; import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.actionSystem.ex.ComboBoxAction; +import com.intellij.openapi.application.AccessToken; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.Disposer; import com.intellij.ui.SimpleColoredComponent; +import com.intellij.util.SlowOperations; import com.intellij.util.ui.AsyncProcessIcon; import com.intellij.util.ui.JBUI; import org.jetbrains.annotations.NotNull; @@ -61,7 +63,9 @@ public final class QuickFixPreviewPanelFactory { if (multipleDescriptors && commonFixes.length == 0) { partialFixes = view.getProvider().getPartialQuickFixes(myWrapper, tree, tree.getSelectedDescriptors()); } - myEmpty = fillPanel(commonFixes, partialFixes, multipleDescriptors, view); + try (AccessToken ignore = SlowOperations.knownIssue("IJPL-162775")) { + myEmpty = fillPanel(commonFixes, partialFixes, multipleDescriptors, view); + } } public boolean isEmpty() { diff --git a/platform/lang-impl/src/com/intellij/refactoring/copy/CopyHandler.java b/platform/lang-impl/src/com/intellij/refactoring/copy/CopyHandler.java index 91543d1bd7cc..80b3ba14eb1b 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/copy/CopyHandler.java +++ b/platform/lang-impl/src/com/intellij/refactoring/copy/CopyHandler.java @@ -5,6 +5,7 @@ package com.intellij.refactoring.copy; import com.intellij.ide.TwoPaneIdeView; import com.intellij.ide.projectView.ProjectView; import com.intellij.ide.structureView.StructureViewFactoryEx; +import com.intellij.openapi.application.AccessToken; import com.intellij.openapi.fileEditor.FileEditor; import com.intellij.openapi.fileEditor.FileEditorManager; import com.intellij.openapi.project.DumbModeBlockedFunctionality; @@ -20,6 +21,7 @@ import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiElement; import com.intellij.refactoring.RefactoringBundle; import com.intellij.ui.content.Content; +import com.intellij.util.SlowOperations; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -60,7 +62,9 @@ public final class CopyHandler { return; } //todo warn that something can be broken https://youtrack.jetbrains.com/issue/IJPL-402 - delegate.doCopy(elements, defaultTargetDirectory); + try (AccessToken ignore = SlowOperations.startSection(SlowOperations.ACTION_PERFORM)) { + delegate.doCopy(elements, defaultTargetDirectory); + } break; } } diff --git a/platform/platform-api/src/com/intellij/openapi/ui/ComponentWithBrowseButton.java b/platform/platform-api/src/com/intellij/openapi/ui/ComponentWithBrowseButton.java index 770b95a894a1..cdec49c4fec1 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/ComponentWithBrowseButton.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/ComponentWithBrowseButton.java @@ -8,6 +8,7 @@ import com.intellij.openapi.actionSystem.ActionUpdateThread; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.CustomShortcutSet; import com.intellij.openapi.actionSystem.ShortcutSet; +import com.intellij.openapi.application.AccessToken; import com.intellij.openapi.application.Application; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.fileChooser.FileChooserDescriptor; @@ -27,6 +28,7 @@ import com.intellij.ui.dsl.builder.DslComponentProperty; import com.intellij.ui.dsl.builder.VerticalComponentGap; import com.intellij.ui.dsl.gridLayout.UnscaledGaps; import com.intellij.ui.dsl.gridLayout.UnscaledGapsKt; +import com.intellij.util.SlowOperations; import com.intellij.util.ui.StartupUiUtil; import com.intellij.util.ui.UIUtil; import com.intellij.util.ui.accessibility.ScreenReader; @@ -126,7 +128,11 @@ public class ComponentWithBrowseButton extends JPanel i private void notifyActionListeners() { ActionEvent event = new ActionEvent(myComponent, ActionEvent.ACTION_PERFORMED, "action"); - for (ActionListener listener: myBrowseButton.getActionListeners()) listener.actionPerformed(event); + for (ActionListener listener: myBrowseButton.getActionListeners()) { + try (AccessToken ignore = SlowOperations.startSection(SlowOperations.ACTION_PERFORM)) { + listener.actionPerformed(event); + } + } } public final @NotNull Comp getChildComponent() { diff --git a/platform/platform-api/src/com/intellij/util/EditSourceOnEnterKeyHandler.java b/platform/platform-api/src/com/intellij/util/EditSourceOnEnterKeyHandler.java index 31b8fa772355..0bf9928c0c6d 100644 --- a/platform/platform-api/src/com/intellij/util/EditSourceOnEnterKeyHandler.java +++ b/platform/platform-api/src/com/intellij/util/EditSourceOnEnterKeyHandler.java @@ -6,6 +6,7 @@ import com.intellij.openapi.actionSystem.CommonDataKeys; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.actionSystem.IdeActions; import com.intellij.openapi.actionSystem.KeyboardShortcut; +import com.intellij.openapi.application.AccessToken; import com.intellij.openapi.keymap.KeymapManager; import com.intellij.openapi.options.advanced.AdvancedSettings; import com.intellij.openapi.util.registry.Registry; @@ -88,7 +89,9 @@ public final class EditSourceOnEnterKeyHandler { if (!action.getAsBoolean() && listener != null) { // perform previous action if the specified action is failed, // it is needed to expand/collapse a tree node - listener.actionPerformed(event); + try (AccessToken ignored = SlowOperations.startSection(SlowOperations.ACTION_PERFORM)) { + listener.actionPerformed(event); + } } }, ENTER, JComponent.WHEN_FOCUSED); } diff --git a/plugins/markdown/core/src/org/intellij/plugins/markdown/editor/tables/ui/presentation/VerticalBarPresentation.kt b/plugins/markdown/core/src/org/intellij/plugins/markdown/editor/tables/ui/presentation/VerticalBarPresentation.kt index 4e06ccffc3d9..d31ca3721e1c 100644 --- a/plugins/markdown/core/src/org/intellij/plugins/markdown/editor/tables/ui/presentation/VerticalBarPresentation.kt +++ b/plugins/markdown/core/src/org/intellij/plugins/markdown/editor/tables/ui/presentation/VerticalBarPresentation.kt @@ -21,6 +21,7 @@ import com.intellij.psi.PsiElement import com.intellij.psi.util.siblings import com.intellij.psi.util.startOffset import com.intellij.ui.LightweightHint +import com.intellij.util.SlowOperations import com.intellij.util.ui.GraphicsUtil import org.intellij.plugins.markdown.editor.tables.TableFormattingUtils.isSoftWrapping import org.intellij.plugins.markdown.editor.tables.TableUtils @@ -67,9 +68,14 @@ internal class VerticalBarPresentation( } private fun shouldShowInlay(): Boolean { - if (!row.isValid || editor.isDisposed) { + if (editor.isDisposed) { return false } + SlowOperations.knownIssue("IJPL-162791").use { + if (!row.isValid) { + return false + } + } val table = TableUtils.findTable(row) ?: return false return !table.isSoftWrapping(editor) } @@ -99,9 +105,14 @@ internal class VerticalBarPresentation( } override fun paint(graphics: Graphics2D, attributes: TextAttributes) { - if (!row.isValid || editor.isDisposed || boundsState == initialState) { + if (editor.isDisposed || boundsState == initialState) { return } + SlowOperations.knownIssue("IJPL-162800").use { + if (!row.isValid) { + return + } + } graphics.useCopy { local -> GraphicsUtil.setupAntialiasing(local) GraphicsUtil.setupRoundedBorderAntialiasing(local)