in core-common/src/main/kotlin/com/twitter/rules/core/ComposeKtConfig.kt [14:36]
fun getBoolean(key: String, default: Boolean): Boolean
companion object {
private val Key: Key<ComposeKtConfig> = Key("twitter_compose_rules_config")
private val ReturnDefaults = object : ComposeKtConfig {
override fun getInt(key: String, default: Int): Int = default
override fun getString(key: String, default: String?): String? = default
override fun getList(key: String, default: List<String>): List<String> = default
override fun getSet(key: String, default: Set<String>) = default
override fun getBoolean(key: String, default: Boolean) = default
}
fun PsiElement.config(): ComposeKtConfig = containingFile.getUserData(Key) ?: ReturnDefaults
fun ASTNode.config(): ComposeKtConfig = psi.config()
private val PsiElement.hasConfigAttached: Boolean
get() = containingFile.getUserData(Key) != null
fun PsiElement.attach(config: ComposeKtConfig) {
if (!hasConfigAttached) containingFile.putUserData(Key, config)
}
}