CheckRegExpForm: don't use transaction for pure UI update

GitOrigin-RevId: ca3c252c8a674aacef9bde79158c9b887c9567a9
This commit is contained in:
peter
2019-10-22 16:46:59 +00:00
committed by intellij-monorepo-bot
parent 7296ae013c
commit b92ad24bb2
@@ -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);
}
}