ChangeClassParametersIntention.java: start write action explicitly inside a template listener (EA-80311 - assert: DocumentImpl.replaceString)

This commit is contained in:
peter
2016-03-16 18:20:07 +01:00
parent 8bedd5db2b
commit 1c8ea0e6f1
@@ -7,6 +7,7 @@ import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
import com.intellij.codeInsight.intention.impl.TypeExpression;
import com.intellij.codeInsight.template.*;
import com.intellij.codeInsight.template.impl.TemplateState;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
@@ -91,10 +92,12 @@ public class ChangeClassParametersIntention extends PsiElementBaseIntentionActio
myNewType = value != null ? value.getText() : "";
final int segmentsCount = state.getSegmentsCount();
final Document document = state.getEditor().getDocument();
for (int i = 0; i < segmentsCount; i++) {
final TextRange segmentRange = state.getSegmentRange(i);
document.replaceString(segmentRange.getStartOffset(), segmentRange.getEndOffset(), oldTypeText);
}
ApplicationManager.getApplication().runWriteAction(() -> {
for (int i = 0; i < segmentsCount; i++) {
final TextRange segmentRange = state.getSegmentRange(i);
document.replaceString(segmentRange.getStartOffset(), segmentRange.getEndOffset(), oldTypeText);
}
});
}
@Override