EditorMarkupModelImpl - do not use blocking read action (part 1)

GitOrigin-RevId: c29308b6789f8e50a7f0a6dce2954e177ba19ffc
This commit is contained in:
Vladimir Krivosheev
2025-06-08 17:31:19 +00:00
committed by intellij-monorepo-bot
parent 4ae6626f68
commit db79d7d8ee
3 changed files with 1729 additions and 1894 deletions
@@ -3976,7 +3976,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
myMarkupModelListener.attributesChanged((RangeHighlighterEx)highlighter, true,
EditorUtil.attributesImpactFontStyle(attributes),
EditorUtil.attributesImpactForegroundColor(attributes));
myMarkupModel.getErrorStripeMarkersModel().attributesChanged((RangeHighlighterEx)highlighter, true);
myMarkupModel.errorStripeMarkersModel.attributesChanged((RangeHighlighterEx)highlighter, true);
}
}
}
File diff suppressed because it is too large Load Diff
@@ -1,7 +1,8 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.java.decompiler
import com.intellij.ide.highlighter.JavaClassFileType
import com.intellij.openapi.actionSystem.ActionToolbar.DEFAULT_MINIMUM_BUTTON_SIZE
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.DefaultActionGroup
import com.intellij.openapi.actionSystem.Presentation
@@ -10,7 +11,9 @@ import com.intellij.openapi.editor.event.EditorFactoryEvent
import com.intellij.openapi.editor.event.EditorFactoryListener
import com.intellij.openapi.editor.ex.EditorMarkupModel
import com.intellij.openapi.editor.impl.EditorImpl
import com.intellij.openapi.editor.impl.EditorInspectionsActionToolbar
import com.intellij.openapi.editor.impl.EditorMarkupModelImpl
import com.intellij.openapi.editor.impl.EditorToolbarButtonLook
import com.intellij.ui.components.JBScrollPane
import com.intellij.ui.components.panels.NonOpaquePanel
import com.intellij.util.ui.JBInsets
@@ -20,7 +23,7 @@ import java.util.function.Supplier
import javax.swing.BoxLayout
import kotlin.math.max
internal class DecompilerInEditorListener : EditorFactoryListener {
private class DecompilerInEditorListener : EditorFactoryListener {
override fun editorCreated(event: EditorFactoryEvent) {
val editor = event.editor as? EditorImpl ?: return
val file = editor.virtualFile ?: return
@@ -50,10 +53,10 @@ internal class DecompilerInEditorListener : EditorFactoryListener {
DecompilerInEditorActionGroup(decompilerSettings),
)
val editorButtonLook = EditorMarkupModelImpl.EditorToolbarButtonLook(editor)
val editorButtonLook = EditorToolbarButtonLook(editor)
// We override this *only* to enforce the nice-looking minimum icon size.
val statusToolbar = object : EditorMarkupModelImpl.EditorInspectionsActionToolbar(defaultActionGroup, editor, editorButtonLook, null, null) {
val statusToolbar = object : EditorInspectionsActionToolbar(defaultActionGroup, editor, editorButtonLook, null, null) {
override fun createIconButton(action: AnAction, place: String, presentation: Presentation, minimumSize: Supplier<out Dimension>): ActionButton {
return object : ToolbarActionButton(action, presentation, place, minimumSize) {
override fun getPreferredSize(): Dimension {