diff --git a/idea/resources/META-INF/plugin.xml b/idea/resources/META-INF/plugin.xml
index 6803208694b..138d2b046f5 100644
--- a/idea/resources/META-INF/plugin.xml
+++ b/idea/resources/META-INF/plugin.xml
@@ -79,6 +79,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
+
diff --git a/idea/resources/META-INF/plugin.xml.191 b/idea/resources/META-INF/plugin.xml.191
index 54e2d468583..e17d04b65a2 100644
--- a/idea/resources/META-INF/plugin.xml.191
+++ b/idea/resources/META-INF/plugin.xml.191
@@ -79,6 +79,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
+
diff --git a/idea/resources/META-INF/plugin.xml.192 b/idea/resources/META-INF/plugin.xml.192
index c39c0bf94fe..51a54214aeb 100644
--- a/idea/resources/META-INF/plugin.xml.192
+++ b/idea/resources/META-INF/plugin.xml.192
@@ -79,6 +79,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
+
diff --git a/idea/src/org/jetbrains/kotlin/idea/formatter/KotlinFormatterUsageCollector.kt b/idea/src/org/jetbrains/kotlin/idea/formatter/KotlinFormatterUsageCollector.kt
index 435ed2bbdbc..b7cf268f3e4 100644
--- a/idea/src/org/jetbrains/kotlin/idea/formatter/KotlinFormatterUsageCollector.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/formatter/KotlinFormatterUsageCollector.kt
@@ -6,38 +6,38 @@
package org.jetbrains.kotlin.idea.formatter
import com.intellij.application.options.CodeStyle
-import com.intellij.internal.statistic.beans.UsageDescriptor
-import com.intellij.internal.statistic.utils.getEnumUsage
+import com.intellij.internal.statistic.beans.MetricEvent
+import com.intellij.internal.statistic.beans.newMetric
+import com.intellij.internal.statistic.eventLog.FeatureUsageData
+import com.intellij.internal.statistic.service.fus.collectors.ProjectUsagesCollector
import com.intellij.openapi.project.Project
import com.intellij.psi.codeStyle.CodeStyleSettingsManager
import org.jetbrains.kotlin.idea.core.formatter.KotlinCodeStyleSettings
import org.jetbrains.kotlin.idea.formatter.KotlinFormatterUsageCollector.KotlinFormatterKind.*
import org.jetbrains.kotlin.idea.util.isDefaultOfficialCodeStyle
-//todo: convert to FUS?
-class KotlinFormatterUsageCollector {
- fun getProjectUsages(project: Project): Set {
+class KotlinFormatterUsageCollector : ProjectUsagesCollector() {
+
+ override fun getGroupId() = "kotlin.ide.formatter"
+ override fun getVersion(): Int = 1
+
+ override fun getMetrics(project: Project): Set {
val usedFormatter = getKotlinFormatterKind(project)
val settings = CodeStyle.getSettings(project)
val kotlinCommonSettings = settings.kotlinCommonSettings
val kotlinCustomSettings = settings.kotlinCustomSettings
+ val data = FeatureUsageData()
+ .addData("kind", usedFormatter.name)
+ .addData("defaults", kotlinCustomSettings.CODE_STYLE_DEFAULTS ?: kotlinCommonSettings.CODE_STYLE_DEFAULTS)
+
return setOf(
- getEnumUsage("kotlin.formatter.kind", usedFormatter),
- getEnumStringPropertyUsage(
- "kotlin.formatter.defaults",
- kotlinCustomSettings.CODE_STYLE_DEFAULTS ?: kotlinCommonSettings.CODE_STYLE_DEFAULTS
- )
+ newMetric("settings", data)
)
}
- private fun getEnumStringPropertyUsage(key: String, value: String?): UsageDescriptor {
- return UsageDescriptor(key + "." + value.toString().toLowerCase(java.util.Locale.ENGLISH), 1)
- }
-
companion object {
- private const val GROUP_ID = "kotlin.formatter"
private val KOTLIN_DEFAULT_COMMON = KotlinLanguageCodeStyleSettingsProvider().defaultCommonSettings
.also { KotlinStyleGuideCodeStyle.applyToCommonSettings(it) }