From b92ad24bb291cf33d6f058b53b12ea41769c2673 Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 22 Oct 2019 17:39:29 +0200 Subject: [PATCH] CheckRegExpForm: don't use transaction for pure UI update GitOrigin-RevId: ca3c252c8a674aacef9bde79158c9b887c9567a9 --- .../intellij/lang/regexp/intention/CheckRegExpForm.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/RegExpSupport/src/org/intellij/lang/regexp/intention/CheckRegExpForm.java b/RegExpSupport/src/org/intellij/lang/regexp/intention/CheckRegExpForm.java index 3931652b7922..9332b2000a58 100644 --- a/RegExpSupport/src/org/intellij/lang/regexp/intention/CheckRegExpForm.java +++ b/RegExpSupport/src/org/intellij/lang/regexp/intention/CheckRegExpForm.java @@ -7,9 +7,7 @@ import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.CustomShortcutSet; -import com.intellij.openapi.application.ReadAction; -import com.intellij.openapi.application.TransactionGuard; -import com.intellij.openapi.application.TransactionId; +import com.intellij.openapi.application.*; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.event.DocumentEvent; import com.intellij.openapi.editor.event.DocumentListener; @@ -154,13 +152,12 @@ public class CheckRegExpForm { action.registerCustomShortcutSet(CustomShortcutSet.fromString(shortcut), source); } - public void update() { - final TransactionId transactionId = TransactionGuard.getInstance().getContextTransaction(); + private void update() { updater.cancelAllRequests(); if (!updater.isDisposed()) { updater.addRequest(() -> { final RegExpMatchResult result = isMatchingText(myRegexpFile, mySampleText.getText()); - TransactionGuard.getInstance().submitTransaction(myProject, transactionId, () -> setBalloonState(result)); + ApplicationManager.getApplication().invokeLater(() -> setBalloonState(result), ModalityState.any(), __ -> updater.isDisposed()); }, 200); } }