From d619da839dc5217fed8bdc5db06841fe6795c812 Mon Sep 17 00:00:00 2001 From: Yaroslav Lepenkin Date: Fri, 3 Jul 2015 12:13:26 +0300 Subject: [PATCH] revert 28a13b77d1b4d98bddcf68d6f7cff321c7c641e9 due to performance problems - skip read only blocks while building formatting model (IDEA-142200, should fix adjustLineIndent performance problem) --- .../src/com/intellij/formatting/InitialInfoBuilder.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/formatting/InitialInfoBuilder.java b/platform/lang-impl/src/com/intellij/formatting/InitialInfoBuilder.java index 880570ba5128..85c8235d1f02 100644 --- a/platform/lang-impl/src/com/intellij/formatting/InitialInfoBuilder.java +++ b/platform/lang-impl/src/com/intellij/formatting/InitialInfoBuilder.java @@ -203,6 +203,9 @@ class InitialInfoBuilder { if (rootBlock instanceof ReadOnlyBlockInformationProvider) { myReadOnlyBlockInformationProvider = (ReadOnlyBlockInformationProvider)rootBlock; } + if (!isInsideFormattingRanges && !myCollectAlignmentsInsideFormattingRange) { + return processSimpleBlock(rootBlock, parent, true, index, parentBlock); + } final List subBlocks = rootBlock.getSubBlocks(); if (subBlocks.isEmpty() || myReadOnlyBlockInformationProvider != null @@ -237,10 +240,11 @@ class InitialInfoBuilder { } boolean blocksMayBeOfInterest = false; - if (myPositionOfInterest != -1) { + if (myPositionOfInterest != -1 && rootBlock.getTextRange().contains(myPositionOfInterest)) { myResult.put(wrappedRootBlock, rootBlock); blocksMayBeOfInterest = true; } + final boolean blocksAreReadOnly = rootBlock instanceof ReadOnlyBlockContainer || blocksMayBeOfInterest; State state = new State(rootBlock, wrappedRootBlock, currentWrapParent, blocksAreReadOnly, rootBlockIsRightBlock);