diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/FUSEventGroups.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/FUSEventGroups.kt index 7d1ba5a2cc0..52edd99b61b 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/FUSEventGroups.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/FUSEventGroups.kt @@ -23,7 +23,8 @@ enum class FUSEventGroups(groupIdSuffix: String, val events: Set = setOf Editor("ide.editor"), Settings("ide.settings"), GradlePerformance("gradle.performance"), - NewWizard("ide.new.wizard"); + NewWizard("ide.new.wizard"), + MigrationTool("ide.migrationTool"); val GROUP_ID: String = "kotlin.$groupIdSuffix" } diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/MigrationToolFUSCollector.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/MigrationToolFUSCollector.kt new file mode 100644 index 00000000000..993972e01ec --- /dev/null +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/MigrationToolFUSCollector.kt @@ -0,0 +1,21 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.idea.statistics + +object MigrationToolFUSCollector { + + fun logNotification(oldVersions: Map) { + KotlinFUSLogger.log(FUSEventGroups.MigrationTool, Events.Notification.toString(), oldVersions) + } + + fun logRun() { + KotlinFUSLogger.log(FUSEventGroups.MigrationTool, Events.Run.toString()) + } + + enum class Events { + Notification, Run + } +} \ No newline at end of file diff --git a/idea/resources/META-INF/plugin.xml b/idea/resources/META-INF/plugin.xml index 57226e59432..81781a23d34 100644 --- a/idea/resources/META-INF/plugin.xml +++ b/idea/resources/META-INF/plugin.xml @@ -101,6 +101,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 7e9040a92c4..d06c9be159d 100644 --- a/idea/resources/META-INF/plugin.xml.191 +++ b/idea/resources/META-INF/plugin.xml.191 @@ -114,6 +114,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 af25b49a568..d3dae3286f2 100644 --- a/idea/resources/META-INF/plugin.xml.192 +++ b/idea/resources/META-INF/plugin.xml.192 @@ -114,6 +114,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio. + diff --git a/idea/resources/META-INF/plugin.xml.201 b/idea/resources/META-INF/plugin.xml.201 index a5afb669367..992143deb11 100644 --- a/idea/resources/META-INF/plugin.xml.201 +++ b/idea/resources/META-INF/plugin.xml.201 @@ -97,6 +97,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio. + diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMigrationProjectComponent.kt.192 b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMigrationProjectComponent.kt.192 index 1aaa4a63470..61db43e6741 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMigrationProjectComponent.kt.192 +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMigrationProjectComponent.kt.192 @@ -219,6 +219,12 @@ data class MigrationInfo( val oldLanguageVersion: LanguageVersion, val newLanguageVersion: LanguageVersion ) { + fun oldVersionsToMap(): Map = mapOf( + "old_stdlib_version" to oldStdlibVersion, + "old_api_version" to oldApiVersion.versionString, + "old_language_version" to oldLanguageVersion.versionString + ) + companion object { fun create( oldStdlibVersion: String, diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMigrationProjectService.kt b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMigrationProjectService.kt index c1b9849a971..00ed5a545de 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMigrationProjectService.kt +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMigrationProjectService.kt @@ -204,6 +204,12 @@ data class MigrationInfo( val oldLanguageVersion: LanguageVersion, val newLanguageVersion: LanguageVersion ) { + fun oldVersionsToMap(): Map = mapOf( + "old_stdlib_version" to oldStdlibVersion, + "old_api_version" to oldApiVersion.versionString, + "old_language_version" to oldLanguageVersion.versionString + ) + companion object { fun create( oldStdlibVersion: String, diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/ui/migrationNotification.kt b/idea/src/org/jetbrains/kotlin/idea/configuration/ui/migrationNotification.kt index e702465e43b..03300b4380a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/ui/migrationNotification.kt +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/ui/migrationNotification.kt @@ -12,6 +12,7 @@ import com.intellij.openapi.project.Project import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.configuration.MigrationInfo import org.jetbrains.kotlin.idea.migration.CodeMigrationAction +import org.jetbrains.kotlin.idea.statistics.MigrationToolFUSCollector internal fun showMigrationNotification(project: Project, migrationInfo: MigrationInfo) { val detectedChangeMessage = buildString { @@ -47,6 +48,7 @@ internal fun showMigrationNotification(project: Project, migrationInfo: Migratio } } + MigrationToolFUSCollector.logNotification(migrationInfo.oldVersionsToMap()) KOTLIN_MIGRATION_NOTIFICATION_GROUP .createNotification( KotlinBundle.message("configuration.migration.title.kotlin.migration"), @@ -59,6 +61,7 @@ internal fun showMigrationNotification(project: Project, migrationInfo: Migratio val projectContext = SimpleDataContext.getProjectContext(project) val action = ActionManager.getInstance().getAction(CodeMigrationAction.ACTION_ID) Notification.fire(notification, action, projectContext) + MigrationToolFUSCollector.logRun() notification.expire() })