Record statistics of terminal usage

This commit is contained in:
Dmitry Trofimov
2018-10-03 05:27:51 +02:00
parent 2ba2a70ac3
commit 4d20a69c0b
3 changed files with 21 additions and 0 deletions
@@ -11,6 +11,8 @@
<applicationService serviceImplementation="org.jetbrains.plugins.terminal.TerminalOptionsProvider"/>
<projectService serviceImplementation="org.jetbrains.plugins.terminal.TerminalProjectOptionsProvider"/>
<statistics.projectUsagesCollector implementation="org.jetbrains.plugins.terminal.TerminalUsageTriggerCollector"/>
</extensions>
<project-components>
@@ -21,6 +21,7 @@ import com.intellij.execution.process.ProcessAdapter;
import com.intellij.execution.process.ProcessEvent;
import com.intellij.execution.process.ProcessHandler;
import com.intellij.execution.process.ProcessWaitFor;
import com.intellij.internal.statistic.service.fus.collectors.FUSUsageContext;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.SystemInfo;
@@ -145,6 +146,7 @@ public class LocalTerminalDirectRunner extends AbstractTerminalRunner<PtyProcess
}
try {
TerminalUsageTriggerCollector.Companion.trigger(myProject, "local.exec", FUSUsageContext.create(FUSUsageContext.getOSNameContextData(), SystemInfo.getOsNameAndVersion(), getShellName(command[0])));
return PtyProcess.exec(command, envs, directory != null
? directory
: TerminalProjectOptionsProvider.Companion.getInstance(myProject).getStartingDirectory());
@@ -0,0 +1,17 @@
// Copyright 2000-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 file.
package org.jetbrains.plugins.terminal
import com.intellij.internal.statistic.service.fus.collectors.FUSProjectUsageTrigger
import com.intellij.internal.statistic.service.fus.collectors.FUSUsageContext
import com.intellij.internal.statistic.service.fus.collectors.ProjectUsageTriggerCollector
import com.intellij.openapi.project.Project
class TerminalUsageTriggerCollector : ProjectUsageTriggerCollector() {
override fun getGroupId(): String = "statistics.terminal"
companion object {
fun trigger(project: Project, featureId: String, context: FUSUsageContext) {
FUSProjectUsageTrigger.getInstance(project).trigger(TerminalUsageTriggerCollector::class.java, featureId, context)
}
}
}