js: improve folding performance (insert checkCanceled(), better method for text matching)

This commit is contained in:
anstarovoyt
2019-02-20 19:27:30 +03:00
parent 0c98b4a136
commit a922bde231
@@ -3,6 +3,7 @@ package com.intellij.lang.folding;
import com.intellij.lang.ASTNode;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.project.PossiblyDumbAware;
import com.intellij.openapi.util.TextRange;
import com.intellij.openapi.util.registry.Registry;
@@ -75,6 +76,8 @@ public abstract class CustomFoldingBuilder extends FoldingBuilderEx implements P
int currDepth) {
FoldingStack localFoldingStack = isCustomFoldingRoot(node) ? new FoldingStack(node) : foldingStack;
for (ASTNode child = node.getFirstChildNode(); child != null; child = child.getTreeNext()) {
ProgressManager.checkCanceled();
if (isCustomRegionStart(child)) {
localFoldingStack.push(child);
}