KotlinLanguageInjector using Registry to enable annotation injections

(cherry picked from commit 8bdfeb7)
This commit is contained in:
Nicolay Mitropolsky
2017-09-14 20:07:46 +03:00
committed by Nikolay Krasko
parent 12daf4389e
commit 7eb2d0d185
2 changed files with 11 additions and 1 deletions
@@ -23,6 +23,7 @@ import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.progress.ProgressManager
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Key
import com.intellij.openapi.util.registry.Registry
import com.intellij.openapi.util.text.StringUtilRt
import com.intellij.patterns.PatternCondition
import com.intellij.patterns.PatternConditionPlus
@@ -68,6 +69,8 @@ class KotlinLanguageInjector(
private val ABSENT_KOTLIN_INJECTION = BaseInjection("ABSENT_KOTLIN_BASE_INJECTION")
}
var annotationInjectionsEnabled = Registry.`is`("kotlin.annotation.injection.enabled", false)
private val kotlinSupport: KotlinLanguageInjectionSupport? by lazy {
ArrayList(InjectorUtils.getActiveInjectionSupports()).filterIsInstance(KotlinLanguageInjectionSupport::class.java).firstOrNull()
}
@@ -273,6 +276,7 @@ class KotlinLanguageInjector(
}
private fun injectInAnnotationCall(host: KtElement): InjectionInfo? {
if (!annotationInjectionsEnabled) return null
val argument = host.parent as? KtValueArgument ?: return null
val annotationEntry = argument.parent.parent as? KtAnnotationEntry ?: return null
if (!fastCheckInjectionsExists(annotationEntry)) return null