Add Formatter settings tracking to FUS
This commit is contained in:
@@ -79,6 +79,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
|||||||
<statistics.counterUsagesCollector groupId="kotlin.ide.j2k" version="1"/>
|
<statistics.counterUsagesCollector groupId="kotlin.ide.j2k" version="1"/>
|
||||||
<statistics.counterUsagesCollector groupId="kotlin.ide.editor" version="1"/>
|
<statistics.counterUsagesCollector groupId="kotlin.ide.editor" version="1"/>
|
||||||
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.IDESettingsFUSCollector"/>
|
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.IDESettingsFUSCollector"/>
|
||||||
|
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.formatter.KotlinFormatterUsageCollector"/>
|
||||||
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.ProjectConfigurationCollector"/>
|
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.ProjectConfigurationCollector"/>
|
||||||
|
|
||||||
<fileTypeUsageSchemaDescriptor schema="Gradle Script" implementationClass="org.jetbrains.kotlin.idea.core.script.KotlinGradleScriptFileTypeSchemaDetector"/>
|
<fileTypeUsageSchemaDescriptor schema="Gradle Script" implementationClass="org.jetbrains.kotlin.idea.core.script.KotlinGradleScriptFileTypeSchemaDetector"/>
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
|||||||
<statistics.counterUsagesCollector groupId="kotlin.ide.j2k" version="1"/>
|
<statistics.counterUsagesCollector groupId="kotlin.ide.j2k" version="1"/>
|
||||||
<statistics.counterUsagesCollector groupId="kotlin.ide.editor" version="1"/>
|
<statistics.counterUsagesCollector groupId="kotlin.ide.editor" version="1"/>
|
||||||
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.IDESettingsFUSCollector"/>
|
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.IDESettingsFUSCollector"/>
|
||||||
|
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.formatter.KotlinFormatterUsageCollector"/>
|
||||||
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.ProjectConfigurationCollector"/>
|
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.ProjectConfigurationCollector"/>
|
||||||
|
|
||||||
</extensions>
|
</extensions>
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
|||||||
<statistics.counterUsagesCollector groupId="kotlin.ide.j2k" version="1"/>
|
<statistics.counterUsagesCollector groupId="kotlin.ide.j2k" version="1"/>
|
||||||
<statistics.counterUsagesCollector groupId="kotlin.ide.editor" version="1"/>
|
<statistics.counterUsagesCollector groupId="kotlin.ide.editor" version="1"/>
|
||||||
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.IDESettingsFUSCollector"/>
|
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.IDESettingsFUSCollector"/>
|
||||||
|
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.formatter.KotlinFormatterUsageCollector"/>
|
||||||
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.ProjectConfigurationCollector"/>
|
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.ProjectConfigurationCollector"/>
|
||||||
|
|
||||||
<fileTypeUsageSchemaDescriptor schema="Gradle Script" implementationClass="org.jetbrains.kotlin.idea.core.script.KotlinGradleScriptFileTypeSchemaDetector"/>
|
<fileTypeUsageSchemaDescriptor schema="Gradle Script" implementationClass="org.jetbrains.kotlin.idea.core.script.KotlinGradleScriptFileTypeSchemaDetector"/>
|
||||||
|
|||||||
@@ -6,38 +6,38 @@
|
|||||||
package org.jetbrains.kotlin.idea.formatter
|
package org.jetbrains.kotlin.idea.formatter
|
||||||
|
|
||||||
import com.intellij.application.options.CodeStyle
|
import com.intellij.application.options.CodeStyle
|
||||||
import com.intellij.internal.statistic.beans.UsageDescriptor
|
import com.intellij.internal.statistic.beans.MetricEvent
|
||||||
import com.intellij.internal.statistic.utils.getEnumUsage
|
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.openapi.project.Project
|
||||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager
|
import com.intellij.psi.codeStyle.CodeStyleSettingsManager
|
||||||
import org.jetbrains.kotlin.idea.core.formatter.KotlinCodeStyleSettings
|
import org.jetbrains.kotlin.idea.core.formatter.KotlinCodeStyleSettings
|
||||||
import org.jetbrains.kotlin.idea.formatter.KotlinFormatterUsageCollector.KotlinFormatterKind.*
|
import org.jetbrains.kotlin.idea.formatter.KotlinFormatterUsageCollector.KotlinFormatterKind.*
|
||||||
import org.jetbrains.kotlin.idea.util.isDefaultOfficialCodeStyle
|
import org.jetbrains.kotlin.idea.util.isDefaultOfficialCodeStyle
|
||||||
|
|
||||||
//todo: convert to FUS?
|
class KotlinFormatterUsageCollector : ProjectUsagesCollector() {
|
||||||
class KotlinFormatterUsageCollector {
|
|
||||||
fun getProjectUsages(project: Project): Set<UsageDescriptor> {
|
override fun getGroupId() = "kotlin.ide.formatter"
|
||||||
|
override fun getVersion(): Int = 1
|
||||||
|
|
||||||
|
override fun getMetrics(project: Project): Set<MetricEvent> {
|
||||||
val usedFormatter = getKotlinFormatterKind(project)
|
val usedFormatter = getKotlinFormatterKind(project)
|
||||||
|
|
||||||
val settings = CodeStyle.getSettings(project)
|
val settings = CodeStyle.getSettings(project)
|
||||||
val kotlinCommonSettings = settings.kotlinCommonSettings
|
val kotlinCommonSettings = settings.kotlinCommonSettings
|
||||||
val kotlinCustomSettings = settings.kotlinCustomSettings
|
val kotlinCustomSettings = settings.kotlinCustomSettings
|
||||||
|
|
||||||
|
val data = FeatureUsageData()
|
||||||
|
.addData("kind", usedFormatter.name)
|
||||||
|
.addData("defaults", kotlinCustomSettings.CODE_STYLE_DEFAULTS ?: kotlinCommonSettings.CODE_STYLE_DEFAULTS)
|
||||||
|
|
||||||
return setOf(
|
return setOf(
|
||||||
getEnumUsage("kotlin.formatter.kind", usedFormatter),
|
newMetric("settings", data)
|
||||||
getEnumStringPropertyUsage(
|
|
||||||
"kotlin.formatter.defaults",
|
|
||||||
kotlinCustomSettings.CODE_STYLE_DEFAULTS ?: kotlinCommonSettings.CODE_STYLE_DEFAULTS
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getEnumStringPropertyUsage(key: String, value: String?): UsageDescriptor {
|
|
||||||
return UsageDescriptor(key + "." + value.toString().toLowerCase(java.util.Locale.ENGLISH), 1)
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private const val GROUP_ID = "kotlin.formatter"
|
|
||||||
|
|
||||||
private val KOTLIN_DEFAULT_COMMON = KotlinLanguageCodeStyleSettingsProvider().defaultCommonSettings
|
private val KOTLIN_DEFAULT_COMMON = KotlinLanguageCodeStyleSettingsProvider().defaultCommonSettings
|
||||||
.also { KotlinStyleGuideCodeStyle.applyToCommonSettings(it) }
|
.also { KotlinStyleGuideCodeStyle.applyToCommonSettings(it) }
|
||||||
|
|||||||
Reference in New Issue
Block a user