From 9a831bf7dd80f6e09ea0cf79ac8a540fe6c88128 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 27 Mar 2018 15:23:21 +0300 Subject: [PATCH] Collect statistics for inlay parameter options --- idea/src/META-INF/plugin.xml | 1 + ...KotlinInlayParameterHintsUsageCollector.kt | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinInlayParameterHintsUsageCollector.kt diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml index 8433620c001..09e4796551f 100644 --- a/idea/src/META-INF/plugin.xml +++ b/idea/src/META-INF/plugin.xml @@ -2795,6 +2795,7 @@ serviceImplementation="org.jetbrains.uast.kotlin.internal.IdeaKotlinUastBindingContextProviderService"/> + diff --git a/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinInlayParameterHintsUsageCollector.kt b/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinInlayParameterHintsUsageCollector.kt new file mode 100644 index 00000000000..56979a2b742 --- /dev/null +++ b/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinInlayParameterHintsUsageCollector.kt @@ -0,0 +1,29 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. 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.parameterInfo + +import com.intellij.codeInsight.hints.InlayParameterHintsExtension +import com.intellij.internal.statistic.UsagesCollector +import com.intellij.internal.statistic.beans.GroupDescriptor +import com.intellij.internal.statistic.beans.UsageDescriptor +import com.intellij.internal.statistic.utils.getBooleanUsage +import org.jetbrains.kotlin.idea.KotlinLanguage + +class KotlinInlayParameterHintsUsageCollector : UsagesCollector() { + override fun getGroupId(): GroupDescriptor = GroupDescriptor.create(GROUP_ID) + + override fun getUsages(): Set { + val provider = InlayParameterHintsExtension.forLanguage(KotlinLanguage.INSTANCE) ?: return emptySet() + + return provider.supportedOptions.mapTo(LinkedHashSet()) { + getBooleanUsage(it.id, it.get()) + } + } + + companion object { + private const val GROUP_ID = "kotlin.hints.inlay" + } +} \ No newline at end of file