Remove unused environment properties from gradle configuration resolver

getScriptContents is no longer used by Gradle
see https://github.com/gradle/gradle/blob/master/subprojects/kotlin-dsl/src/main/kotlin/org/gradle/kotlin/dsl/resolver/ResolverEnvironment.kt
This commit is contained in:
Natalia Selezneva
2019-11-12 09:49:04 +03:00
parent 9710f1da77
commit 229665d2fc
@@ -13,8 +13,6 @@ import com.intellij.util.EnvironmentUtil
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionSourceAsContributor import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionSourceAsContributor
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionsManager import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionsManager
import org.jetbrains.kotlin.idea.core.script.loadDefinitionsFromTemplates import org.jetbrains.kotlin.idea.core.script.loadDefinitionsFromTemplates
import org.jetbrains.kotlin.lexer.KotlinLexer
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinitionAdapterFromNewAPIBase import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinitionAdapterFromNewAPIBase
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
import org.jetbrains.kotlin.scripting.definitions.getEnvironment import org.jetbrains.kotlin.scripting.definitions.getEnvironment
@@ -176,9 +174,7 @@ class GradleScriptDefinitionsContributor(private val project: Project) : ScriptD
"gradleOptions" to emptyList<String>(), // There is no option in UI to set project wide gradleOptions "gradleOptions" to emptyList<String>(), // There is no option in UI to set project wide gradleOptions
"gradleJvmOptions" to gradleJvmOptions, "gradleJvmOptions" to gradleJvmOptions,
"gradleEnvironmentVariables" to if (gradleExeSettings.isPassParentEnvs) EnvironmentUtil.getEnvironmentMap() else emptyMap(), "gradleEnvironmentVariables" to if (gradleExeSettings.isPassParentEnvs) EnvironmentUtil.getEnvironmentMap() else emptyMap()
"getScriptSectionTokens" to ::topLevelSectionCodeTextTokens
) )
return ScriptingHostConfiguration(defaultJvmScriptingHostConfiguration) { return ScriptingHostConfiguration(defaultJvmScriptingHostConfiguration) {
getEnvironment { environment } getEnvironment { environment }
@@ -288,55 +284,4 @@ class GradleKotlinScriptDefinitionFromAnnotatedTemplate(
@Suppress("DEPRECATION") @Suppress("DEPRECATION")
override val scriptExpectedLocations: List<ScriptExpectedLocation> override val scriptExpectedLocations: List<ScriptExpectedLocation>
get() = listOf(ScriptExpectedLocation.Project) get() = listOf(ScriptExpectedLocation.Project)
} }
class TopLevelSectionTokensEnumerator(script: CharSequence, identifier: String) : Enumeration<KotlinLexer> {
private val lexer = KotlinLexer().apply {
start(script.replace(Regex.fromLiteral("\r"), ""))
var depth = 0
loop@ while (tokenType != null) {
when (tokenType) {
KtTokens.IDENTIFIER -> if (depth == 0 && tokenText == identifier) {
advance()
skipWhiteSpaceAndComments()
if (tokenType == KtTokens.LBRACE)
break@loop
}
KtTokens.LBRACE -> depth += 1
KtTokens.RBRACE -> depth -= 1
}
advance()
}
}
private var depth = 1
private var finished = false
override fun hasMoreElements(): Boolean = !finished && lexer.tokenType != null
override fun nextElement(): KotlinLexer = lexer.apply {
advance()
when (tokenType) {
KtTokens.LBRACE -> depth += 1
KtTokens.RBRACE -> {
if (depth == 1) {
finished = true
}
depth -= 1
}
}
}
private fun KotlinLexer.skipWhiteSpaceAndComments() {
while (tokenType in KtTokens.WHITE_SPACE_OR_COMMENT_BIT_SET) {
advance()
}
}
}
fun topLevelSectionCodeTextTokens(script: CharSequence, sectionIdentifier: String): Sequence<CharSequence> =
TopLevelSectionTokensEnumerator(script, sectionIdentifier).asSequence()
.filter { it.tokenType !in KtTokens.WHITE_SPACE_OR_COMMENT_BIT_SET }
.map { it.tokenSequence }