checkCancelled for reparsables

This commit is contained in:
Dennis Ushakov
2019-01-23 23:00:57 +03:00
parent f26e828d08
commit f8e86dc14b
2 changed files with 6 additions and 1 deletions
@@ -16,6 +16,7 @@
package com.intellij.lang;
import com.intellij.lexer.Lexer;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.tree.TokenSet;
import org.jetbrains.annotations.NotNull;
@@ -155,6 +156,7 @@ public class PsiBuilderUtil {
int balance = 1;
while (true) {
ProgressManager.checkCanceled();
IElementType type = lexer.getTokenType();
if (type == null) {
@@ -9,6 +9,7 @@ import com.intellij.lang.PsiBuilder
import com.intellij.lang.PsiBuilder.Marker
import com.intellij.lang.PsiBuilderUtil.parseBlockLazy
import com.intellij.lang.parser.GeneratedParserUtilBase.*
import com.intellij.openapi.progress.ProgressManager
import com.intellij.openapi.util.Key
import com.intellij.openapi.util.KeyWithDefaultValue
import com.intellij.openapi.util.text.StringUtil.contains
@@ -16,7 +17,8 @@ import com.intellij.psi.tree.IElementType
import com.intellij.psi.tree.TokenSet
import org.jetbrains.plugins.groovy.GroovyBundle
import org.jetbrains.plugins.groovy.lang.lexer.GroovyLexer
import org.jetbrains.plugins.groovy.lang.parser.GroovyGeneratedParser.*
import org.jetbrains.plugins.groovy.lang.parser.GroovyGeneratedParser.closure_header_with_arrow
import org.jetbrains.plugins.groovy.lang.parser.GroovyGeneratedParser.parenthesized_lambda_expression_head
import org.jetbrains.plugins.groovy.lang.psi.GroovyElementTypes.*
import org.jetbrains.plugins.groovy.lang.psi.GroovyTokenSets.*
import org.jetbrains.plugins.groovy.util.get
@@ -475,6 +477,7 @@ fun isBlockParseable(text: CharSequence): Boolean {
}
while (true) {
ProgressManager.checkCanceled()
val type = lexer.tokenType ?: return leftStack.isEmpty()
if (leftStack.isEmpty()) {
return false