Add read action for getting text

Fix "Read access is allowed... exception"
This commit is contained in:
Nikolay Krasko
2017-10-12 20:18:31 +03:00
parent 339b1a3895
commit c4e3cc0705
@@ -20,6 +20,7 @@ import com.intellij.openapi.roots.DependencyScope
import com.intellij.openapi.roots.ExternalLibraryDescriptor import com.intellij.openapi.roots.ExternalLibraryDescriptor
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import com.intellij.psi.codeStyle.CodeStyleManager import com.intellij.psi.codeStyle.CodeStyleManager
import org.jetbrains.kotlin.idea.util.application.runReadAction
import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType
import org.jetbrains.plugins.groovy.lang.psi.GroovyFile import org.jetbrains.plugins.groovy.lang.psi.GroovyFile
import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory
@@ -33,7 +34,7 @@ import org.jetbrains.plugins.groovy.lang.psi.api.util.GrStatementOwner
class GroovyBuildScriptManipulator(private val groovyScript: GroovyFile) : GradleBuildScriptManipulator { class GroovyBuildScriptManipulator(private val groovyScript: GroovyFile) : GradleBuildScriptManipulator {
override fun isConfigured(kotlinPluginName: String): Boolean { override fun isConfigured(kotlinPluginName: String): Boolean {
val fileText = groovyScript.text val fileText = runReadAction { groovyScript.text }
return containsDirective(fileText, getApplyPluginDirective(kotlinPluginName)) && return containsDirective(fileText, getApplyPluginDirective(kotlinPluginName)) &&
fileText.contains("org.jetbrains.kotlin") && fileText.contains("org.jetbrains.kotlin") &&
fileText.contains("kotlin-stdlib") fileText.contains("kotlin-stdlib")