Add FUS collector for Migration tool
This commit is contained in:
@@ -23,7 +23,8 @@ enum class FUSEventGroups(groupIdSuffix: String, val events: Set<String> = 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"
|
||||
}
|
||||
|
||||
@@ -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<String, String>) {
|
||||
KotlinFUSLogger.log(FUSEventGroups.MigrationTool, Events.Notification.toString(), oldVersions)
|
||||
}
|
||||
|
||||
fun logRun() {
|
||||
KotlinFUSLogger.log(FUSEventGroups.MigrationTool, Events.Run.toString())
|
||||
}
|
||||
|
||||
enum class Events {
|
||||
Notification, Run
|
||||
}
|
||||
}
|
||||
@@ -101,6 +101,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.debugger" version="2"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.j2k" version="1"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.editor" version="1"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.migrationTool" version="1"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.new.wizard" version="1"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.gradle.performance" version="1"/>
|
||||
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.IDESettingsFUSCollector"/>
|
||||
|
||||
@@ -114,6 +114,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.debugger" version="2"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.j2k" version="1"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.editor" version="1"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.migrationTool" version="1"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.new.wizard" version="1"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.gradle.performance" version="1"/>
|
||||
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.IDESettingsFUSCollector"/>
|
||||
|
||||
@@ -114,6 +114,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.debugger" version="2"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.j2k" version="1"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.editor" version="1"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.migrationTool" version="1"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.new.wizard" version="1"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.gradle.performance" version="1"/>
|
||||
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.IDESettingsFUSCollector"/>
|
||||
|
||||
@@ -97,6 +97,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.debugger" version="2"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.j2k" version="1"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.editor" version="1"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.migrationTool" version="1"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.ide.new.wizard" version="1"/>
|
||||
<statistics.counterUsagesCollector groupId="kotlin.gradle.performance" version="1"/>
|
||||
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.IDESettingsFUSCollector"/>
|
||||
|
||||
+6
@@ -219,6 +219,12 @@ data class MigrationInfo(
|
||||
val oldLanguageVersion: LanguageVersion,
|
||||
val newLanguageVersion: LanguageVersion
|
||||
) {
|
||||
fun oldVersionsToMap(): Map<String, String> = mapOf(
|
||||
"old_stdlib_version" to oldStdlibVersion,
|
||||
"old_api_version" to oldApiVersion.versionString,
|
||||
"old_language_version" to oldLanguageVersion.versionString
|
||||
)
|
||||
|
||||
companion object {
|
||||
fun create(
|
||||
oldStdlibVersion: String,
|
||||
|
||||
@@ -204,6 +204,12 @@ data class MigrationInfo(
|
||||
val oldLanguageVersion: LanguageVersion,
|
||||
val newLanguageVersion: LanguageVersion
|
||||
) {
|
||||
fun oldVersionsToMap(): Map<String, String> = mapOf(
|
||||
"old_stdlib_version" to oldStdlibVersion,
|
||||
"old_api_version" to oldApiVersion.versionString,
|
||||
"old_language_version" to oldLanguageVersion.versionString
|
||||
)
|
||||
|
||||
companion object {
|
||||
fun create(
|
||||
oldStdlibVersion: String,
|
||||
|
||||
@@ -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()
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user