From dd85dcc1c730be123a9514ec99bf5ce3898d21eb Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Mon, 23 Sep 2019 12:46:31 +0300 Subject: [PATCH] 193: Do not modify registry property since the default changed in 193 Review in IDEA: IDEA-CR-51492 --- .../git/KotlinExplicitMovementProvider.kt.193 | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 idea/idea-git/src/org/jetbrains/kotlin/git/KotlinExplicitMovementProvider.kt.193 diff --git a/idea/idea-git/src/org/jetbrains/kotlin/git/KotlinExplicitMovementProvider.kt.193 b/idea/idea-git/src/org/jetbrains/kotlin/git/KotlinExplicitMovementProvider.kt.193 new file mode 100644 index 00000000000..3b6520e0331 --- /dev/null +++ b/idea/idea-git/src/org/jetbrains/kotlin/git/KotlinExplicitMovementProvider.kt.193 @@ -0,0 +1,50 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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.git + +import com.intellij.openapi.project.Project +import com.intellij.openapi.util.Couple +import com.intellij.openapi.vcs.FilePath +import git4idea.checkin.GitCheckinExplicitMovementProvider +import org.jetbrains.kotlin.idea.actions.pathBeforeJ2K +import java.util.* + +class KotlinExplicitMovementProvider : GitCheckinExplicitMovementProvider() { + override fun isEnabled(project: Project): Boolean { + return true + } + + override fun getDescription(): String { + return "Extra commit for .java > .kt renames" + } + + override fun getCommitMessage(oldCommitMessage: String): String { + return "Rename .java to .kt" + } + + override fun collectExplicitMovements( + project: Project, + beforePaths: List, + afterPaths: List + ): Collection { + val movedChanges = ArrayList() + for (after in afterPaths) { + val pathBeforeJ2K = after.virtualFile?.pathBeforeJ2K + if (pathBeforeJ2K != null) { + val before = beforePaths.firstOrNull { it.path == pathBeforeJ2K } + if (before != null) { + movedChanges.add(Movement(before, after)) + } + } + } + + return movedChanges + } + + override fun afterMovementsCommitted(project: Project, movedPaths: MutableList>) { + movedPaths.forEach { it.second.virtualFile?.pathBeforeJ2K = null } + } +}