From ddc66d519c8951d5be82d36d3acf711ec427e481 Mon Sep 17 00:00:00 2001 From: Mikhail Golubev Date: Thu, 2 Mar 2017 17:49:47 +0300 Subject: [PATCH] PY-22422 PyPreFormatProcessor doesn't need to unblock/commit document, it operates on PSI --- .../formatter/PyFromImportPostFormatProcessor.java | 7 +++++-- .../python/formatter/PyPreFormatProcessor.java | 14 ++++---------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/python/src/com/jetbrains/python/formatter/PyFromImportPostFormatProcessor.java b/python/src/com/jetbrains/python/formatter/PyFromImportPostFormatProcessor.java index 0b1505386aa5..5a129eb06bcc 100644 --- a/python/src/com/jetbrains/python/formatter/PyFromImportPostFormatProcessor.java +++ b/python/src/com/jetbrains/python/formatter/PyFromImportPostFormatProcessor.java @@ -155,9 +155,12 @@ public class PyFromImportPostFormatProcessor implements PostFormatProcessor { return newFromImport; } else { + final int oldLength = fromImport.getTextLength(); // Add only trailing comma - final PsiElement comma = fromImport.addAfter(generator.createComma().getPsi(), allNames[allNames.length - 1]); - codeStyleManager.reformat(comma); + fromImport.addAfter(generator.createComma().getPsi(), allNames[allNames.length - 1]); + // Adjust spaces around the comma if necessary + codeStyleManager.reformat(fromImport, true); + myHelper.updateResultRange(oldLength, fromImport.getTextLength()); return fromImport; } } diff --git a/python/src/com/jetbrains/python/formatter/PyPreFormatProcessor.java b/python/src/com/jetbrains/python/formatter/PyPreFormatProcessor.java index 43600a4a2937..78cc3ed9a2fc 100644 --- a/python/src/com/jetbrains/python/formatter/PyPreFormatProcessor.java +++ b/python/src/com/jetbrains/python/formatter/PyPreFormatProcessor.java @@ -82,16 +82,10 @@ public class PyPreFormatProcessor implements PreFormatProcessor { final PsiDocumentManager manager = PsiDocumentManager.getInstance(myProject); final Document document = manager.getDocument(element.getContainingFile()); if (document != null) { - manager.doPostponedOperationsAndUnblockDocument(document); - try { - // collect all comments - element.accept(this); - for (Couple pair : myCommentReplacements) { - pair.getFirst().replace(pair.getSecond()); - } - } - finally { - manager.commitDocument(document); + // collect all comments + element.accept(this); + for (Couple pair : myCommentReplacements) { + pair.getFirst().replace(pair.getSecond()); } } return TextRange.create(range.getStartOffset(), range.getEndOffset() + myDelta);