mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
vcs: convert usages collector to Kotlin
GitOrigin-RevId: 9e4e5941837407ca6fdb212cdbc3f76aaf3c5b4a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
687081a97b
commit
5390a9352d
+56
-70
@@ -1,88 +1,74 @@
|
||||
// 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 com.intellij.openapi.vcs.statistics;
|
||||
package com.intellij.openapi.vcs.statistics
|
||||
|
||||
import com.intellij.internal.statistic.beans.UsageDescriptor;
|
||||
import com.intellij.internal.statistic.service.fus.collectors.ProjectUsagesCollector;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vcs.VcsConfiguration;
|
||||
import com.intellij.openapi.vcs.VcsShowConfirmationOption;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import com.intellij.internal.statistic.beans.UsageDescriptor
|
||||
import com.intellij.internal.statistic.service.fus.collectors.ProjectUsagesCollector
|
||||
import com.intellij.internal.statistic.utils.addIfDiffers
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.vcs.VcsConfiguration
|
||||
import com.intellij.openapi.vcs.VcsShowConfirmationOption
|
||||
import java.util.*
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
class VcsOptionsUsagesCollector : ProjectUsagesCollector() {
|
||||
override fun getGroupId(): String = "vcs.options"
|
||||
|
||||
import static com.intellij.internal.statistic.utils.StatisticsUtilKt.addIfDiffers;
|
||||
override fun getUsages(project: Project): Set<UsageDescriptor> = getDescriptors(project)
|
||||
|
||||
public class VcsOptionsUsagesCollector extends ProjectUsagesCollector {
|
||||
@Override
|
||||
@NotNull
|
||||
public String getGroupId() { return "vcs.options"; }
|
||||
companion object {
|
||||
private fun getDescriptors(project: Project): Set<UsageDescriptor> {
|
||||
val set = HashSet<UsageDescriptor>()
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public Set<UsageDescriptor> getUsages(@NotNull Project project) {
|
||||
return getDescriptors(project);
|
||||
}
|
||||
val conf = VcsConfiguration.getInstance(project)
|
||||
val confDefault = VcsConfiguration()
|
||||
|
||||
@NotNull
|
||||
public static Set<UsageDescriptor> getDescriptors(@NotNull Project project) {
|
||||
Set<UsageDescriptor> set = new HashSet<>();
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.OFFER_MOVE_TO_ANOTHER_CHANGELIST_ON_PARTIAL_COMMIT }, "offer.move.partially.committed")
|
||||
addConfirmationIfDiffers(set, conf, confDefault, { it.MOVE_TO_FAILED_COMMIT_CHANGELIST }, "offer.move.failed.committed")
|
||||
addConfirmationIfDiffers(set, conf, confDefault, { it.REMOVE_EMPTY_INACTIVE_CHANGELISTS }, "offer.remove.empty.changelist")
|
||||
|
||||
VcsConfiguration conf = VcsConfiguration.getInstance(project);
|
||||
VcsConfiguration confDefault = new VcsConfiguration();
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.MAKE_NEW_CHANGELIST_ACTIVE }, "changelist.make.new.active")
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.PRESELECT_EXISTING_CHANGELIST }, "changelist.preselect.existing")
|
||||
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.OFFER_MOVE_TO_ANOTHER_CHANGELIST_ON_PARTIAL_COMMIT, "offer.move.partially.committed");
|
||||
addConfirmationIfDiffers(set, conf, confDefault, s -> s.MOVE_TO_FAILED_COMMIT_CHANGELIST, "offer.move.failed.committed");
|
||||
addConfirmationIfDiffers(set, conf, confDefault, s -> s.REMOVE_EMPTY_INACTIVE_CHANGELISTS, "offer.remove.empty.changelist");
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.PERFORM_UPDATE_IN_BACKGROUND }, "perform.update.in.background")
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.PERFORM_COMMIT_IN_BACKGROUND }, "perform.commit.in.background")
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.PERFORM_EDIT_IN_BACKGROUND }, "perform.edit.in.background")
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.PERFORM_CHECKOUT_IN_BACKGROUND }, "perform.checkout.in.background")
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.PERFORM_ADD_REMOVE_IN_BACKGROUND }, "perform.add_remove.in.background")
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.PERFORM_ROLLBACK_IN_BACKGROUND }, "perform.rollback.in.background")
|
||||
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.MAKE_NEW_CHANGELIST_ACTIVE, "changelist.make.new.active");
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.PRESELECT_EXISTING_CHANGELIST, "changelist.preselect.existing");
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT }, "commit.before.check.code.smell")
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.CHECK_CODE_CLEANUP_BEFORE_PROJECT_COMMIT }, "commit.before.check.code.cleanup")
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.CHECK_NEW_TODO }, "commit.before.check.todo")
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.FORCE_NON_EMPTY_COMMENT }, "commit.before.check.non.empty.comment")
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT }, "commit.before.optimize.imports")
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.REFORMAT_BEFORE_PROJECT_COMMIT }, "commit.before.reformat.project")
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.REARRANGE_BEFORE_PROJECT_COMMIT }, "commit.before.rearrange")
|
||||
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.PERFORM_UPDATE_IN_BACKGROUND, "perform.update.in.background");
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.PERFORM_COMMIT_IN_BACKGROUND, "perform.commit.in.background");
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.PERFORM_EDIT_IN_BACKGROUND, "perform.edit.in.background");
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.PERFORM_CHECKOUT_IN_BACKGROUND, "perform.checkout.in.background");
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.PERFORM_ADD_REMOVE_IN_BACKGROUND, "perform.add_remove.in.background");
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.PERFORM_ROLLBACK_IN_BACKGROUND, "perform.rollback.in.background");
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.CLEAR_INITIAL_COMMIT_MESSAGE }, "commit.clear.initial.comment")
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.USE_COMMIT_MESSAGE_MARGIN }, "commit.use.right.margin")
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.SHOW_UNVERSIONED_FILES_WHILE_COMMIT }, "commit.show.unversioned")
|
||||
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT, "commit.before.check.code.smell");
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.CHECK_CODE_CLEANUP_BEFORE_PROJECT_COMMIT, "commit.before.check.code.cleanup");
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.CHECK_NEW_TODO, "commit.before.check.todo");
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.FORCE_NON_EMPTY_COMMENT, "commit.before.check.non.empty.comment");
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT, "commit.before.optimize.imports");
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.REFORMAT_BEFORE_PROJECT_COMMIT, "commit.before.reformat.project");
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.REARRANGE_BEFORE_PROJECT_COMMIT, "commit.before.rearrange");
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.LOCAL_CHANGES_DETAILS_PREVIEW_SHOWN }, "show.changes.preview")
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.INCLUDE_TEXT_INTO_SHELF }, "include.text.into.shelf")
|
||||
addBoolIfDiffers(set, conf, confDefault, { it.CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND }, "check.conflicts.in.background")
|
||||
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.CLEAR_INITIAL_COMMIT_MESSAGE, "commit.clear.initial.comment");
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.USE_COMMIT_MESSAGE_MARGIN, "commit.use.right.margin");
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.SHOW_UNVERSIONED_FILES_WHILE_COMMIT, "commit.show.unversioned");
|
||||
return set
|
||||
}
|
||||
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.LOCAL_CHANGES_DETAILS_PREVIEW_SHOWN, "show.changes.preview");
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.INCLUDE_TEXT_INTO_SHELF, "include.text.into.shelf");
|
||||
addBoolIfDiffers(set, conf, confDefault, s -> s.CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND, "check.conflicts.in.background");
|
||||
private fun <T> addBoolIfDiffers(set: MutableSet<in UsageDescriptor>, settingsBean: T, defaultSettingsBean: T,
|
||||
valueFunction: Function1<T, Boolean>, featureId: String) {
|
||||
addIfDiffers(set, settingsBean, defaultSettingsBean, valueFunction) { if (it) featureId else "$featureId.disabled" }
|
||||
}
|
||||
|
||||
return set;
|
||||
}
|
||||
|
||||
private static <T> void addBoolIfDiffers(Set<? super UsageDescriptor> set, T settingsBean, T defaultSettingsBean,
|
||||
Function1<T, Boolean> valueFunction, String featureId) {
|
||||
addIfDiffers(set, settingsBean, defaultSettingsBean, valueFunction, (it) -> it ? featureId : featureId + ".disabled");
|
||||
}
|
||||
|
||||
private static <T> void addConfirmationIfDiffers(Set<? super UsageDescriptor> set, T settingsBean, T defaultSettingsBean,
|
||||
Function1<T, VcsShowConfirmationOption.Value> valueFunction, String featureId) {
|
||||
addIfDiffers(set, settingsBean, defaultSettingsBean, valueFunction, (it) -> {
|
||||
switch (it) {
|
||||
case SHOW_CONFIRMATION:
|
||||
return featureId + ".ask";
|
||||
case DO_NOTHING_SILENTLY:
|
||||
return featureId + ".disabled";
|
||||
case DO_ACTION_SILENTLY:
|
||||
return featureId + ".silently";
|
||||
default:
|
||||
return featureId + ".unknown";
|
||||
private fun <T> addConfirmationIfDiffers(set: MutableSet<in UsageDescriptor>, settingsBean: T, defaultSettingsBean: T,
|
||||
valueFunction: Function1<T, VcsShowConfirmationOption.Value>, featureId: String) {
|
||||
addIfDiffers(set, settingsBean, defaultSettingsBean, valueFunction) {
|
||||
when (it) {
|
||||
VcsShowConfirmationOption.Value.SHOW_CONFIRMATION -> return@addIfDiffers "$featureId.ask"
|
||||
VcsShowConfirmationOption.Value.DO_NOTHING_SILENTLY -> return@addIfDiffers "$featureId.disabled"
|
||||
VcsShowConfirmationOption.Value.DO_ACTION_SILENTLY -> return@addIfDiffers "$featureId.silently"
|
||||
else -> return@addIfDiffers "$featureId.unknown"
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user