Implement statistics for the new API for intellij 191

This commit is contained in:
Vadim Brilyantov
2019-01-30 17:07:05 +03:00
parent 495030ad9b
commit 032a784d0b
22 changed files with 95 additions and 158 deletions
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.idea.configuration
import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.externalSystem.model.DataNode
import com.intellij.openapi.externalSystem.model.ProjectKeys
import com.intellij.openapi.externalSystem.model.project.ExternalSystemSourceType
@@ -36,8 +37,9 @@ import org.jetbrains.kotlin.idea.inspections.gradle.getDependencyModules
import org.jetbrains.kotlin.idea.util.CopyableDataNodeUserDataProperty
import org.jetbrains.kotlin.idea.util.DataNodeUserDataProperty
import org.jetbrains.kotlin.idea.util.NotNullableCopyableDataNodeUserDataProperty
import org.jetbrains.kotlin.idea.util.PsiPrecedences
import org.jetbrains.kotlin.statistics.KotlinEventTrigger
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
import org.jetbrains.kotlin.statistics.KotlinTargetTrigger
import org.jetbrains.plugins.gradle.model.ExternalProjectDependency
import org.jetbrains.plugins.gradle.model.ExternalSourceSet
import org.jetbrains.plugins.gradle.model.FileCollectionDependency
@@ -47,8 +49,6 @@ import org.jetbrains.plugins.gradle.service.project.GradleProjectResolver
import java.io.File
import java.util.*
import kotlin.collections.HashMap
import com.intellij.openapi.diagnostic.Logger
import org.jetbrains.kotlin.idea.util.PsiPrecedences
var DataNode<ModuleData>.isResolved
by NotNullableCopyableDataNodeUserDataProperty(Key.create<Boolean>("IS_RESOLVED"), false)
@@ -200,7 +200,7 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension()
if (mppModel != null) {
mppModel.targets.filterNot { it.name == "metadata" }.forEach { target ->
KotlinStatisticsTrigger.trigger(
KotlinTargetTrigger::class.java,
KotlinEventTrigger.KotlinGradleTargetTrigger,
"MPP.${target.platform.id + (target.presetName?.let { ".$it"} ?: "")}"
)
}
@@ -224,7 +224,7 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension()
ideModule.platformPluginId = gradleModel.platformPluginId
KotlinStatisticsTrigger.trigger(
KotlinTargetTrigger::class.java,
KotlinEventTrigger.KotlinGradleTargetTrigger,
gradleModel.kotlinTarget ?: "unknown"
)
@@ -9,13 +9,13 @@ import com.intellij.ide.scratch.ScratchFileCreationHelper
import com.intellij.openapi.actionSystem.DataContext
import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.parsing.KotlinParserDefinition
import org.jetbrains.kotlin.statistics.KotlinIdeNewFileTemplateTrigger
import org.jetbrains.kotlin.statistics.KotlinEventTrigger
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
class KtScratchFileCreationHelper: ScratchFileCreationHelper() {
override fun prepareText(project: Project, context: Context, dataContext: DataContext): Boolean {
KotlinStatisticsTrigger.trigger(KotlinIdeNewFileTemplateTrigger::class.java, "Kotlin Scratch")
KotlinStatisticsTrigger.trigger(KotlinEventTrigger.KotlinIdeNewFileTemplateTrigger, "Kotlin Scratch")
context.fileExtension = KotlinParserDefinition.STD_SCRIPT_SUFFIX
-7
View File
@@ -72,11 +72,4 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
<nonBlockingContextChecker implementation="org.jetbrains.kotlin.idea.inspections.blockingCallsDetection.CoroutineNonBlockingContextChecker"/>
</extensions>
<extensions defaultExtensionNs="com.intellij">
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinTargetTrigger"/>
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinMavenTargetTrigger"/>
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinJPSTargetTrigger"/>
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinIdeRefactoringTrigger"/>
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinIdeNewFileTemplateTrigger"/>
</extensions>
</idea-plugin>
+9
View File
@@ -71,4 +71,13 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
<extensions defaultExtensionNs="com.intellij.codeInsight">
<nonBlockingContextChecker implementation="org.jetbrains.kotlin.idea.inspections.blockingCallsDetection.CoroutineNonBlockingContextChecker"/>
</extensions>
<extensions defaultExtensionNs="com.intellij">
<statistics.counterUsagesCollector group_id="kotlin.gradle.target" version="1"/>
<statistics.counterUsagesCollector group_id="kotlin.maven.target" version="1"/>
<statistics.counterUsagesCollector group_id="kotlin.jps.target" version="1"/>
<statistics.counterUsagesCollector group_id="kotlin.gradle.library" version="1"/>
<statistics.counterUsagesCollector group_id="kotlin.ide.action.refactoring" version="1"/>
<statistics.counterUsagesCollector group_id="kotlin.ide.newFileTempl" version="1"/>
</extensions>
</idea-plugin>
-8
View File
@@ -71,12 +71,4 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
<extensions defaultExtensionNs="com.intellij.jvm">
<declarationSearcher language="kotlin" implementationClass="org.jetbrains.kotlin.idea.jvm.KotlinDeclarationSearcher"/>
</extensions>
<extensions defaultExtensionNs="com.intellij">
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinTargetTrigger"/>
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinMavenTargetTrigger"/>
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinJPSTargetTrigger"/>
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinIdeRefactoringTrigger"/>
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinIdeNewFileTemplateTrigger"/>
</extensions>
</idea-plugin>
-8
View File
@@ -71,12 +71,4 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
<extensions defaultExtensionNs="com.intellij.jvm">
<declarationSearcher language="kotlin" implementationClass="org.jetbrains.kotlin.idea.jvm.KotlinDeclarationSearcher"/>
</extensions>
<extensions defaultExtensionNs="com.intellij">
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinTargetTrigger"/>
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinMavenTargetTrigger"/>
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinJPSTargetTrigger"/>
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinIdeRefactoringTrigger"/>
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinIdeNewFileTemplateTrigger"/>
</extensions>
</idea-plugin>
@@ -47,8 +47,8 @@ import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.psi.KtClass
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi.KtNamedDeclaration
import org.jetbrains.kotlin.statistics.KotlinEventTrigger
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
import org.jetbrains.kotlin.statistics.KotlinIdeNewFileTemplateTrigger
import java.util.*
class NewKotlinFileAction : CreateFileFromTemplateAction(
@@ -194,7 +194,7 @@ class NewKotlinFileAction : CreateFileFromTemplateAction(
private val FQNAME_SEPARATORS = charArrayOf('/', '\\', '.')
fun createFileFromTemplateWithStat(name: String, template: FileTemplate, dir: PsiDirectory): PsiFile? {
KotlinStatisticsTrigger.trigger(KotlinIdeNewFileTemplateTrigger::class.java, template.name)
KotlinStatisticsTrigger.trigger(KotlinEventTrigger.KotlinIdeNewFileTemplateTrigger, template.name)
return createFileFromTemplate(name, template, dir)
}
@@ -15,8 +15,7 @@ import org.jetbrains.kotlin.platform.impl.isCommon
import org.jetbrains.kotlin.platform.impl.isJavaScript
import org.jetbrains.kotlin.platform.impl.isJvm
import org.jetbrains.kotlin.platform.impl.isKotlinNative
import org.jetbrains.kotlin.statistics.KotlinJPSTargetTrigger
import org.jetbrains.kotlin.statistics.KotlinMavenTargetTrigger
import org.jetbrains.kotlin.statistics.KotlinEventTrigger
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
class TargetRetrieveActivity : StartupActivity {
@@ -34,12 +33,12 @@ class TargetRetrieveActivity : StartupActivity {
when {
buildSystem == BuildSystemType.JPS ->
KotlinStatisticsTrigger.trigger(
KotlinJPSTargetTrigger::class.java,
KotlinEventTrigger.KotlinJPSTargetTrigger,
platform
)
buildSystem.toString().toLowerCase().contains("maven") ->
KotlinStatisticsTrigger.trigger(
KotlinMavenTargetTrigger::class.java,
KotlinEventTrigger.KotlinMavenTargetTrigger,
platform
)
}
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.idea.refactoring.pullUp
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
import com.intellij.openapi.actionSystem.DataContext
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.editor.Editor
@@ -31,8 +30,8 @@ import com.intellij.refactoring.util.CommonRefactoringUtil
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.idea.caches.resolve.unsafeResolveToDescriptor
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.idea.refactoring.canRefactor
import org.jetbrains.kotlin.idea.refactoring.AbstractPullPushMembersHandler
import org.jetbrains.kotlin.idea.refactoring.canRefactor
import org.jetbrains.kotlin.idea.refactoring.memberInfo.KotlinMemberInfo
import org.jetbrains.kotlin.idea.refactoring.memberInfo.KotlinMemberInfoStorage
import org.jetbrains.kotlin.idea.refactoring.memberInfo.qualifiedClassNameForRendering
@@ -40,7 +39,8 @@ import org.jetbrains.kotlin.psi.KtClass
import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.psi.KtNamedDeclaration
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
import org.jetbrains.kotlin.statistics.KotlinIdeRefactoringTrigger
import org.jetbrains.kotlin.statistics.KotlinEventTrigger
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
import org.jetbrains.kotlin.types.typeUtil.supertypes
class KotlinPullUpHandler : AbstractPullPushMembersHandler(
@@ -118,12 +118,12 @@ class KotlinPullUpHandler : AbstractPullPushMembersHandler(
override fun invoke(project: Project, elements: Array<out PsiElement>, dataContext: DataContext?) {
super.invoke(project, elements, dataContext)
KotlinStatisticsTrigger.trigger(KotlinIdeRefactoringTrigger::class.java, this::class.java.name)
KotlinStatisticsTrigger.trigger(KotlinEventTrigger.KotlinIdeRefactoringTrigger, this::class.java.name)
}
override fun invoke(project: Project, editor: Editor, file: PsiFile, dataContext: DataContext?) {
super.invoke(project, editor, file, dataContext)
KotlinStatisticsTrigger.trigger(KotlinIdeRefactoringTrigger::class.java, this::class.java.name)
KotlinStatisticsTrigger.trigger(KotlinEventTrigger.KotlinIdeRefactoringTrigger, this::class.java.name)
}
}
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.idea.refactoring.pushDown
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
import com.intellij.openapi.actionSystem.DataContext
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.editor.Editor
@@ -37,7 +36,8 @@ import org.jetbrains.kotlin.psi.KtClass
import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.psi.KtNamedDeclaration
import org.jetbrains.kotlin.psi.KtParameter
import org.jetbrains.kotlin.statistics.KotlinIdeRefactoringTrigger
import org.jetbrains.kotlin.statistics.KotlinEventTrigger
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
val PUSH_MEMBERS_DOWN = "Push Members Down"
@@ -91,11 +91,11 @@ class KotlinPushDownHandler : AbstractPullPushMembersHandler(
override fun invoke(project: Project, elements: Array<out PsiElement>, dataContext: DataContext?) {
super.invoke(project, elements, dataContext)
KotlinStatisticsTrigger.trigger(KotlinIdeRefactoringTrigger::class.java, this::class.java.name)
KotlinStatisticsTrigger.trigger(KotlinEventTrigger.KotlinIdeRefactoringTrigger, this::class.java.name)
}
override fun invoke(project: Project, editor: Editor, file: PsiFile, dataContext: DataContext?) {
super.invoke(project, editor, file, dataContext)
KotlinStatisticsTrigger.trigger(KotlinIdeRefactoringTrigger::class.java, this::class.java.name)
KotlinStatisticsTrigger.trigger(KotlinEventTrigger.KotlinIdeRefactoringTrigger, this::class.java.name)
}
}
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.idea.refactoring.rename
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
import com.intellij.openapi.actionSystem.DataContext
import com.intellij.openapi.command.impl.StartMarkAction
import com.intellij.openapi.editor.Editor
@@ -33,7 +32,8 @@ import org.jetbrains.kotlin.idea.references.mainReference
import org.jetbrains.kotlin.psi.KtPsiUtil
import org.jetbrains.kotlin.psi.KtSimpleNameExpression
import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
import org.jetbrains.kotlin.statistics.KotlinIdeRefactoringTrigger
import org.jetbrains.kotlin.statistics.KotlinEventTrigger
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
class JavaMemberByKotlinReferenceInplaceRenameHandler : MemberInplaceRenameHandler() {
class Renamer(
@@ -61,12 +61,12 @@ class JavaMemberByKotlinReferenceInplaceRenameHandler : MemberInplaceRenameHandl
override fun invoke(project: Project, elements: Array<out PsiElement>, dataContext: DataContext) {
super.invoke(project, elements, dataContext)
KotlinStatisticsTrigger.trigger(KotlinIdeRefactoringTrigger::class.java, this::class.java.name)
KotlinStatisticsTrigger.trigger(KotlinEventTrigger.KotlinIdeRefactoringTrigger, this::class.java.name)
}
override fun invoke(project: Project, editor: Editor?, file: PsiFile?, dataContext: DataContext?) {
super.invoke(project, editor, file, dataContext)
KotlinStatisticsTrigger.trigger(KotlinIdeRefactoringTrigger::class.java, this::class.java.name)
KotlinStatisticsTrigger.trigger(KotlinEventTrigger.KotlinIdeRefactoringTrigger, this::class.java.name)
}
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.idea.refactoring.rename
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiMethod
import com.intellij.psi.PsiReference
@@ -15,7 +14,8 @@ import org.jetbrains.kotlin.asJava.elements.KtLightMethod
import org.jetbrains.kotlin.idea.references.SyntheticPropertyAccessorReference
import org.jetbrains.kotlin.load.java.JvmAbi
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.statistics.KotlinIdeRefactoringTrigger
import org.jetbrains.kotlin.statistics.KotlinEventTrigger
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
import org.jetbrains.kotlin.synthetic.SyntheticJavaPropertyDescriptor
import org.jetbrains.kotlin.utils.ifEmpty
@@ -28,7 +28,7 @@ class KotlinAwareJavaGetterRenameProcessor : RenameJavaMethodProcessor() {
val propertyName = SyntheticJavaPropertyDescriptor.propertyNameByGetMethodName(Name.identifier(getter.name)) ?: return getterReferences
val setterName = JvmAbi.setterName(propertyName.asString())
val containingClass = getter.containingClass ?: return getterReferences
KotlinStatisticsTrigger.trigger(KotlinIdeRefactoringTrigger::class.java, this::class.java.name)
KotlinStatisticsTrigger.trigger(KotlinEventTrigger.KotlinIdeRefactoringTrigger, this::class.java.name)
val setterReferences = containingClass
.findMethodsByName(setterName, true)
.filter { it.parameters.size == 1 && it.returnType == PsiType.VOID }
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.idea.refactoring.rename
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
import com.intellij.openapi.actionSystem.DataContext
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.project.Project
@@ -25,18 +24,19 @@ import com.intellij.psi.PsiFile
import com.intellij.refactoring.rename.DirectoryAsPackageRenameHandler
import org.jetbrains.kotlin.psi.psiUtil.isIdentifier
import org.jetbrains.kotlin.psi.psiUtil.quoteIfNeeded
import org.jetbrains.kotlin.statistics.KotlinIdeRefactoringTrigger
import org.jetbrains.kotlin.statistics.KotlinEventTrigger
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
class KotlinDirectoryAsPackageRenameHandler : DirectoryAsPackageRenameHandler() {
override fun isIdentifier(name: String, project: Project): Boolean = name.quoteIfNeeded().isIdentifier()
override fun invoke(project: Project, elements: Array<out PsiElement>, dataContext: DataContext?) {
super.invoke(project, elements, dataContext)
KotlinStatisticsTrigger.trigger(KotlinIdeRefactoringTrigger::class.java, this.javaClass.simpleName)
KotlinStatisticsTrigger.trigger(KotlinEventTrigger.KotlinIdeRefactoringTrigger, this.javaClass.simpleName)
}
override fun invoke(project: Project, editor: Editor?, file: PsiFile?, dataContext: DataContext?) {
super.invoke(project, editor, file, dataContext)
KotlinStatisticsTrigger.trigger(KotlinIdeRefactoringTrigger::class.java, this.javaClass.simpleName)
KotlinStatisticsTrigger.trigger(KotlinEventTrigger.KotlinIdeRefactoringTrigger, this.javaClass.simpleName)
}
}
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.idea.refactoring.rename
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
import com.intellij.openapi.fileTypes.FileTypeManager
import com.intellij.openapi.module.ModuleUtilCore
import com.intellij.psi.JavaPsiFacade
@@ -31,7 +30,8 @@ import org.jetbrains.kotlin.idea.KotlinFileType
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.statistics.KotlinIdeRefactoringTrigger
import org.jetbrains.kotlin.statistics.KotlinEventTrigger
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
class RenameKotlinFileProcessor : RenamePsiFileProcessor() {
class FileRenamingPsiClassWrapper(
@@ -69,7 +69,7 @@ class RenameKotlinFileProcessor : RenamePsiFileProcessor() {
override fun findReferences(element: PsiElement): MutableCollection<PsiReference> {
return super.findReferences(element).also {
KotlinStatisticsTrigger.trigger(KotlinIdeRefactoringTrigger::class.java, this::class.java.name)
KotlinStatisticsTrigger.trigger(KotlinEventTrigger.KotlinIdeRefactoringTrigger, this::class.java.name)
}
}
}
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.idea.KotlinFileType
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.statistics.KotlinIdeRefactoringTrigger
import org.jetbrains.kotlin.statistics.KotlinEventTrigger
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
class RenameKotlinFileProcessor : RenamePsiFileProcessor() {
@@ -68,7 +68,7 @@ class RenameKotlinFileProcessor : RenamePsiFileProcessor() {
}
override fun findReferences(element: PsiElement): MutableCollection<PsiReference> {
return super.findReferences(element).also {
KotlinStatisticsTrigger.trigger(KotlinIdeRefactoringTrigger::class.java, this::class.java.name)
KotlinStatisticsTrigger.trigger(KotlinEventTrigger.KotlinIdeRefactoringTrigger, this::class.java.name)
}
}
}
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.idea.refactoring.rename
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
import com.intellij.openapi.util.Key
import com.intellij.psi.*
import com.intellij.psi.search.SearchScope
@@ -47,7 +46,8 @@ import org.jetbrains.kotlin.psi.psiUtil.isIdentifier
import org.jetbrains.kotlin.psi.psiUtil.parents
import org.jetbrains.kotlin.psi.psiUtil.quoteIfNeeded
import org.jetbrains.kotlin.resolve.ImportPath
import org.jetbrains.kotlin.statistics.KotlinIdeRefactoringTrigger
import org.jetbrains.kotlin.statistics.KotlinEventTrigger
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
import java.util.ArrayList
import kotlin.collections.*
@@ -69,7 +69,7 @@ abstract class RenameKotlinPsiProcessor : RenamePsiElementProcessor() {
override fun canProcessElement(element: PsiElement): Boolean = element is KtNamedDeclaration
override fun findReferences(element: PsiElement): Collection<PsiReference> {
KotlinStatisticsTrigger.trigger(KotlinIdeRefactoringTrigger::class.java, this.javaClass.simpleName)
KotlinStatisticsTrigger.trigger(KotlinEventTrigger.KotlinIdeRefactoringTrigger, this.javaClass.simpleName)
val searchParameters = KotlinReferencesSearchParameters(
element,
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.idea.refactoring.rename
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
import com.intellij.openapi.actionSystem.CommonDataKeys
import com.intellij.openapi.actionSystem.DataContext
import com.intellij.openapi.editor.Editor
@@ -17,7 +16,8 @@ import org.jetbrains.kotlin.idea.caches.resolve.resolveToCall
import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils
import org.jetbrains.kotlin.psi.KtSimpleNameExpression
import org.jetbrains.kotlin.resolve.calls.tower.isSynthesized
import org.jetbrains.kotlin.statistics.KotlinIdeRefactoringTrigger
import org.jetbrains.kotlin.statistics.KotlinEventTrigger
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
class RenameSyntheticDeclarationByReferenceHandler : RenameHandler {
override fun isAvailableOnDataContext(dataContext: DataContext): Boolean {
@@ -31,7 +31,7 @@ class RenameSyntheticDeclarationByReferenceHandler : RenameHandler {
override fun invoke(project: Project, editor: Editor, file: PsiFile, dataContext: DataContext?) {
CodeInsightUtils.showErrorHint(project, editor, "Rename is not applicable to synthetic declaration", "Rename", null)
KotlinStatisticsTrigger.trigger(KotlinIdeRefactoringTrigger::class.java, this::class.java.name)
KotlinStatisticsTrigger.trigger(KotlinEventTrigger.KotlinIdeRefactoringTrigger, this::class.java.name)
}
override fun invoke(project: Project, elements: Array<out PsiElement>, dataContext: DataContext?) {
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.idea.caches.resolve.resolveToCall
import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils
import org.jetbrains.kotlin.psi.KtSimpleNameExpression
import org.jetbrains.kotlin.resolve.calls.tower.isSynthesized
import org.jetbrains.kotlin.statistics.KotlinIdeRefactoringTrigger
import org.jetbrains.kotlin.statistics.KotlinEventTrigger
class RenameSyntheticDeclarationByReferenceHandler : RenameHandler {
override fun isAvailableOnDataContext(dataContext: DataContext?): Boolean {
@@ -32,7 +32,7 @@ class RenameSyntheticDeclarationByReferenceHandler : RenameHandler {
override fun invoke(project: Project, editor: Editor, file: PsiFile, dataContext: DataContext?) {
CodeInsightUtils.showErrorHint(project, editor, "Rename is not applicable to synthetic declaration", "Rename", null)
KotlinStatisticsTrigger.trigger(KotlinIdeRefactoringTrigger::class.java, this::class.java.name)
KotlinStatisticsTrigger.trigger(KotlinEventTrigger.KotlinIdeRefactoringTrigger, this::class.java.name)
}
override fun invoke(project: Project, elements: Array<out PsiElement>, dataContext: DataContext?) {
@@ -0,0 +1,19 @@
/*
* Copyright 2010-2019 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.statistics
// Note: along with adding a trigger to this enum you sould also add its GROUP_ID to plugin.xml and get it whitelisted
// (see https://confluence.jetbrains.com/display/FUS/IntelliJ+Reporting+API).
enum class KotlinEventTrigger(groupIdSufix: String) {
KotlinGradleTargetTrigger("gradle.target"),
KotlinMavenTargetTrigger("maven.target"),
KotlinJPSTargetTrigger("jps.target"),
KotlinProjectLibraryUsageTrigger("gradle.library"),
KotlinIdeRefactoringTrigger("ide.action.refactoring"),
KotlinIdeNewFileTemplateTrigger("ide.newFileTempl");
val GROUP_ID: String = "kotlin.$groupIdSufix"
}
@@ -5,43 +5,10 @@
package org.jetbrains.kotlin.statistics
import com.intellij.ide.plugins.PluginManager
import com.intellij.internal.statistic.service.fus.collectors.ApplicationUsageTriggerCollector
import com.intellij.internal.statistic.service.fus.collectors.FUSApplicationUsageTrigger
import com.intellij.internal.statistic.service.fus.collectors.FUSUsageContext
import com.intellij.openapi.extensions.PluginId
open class KotlinStatisticsTrigger(private val groupIdSufix: String) : ApplicationUsageTriggerCollector() {
override fun getGroupId() = "statistics.kotlin.$groupIdSufix"
open class KotlinStatisticsTrigger {
companion object {
public fun trigger(clazz: Class<out KotlinStatisticsTrigger>, event: String) {
val plugin = PluginManager.getPlugin(PluginId.getId("org.jetbrains.kotlin"))
val version = plugin?.version ?: "undefined"
FUSApplicationUsageTrigger.getInstance().trigger(clazz, event, FUSUsageContext.create(version))
public fun trigger(trigger: KotlinEventTrigger, event: String) {
// Not whitelisted for 183
}
}
}
open class KotlinIdeStatisticsTrigger(groupIdSufix: String) : KotlinStatisticsTrigger("ide.$groupIdSufix")
open class KotlinGradlePluginStatisticsTrigger(groupIdSufix: String) : KotlinStatisticsTrigger("gradle.$groupIdSufix")
open class KotlinMavenPluginStatisticsTrigger(groupIdSufix: String) : KotlinStatisticsTrigger("maven.$groupIdSufix")
open class KotlinJPSPluginStatisticsTrigger(groupIdSufix: String) : KotlinStatisticsTrigger("jps.$groupIdSufix")
class KotlinVersionTrigger : KotlinGradlePluginStatisticsTrigger("kotlin_version")
class KotlinTargetTrigger : KotlinGradlePluginStatisticsTrigger("target")
class KotlinMavenTargetTrigger : KotlinMavenPluginStatisticsTrigger("target")
class KotlinJPSTargetTrigger : KotlinJPSPluginStatisticsTrigger("target")
class KotlinProjectLibraryUsageTrigger : KotlinGradlePluginStatisticsTrigger("library")
open class KotlinIdeActionTrigger(groupIdSufix: String? = null) : KotlinIdeStatisticsTrigger("action" + (if (groupIdSufix != null) ".$groupIdSufix" else ""))
class KotlinIdeRefactoringTrigger : KotlinIdeActionTrigger("refactoring")
class KotlinIdeNewFileTemplateTrigger : KotlinIdeStatisticsTrigger("newFileTempl")
}
@@ -5,32 +5,10 @@
package org.jetbrains.kotlin.statistics
open class KotlinStatisticsTrigger(private val groupIdSufix: String) {
open class KotlinStatisticsTrigger {
companion object {
public fun trigger(clazz: Class<out KotlinStatisticsTrigger>, event: String) {
// FUS is not working for 182
public fun trigger(trigger: KotlinEventTrigger, event: String) {
// Not whitelisted for 182
}
}
}
open class KotlinIdeStatisticsTrigger(groupIdSufix: String) : KotlinStatisticsTrigger("ide.$groupIdSufix")
open class KotlinGradlePluginStatisticsTrigger(groupIdSufix: String) : KotlinStatisticsTrigger("gradle.$groupIdSufix")
open class KotlinMavenPluginStatisticsTrigger(groupIdSufix: String) : KotlinStatisticsTrigger("maven.$groupIdSufix")
open class KotlinJPSPluginStatisticsTrigger(groupIdSufix: String) : KotlinStatisticsTrigger("jps.$groupIdSufix")
class KotlinVersionTrigger : KotlinGradlePluginStatisticsTrigger("kotlin_version")
class KotlinTargetTrigger : KotlinGradlePluginStatisticsTrigger("target")
class KotlinMavenTargetTrigger : KotlinMavenPluginStatisticsTrigger("target")
class KotlinJPSTargetTrigger : KotlinJPSPluginStatisticsTrigger("target")
class KotlinProjectLibraryUsageTrigger : KotlinGradlePluginStatisticsTrigger("library")
open class KotlinIdeActionTrigger(groupIdSufix: String? = null) : KotlinIdeStatisticsTrigger("action" + (if (groupIdSufix != null) ".$groupIdSufix" else ""))
class KotlinIdeRefactoringTrigger : KotlinIdeActionTrigger("refactoring")
class KotlinIdeNewFileTemplateTrigger : KotlinIdeStatisticsTrigger("newFileTempl")
}
@@ -5,32 +5,20 @@
package org.jetbrains.kotlin.statistics
open class KotlinStatisticsTrigger(private val groupIdSufix: String) {
import com.intellij.internal.statistic.service.fus.collectors.FUCounterUsageLogger;
import com.intellij.internal.statistic.eventLog.FeatureUsageData;
import com.intellij.ide.plugins.PluginManager
import com.intellij.openapi.extensions.PluginId
import com.intellij.internal.statistic.service.fus.collectors.FUSUsageContext
open class KotlinStatisticsTrigger {
companion object {
public fun trigger(clazz: Class<out KotlinStatisticsTrigger>, event: String) {
// FUS is not working for 182
private val VERSION = PluginManager.getPlugin(PluginId.getId("org.jetbrains.kotlin"))?.version ?: "undefined"
public fun trigger(trigger: KotlinEventTrigger, event: String) {
val context = FeatureUsageData().addFeatureContext(FUSUsageContext.create(VERSION));
FUCounterUsageLogger.getInstance().logEvent(trigger.GROUP_ID, key, data);
}
}
}
open class KotlinIdeStatisticsTrigger(groupIdSufix: String) : KotlinStatisticsTrigger("ide.$groupIdSufix")
open class KotlinGradlePluginStatisticsTrigger(groupIdSufix: String) : KotlinStatisticsTrigger("gradle.$groupIdSufix")
open class KotlinMavenPluginStatisticsTrigger(groupIdSufix: String) : KotlinStatisticsTrigger("maven.$groupIdSufix")
open class KotlinJPSPluginStatisticsTrigger(groupIdSufix: String) : KotlinStatisticsTrigger("jps.$groupIdSufix")
class KotlinVersionTrigger : KotlinGradlePluginStatisticsTrigger("kotlin_version")
class KotlinTargetTrigger : KotlinGradlePluginStatisticsTrigger("target")
class KotlinMavenTargetTrigger : KotlinMavenPluginStatisticsTrigger("target")
class KotlinJPSTargetTrigger : KotlinJPSPluginStatisticsTrigger("target")
class KotlinProjectLibraryUsageTrigger : KotlinGradlePluginStatisticsTrigger("library")
open class KotlinIdeActionTrigger(groupIdSufix: String? = null) : KotlinIdeStatisticsTrigger("action" + (if (groupIdSufix != null) ".$groupIdSufix" else ""))
class KotlinIdeRefactoringTrigger : KotlinIdeActionTrigger("refactoring")
class KotlinIdeNewFileTemplateTrigger : KotlinIdeStatisticsTrigger("newFileTempl")
}