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)
+ }
}