diff --git a/idea/resources/META-INF/extensions/ide.xml b/idea/resources/META-INF/extensions/ide.xml index 4e28e64f86f..b45de19aefe 100644 --- a/idea/resources/META-INF/extensions/ide.xml +++ b/idea/resources/META-INF/extensions/ide.xml @@ -147,6 +147,16 @@ defaultValue="true" restartRequired="false"/> + + + + diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionCompat.kt b/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionCompat.kt index 3dd634298cc..c58fd8e50bd 100644 --- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionCompat.kt +++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionCompat.kt @@ -14,7 +14,6 @@ import com.intellij.internal.statistic.eventLog.FeatureUsageData import com.intellij.internal.statistic.service.fus.collectors.FUCounterUsageLogger import com.intellij.openapi.project.Project import com.intellij.ui.layout.panel -import org.jetbrains.kotlin.idea.KotlinBundle import javax.swing.JPanel @@ -27,27 +26,12 @@ fun logUsageStatistics(project: Project?, groupId: String, eventId: String) = fun logUsageStatistics(project: Project?, groupId: String, eventId: String, data: FeatureUsageData) = FUCounterUsageLogger.getInstance().logEvent(project, groupId, eventId, data) -fun createImmediateConfigurable(settings: KotlinCodeVisionProvider.KotlinCodeVisionSettings): ImmediateConfigurable { +fun createImmediateConfigurable(): ImmediateConfigurable { return object : ImmediateConfigurable { - override fun createComponent(listener: ChangeListener): JPanel { - return panel {} - } + override fun createComponent(listener: ChangeListener): JPanel = panel {} - override val cases: List - get() = listOf( - ImmediateConfigurable.Case( - KotlinBundle.message("hints.title.codevision.usages"), - "usages", - settings::showUsages - ), - ImmediateConfigurable.Case( - KotlinBundle.message("hints.title.codevision.inheritors"), - "inheritors", - settings::showInheritors - ) - ) + override val cases: List = emptyList() - override val mainCheckboxText: String - get() = KotlinBundle.message("hints.title.codevision.show.hints.for") + override val mainCheckboxText: String = "" } } \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionCompat.kt.192 b/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionCompat.kt.192 index 1fbe053e2a5..2fdaead4773 100644 --- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionCompat.kt.192 +++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionCompat.kt.192 @@ -27,25 +27,8 @@ fun logUsageStatistics(project: Project?, groupId: String, eventId: String, data project?.let { FUCounterUsageLogger.getInstance().logEvent(project, groupId, eventId, data) } } -fun createImmediateConfigurable(settings: KotlinCodeVisionProvider.KotlinCodeVisionSettings): ImmediateConfigurable { +fun createImmediateConfigurable(): ImmediateConfigurable { return object : ImmediateConfigurable { - val usagesText = KotlinBundle.message("hints.title.codevision.usages") - val inheritorsText = KotlinBundle.message("hints.title.codevision.inheritors") - - private val usagesField = JBCheckBox(usagesText, settings.showUsages) - private val inheritorsField = JBCheckBox(inheritorsText, settings.showInheritors) - - override fun createComponent(listener: ChangeListener): JPanel { - usagesField.isSelected = settings.showUsages - usagesField.addActionListener { settings.showUsages = usagesField.isSelected } - - inheritorsField.isSelected = settings.showInheritors - inheritorsField.addActionListener { settings.showInheritors = inheritorsField.isSelected } - - return panel { - row { usagesField(pushX) } - row { inheritorsField(pushX) } - } - } + override fun createComponent(listener: ChangeListener): JPanel = panel {} } } \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionProvider.kt b/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionProvider.kt index 79e3e8a981c..83188b0854e 100644 --- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionProvider.kt @@ -8,14 +8,15 @@ package org.jetbrains.kotlin.idea.codeInsight.codevision import com.intellij.codeInsight.hints.* import com.intellij.lang.Language import com.intellij.openapi.editor.Editor +import com.intellij.openapi.util.registry.Registry import com.intellij.psi.PsiFile import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.KotlinLanguage @Suppress("UnstableApiUsage") -class KotlinCodeVisionProvider : InlayHintsProvider { +class KotlinCodeVisionProvider : InlayHintsProvider { - override val key: SettingsKey = SettingsKey("CodeVision") + override val key: SettingsKey = SettingsKey("CodeVision") override val name: String = KotlinBundle.message("hints.title.codevision") override val previewText: String? = null @@ -24,16 +25,19 @@ class KotlinCodeVisionProvider : InlayHintsProvider inheritorsEnabled() - "usages" -> usagesEnabled() - "usages-&-inheritors" -> usagesAndInheritorsEnabled() - else -> codeVisionDisabled() + when (InTextDirectivesUtils.findStringWithPrefixes(fileContents, "// MODE: ")) { + "inheritors" -> mode(usages = false, inheritors = true) + "usages" -> mode(usages = true, inheritors = false) + "usages-&-inheritors" -> mode(usages = true, inheritors = true) + else -> mode(usages = false, inheritors = false) } - testProvider("kotlinCodeVision.kt", fileContents, codeVisionProvider, mode) + testProvider("kotlinCodeVision.kt", fileContents, codeVisionProvider) } - private fun usagesAndInheritorsEnabled(): KotlinCodeVisionSettings = KotlinCodeVisionSettings(showUsages = true, showInheritors = true) - - private fun inheritorsEnabled(): KotlinCodeVisionSettings = KotlinCodeVisionSettings(showUsages = false, showInheritors = true) - - private fun usagesEnabled(): KotlinCodeVisionSettings = KotlinCodeVisionSettings(showUsages = true, showInheritors = false) - - private fun codeVisionDisabled(): KotlinCodeVisionSettings = KotlinCodeVisionSettings(showUsages = false, showInheritors = false) + private fun mode(usages: Boolean, inheritors: Boolean) { + Registry.get(USAGES_KEY).setValue(usages) + Registry.get(INHERITORS_KEY).setValue(inheritors) + } }