use async commit in usage preview (EA-83054 - assert: PsiDocumentManagerBase.commitAllDocuments)

This commit is contained in:
peter
2016-05-27 16:38:44 +02:00
parent f1b4da2519
commit f3cc288b28
3 changed files with 5 additions and 5 deletions
@@ -19,7 +19,6 @@ import com.intellij.codeInspection.CommonProblemDescriptor;
import com.intellij.codeInspection.ProblemDescriptorBase;
import com.intellij.diff.tools.util.FoldingModelSupport;
import com.intellij.diff.util.DiffDrawUtil;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.FoldRegion;
import com.intellij.openapi.editor.ScrollType;
@@ -27,6 +26,7 @@ import com.intellij.openapi.editor.ex.DocumentEx;
import com.intellij.openapi.editor.ex.EditorEx;
import com.intellij.openapi.editor.markup.HighlighterLayer;
import com.intellij.openapi.util.TextRange;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiNameIdentifierOwner;
import com.intellij.psi.util.PsiTreeUtil;
@@ -86,7 +86,7 @@ public class ProblemPreviewEditorPresentation {
updateFoldings();
}
ApplicationManager.getApplication().invokeLater(() -> {
PsiDocumentManager.getInstance(myView.getProject()).performLaterWhenAllCommitted(() -> {
if (!myEditor.isDisposed()) {
myView.invalidate();
myView.validate();
@@ -17,11 +17,11 @@
package com.intellij.usages.impl;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.ui.IdeBorderFactory;
import com.intellij.usageView.UsageInfo;
import com.intellij.usages.UsageContextPanel;
import com.intellij.usages.UsageViewPresentation;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -58,7 +58,7 @@ public abstract class UsageContextPanelBase extends JPanel implements UsageConte
@Override
public final void updateLayout(@Nullable final List<UsageInfo> infos) {
UIUtil.invokeLaterIfNeeded(() -> {
PsiDocumentManager.getInstance(myProject).performLaterWhenAllCommitted(() -> {
if (isDisposed || myProject.isDisposed()) return;
updateLayoutLater(infos);
});
@@ -126,7 +126,7 @@ public class UsagePreviewPanel extends UsageContextPanelBase {
@NotNull final Project project,
boolean highlightOnlyNameElements,
int highlightLayer) {
PsiDocumentManager.getInstance(project).commitAllDocuments();
LOG.assertTrue(!PsiDocumentManager.getInstance(project).hasUncommitedDocuments());
MarkupModel markupModel = editor.getMarkupModel();
for (RangeHighlighter highlighter : markupModel.getAllHighlighters()) {