From 7ceb9d9b921bc9bdf0d1bf5a762a554e30d218d0 Mon Sep 17 00:00:00 2001 From: "Ilia.Shulgin" Date: Thu, 17 Apr 2025 14:05:59 +0200 Subject: [PATCH] [dvcs] IJPL-184367 Revert modal commit for Mercurial (cherry picked from commit 84b7ddf6b1c1a6b8192d605d6912a43994d4026f) IJ-MR-160787 GitOrigin-RevId: f65baac94099f647fb0aea2fad1891af65d20d11 --- .../intellij.platform.vcs.dvcs.impl.xml | 4 ++++ .../dvcs/commit/DvcsCommitModeProvider.kt | 9 +++++--- .../intellij.vcs.git.commit.modal.iml | 2 +- .../resources/META-INF/plugin.xml | 21 ++++++++----------- ...roperties => ModalCommitBundle.properties} | 4 ++-- ...Provider.kt => ModalCommitModeProvider.kt} | 4 ++-- ...ener.kt => ModalCommitSettingsListener.kt} | 4 ++-- ...CommitToggler.kt => ModalCommitToggler.kt} | 4 ++-- .../git4idea/resources/intellij.vcs.git.xml | 4 ---- plugins/git4idea/src/git4idea/GitVcs.java | 12 +++-------- .../commit/GitStagingAreaCommitMode.kt | 7 ------- .../hg4idea/src/org/zmlx/hg4idea/HgVcs.java | 7 +++++++ 12 files changed, 38 insertions(+), 44 deletions(-) rename plugins/git4idea/src/git4idea/commit/GitCommitModeProvider.kt => platform/dvcs-impl/src/com/intellij/dvcs/commit/DvcsCommitModeProvider.kt (56%) rename plugins/git-modal-commit/resources/messages/{GitModalCommitBundle.properties => ModalCommitBundle.properties} (51%) rename plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/{GitModalCommitModeProvider.kt => ModalCommitModeProvider.kt} (80%) rename plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/{GitModalCommitSettingsListener.kt => ModalCommitSettingsListener.kt} (79%) rename plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/{GitModalCommitToggler.kt => ModalCommitToggler.kt} (85%) diff --git a/platform/dvcs-impl/resources/intellij.platform.vcs.dvcs.impl.xml b/platform/dvcs-impl/resources/intellij.platform.vcs.dvcs.impl.xml index 35dc1de50399..d8e48656f19b 100644 --- a/platform/dvcs-impl/resources/intellij.platform.vcs.dvcs.impl.xml +++ b/platform/dvcs-impl/resources/intellij.platform.vcs.dvcs.impl.xml @@ -36,6 +36,10 @@ + + diff --git a/plugins/git4idea/src/git4idea/commit/GitCommitModeProvider.kt b/platform/dvcs-impl/src/com/intellij/dvcs/commit/DvcsCommitModeProvider.kt similarity index 56% rename from plugins/git4idea/src/git4idea/commit/GitCommitModeProvider.kt rename to platform/dvcs-impl/src/com/intellij/dvcs/commit/DvcsCommitModeProvider.kt index 8959f7023aab..95615852e2a9 100644 --- a/plugins/git4idea/src/git4idea/commit/GitCommitModeProvider.kt +++ b/platform/dvcs-impl/src/com/intellij/dvcs/commit/DvcsCommitModeProvider.kt @@ -1,16 +1,19 @@ // Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package git4idea.commit +package com.intellij.dvcs.commit import com.intellij.openapi.extensions.ExtensionPointName import com.intellij.vcs.commit.CommitMode import org.jetbrains.annotations.ApiStatus @ApiStatus.Internal -interface GitCommitModeProvider { +interface DvcsCommitModeProvider { fun getCommitMode(): CommitMode? companion object { @JvmField - val EP_NAME: ExtensionPointName = ExtensionPointName("Git4Idea.gitCommitModeProvider") + val EP_NAME: ExtensionPointName = ExtensionPointName("com.intellij.commitModeProvider") + + @JvmStatic + fun compute(): CommitMode? = EP_NAME.computeSafeIfAny { it.getCommitMode() } } } diff --git a/plugins/git-modal-commit/intellij.vcs.git.commit.modal.iml b/plugins/git-modal-commit/intellij.vcs.git.commit.modal.iml index 5615899e8c3d..5c4051f9d1f2 100644 --- a/plugins/git-modal-commit/intellij.vcs.git.commit.modal.iml +++ b/plugins/git-modal-commit/intellij.vcs.git.commit.modal.iml @@ -9,7 +9,6 @@ - @@ -17,5 +16,6 @@ + \ No newline at end of file diff --git a/plugins/git-modal-commit/resources/META-INF/plugin.xml b/plugins/git-modal-commit/resources/META-INF/plugin.xml index e8434bbab87d..0db5a96bb1aa 100644 --- a/plugins/git-modal-commit/resources/META-INF/plugin.xml +++ b/plugins/git-modal-commit/resources/META-INF/plugin.xml @@ -1,10 +1,10 @@ - - Git Modal Commit Interface + + Modal Commit Interface intellij.git.commit.modal Version Controls JetBrains If you prefer the traditional commit workflow, this plugin brings that functionality back @@ -12,22 +12,19 @@ ]]> - + - messages.GitModalCommitBundle - - - - + messages.ModalCommitBundle - - + + + - diff --git a/plugins/git-modal-commit/resources/messages/GitModalCommitBundle.properties b/plugins/git-modal-commit/resources/messages/ModalCommitBundle.properties similarity index 51% rename from plugins/git-modal-commit/resources/messages/GitModalCommitBundle.properties rename to plugins/git-modal-commit/resources/messages/ModalCommitBundle.properties index 7762d820ceeb..9ba0cb1f757b 100644 --- a/plugins/git-modal-commit/resources/messages/GitModalCommitBundle.properties +++ b/plugins/git-modal-commit/resources/messages/ModalCommitBundle.properties @@ -1,2 +1,2 @@ -advanced.settings.git=Version Control. Git -advanced.setting.git.non.modal.commit=Use modal commit interface \ No newline at end of file +advanced.settings.vcs=Version Control +advanced.setting.git.non.modal.commit=Use modal commit interface for Git and Mercurial \ No newline at end of file diff --git a/plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/GitModalCommitModeProvider.kt b/plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/ModalCommitModeProvider.kt similarity index 80% rename from plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/GitModalCommitModeProvider.kt rename to plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/ModalCommitModeProvider.kt index d4cc7ac3da7d..eeb298e44627 100644 --- a/plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/GitModalCommitModeProvider.kt +++ b/plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/ModalCommitModeProvider.kt @@ -1,11 +1,11 @@ // Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.vcs.git.commit.modal +import com.intellij.dvcs.commit.DvcsCommitModeProvider import com.intellij.openapi.options.advanced.AdvancedSettings import com.intellij.vcs.commit.CommitMode -import git4idea.commit.GitCommitModeProvider -internal class GitModalCommitModeProvider : GitCommitModeProvider { +internal class ModalCommitModeProvider : DvcsCommitModeProvider { override fun getCommitMode(): CommitMode? { return if (AdvancedSettings.getBoolean(SETTING_ID)) CommitMode.ModalCommitMode else null } diff --git a/plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/GitModalCommitSettingsListener.kt b/plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/ModalCommitSettingsListener.kt similarity index 79% rename from plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/GitModalCommitSettingsListener.kt rename to plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/ModalCommitSettingsListener.kt index 755c3dbe0ee2..20901abb30ce 100644 --- a/plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/GitModalCommitSettingsListener.kt +++ b/plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/ModalCommitSettingsListener.kt @@ -6,9 +6,9 @@ import com.intellij.openapi.application.runInEdt import com.intellij.openapi.options.advanced.AdvancedSettingsChangeListener import com.intellij.vcs.commit.CommitModeManager -internal class GitModalCommitSettingsListener() : AdvancedSettingsChangeListener { +internal class ModalCommitSettingsListener() : AdvancedSettingsChangeListener { override fun advancedSettingChanged(id: String, oldValue: Any, newValue: Any) { - if (id == GitModalCommitModeProvider.SETTING_ID && oldValue != newValue) { + if (id == ModalCommitModeProvider.SETTING_ID && oldValue != newValue) { runInEdt { ApplicationManager.getApplication().messageBus.syncPublisher(CommitModeManager.SETTINGS).settingsChanged() } diff --git a/plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/GitModalCommitToggler.kt b/plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/ModalCommitToggler.kt similarity index 85% rename from plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/GitModalCommitToggler.kt rename to plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/ModalCommitToggler.kt index 261f62f54c91..c33689ff5c6d 100644 --- a/plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/GitModalCommitToggler.kt +++ b/plugins/git-modal-commit/src/com/intellij/vcs/git/commit/modal/ModalCommitToggler.kt @@ -8,10 +8,10 @@ import com.intellij.openapi.vcs.VcsApplicationSettings import com.intellij.openapi.vcs.impl.VcsInitObject import com.intellij.openapi.vcs.impl.VcsStartupActivity -internal class GitModalCommitToggler : VcsStartupActivity { +internal class ModalCommitToggler : VcsStartupActivity { override suspend fun execute(project: Project) { runOnceForApp("git.modal.commit.toggle") { - AdvancedSettings.setBoolean(GitModalCommitModeProvider.SETTING_ID, + AdvancedSettings.setBoolean(ModalCommitModeProvider.SETTING_ID, !VcsApplicationSettings.getInstance().COMMIT_FROM_LOCAL_CHANGES) } } diff --git a/plugins/git4idea/resources/intellij.vcs.git.xml b/plugins/git4idea/resources/intellij.vcs.git.xml index d1787712ac9b..0d9738c519db 100644 --- a/plugins/git4idea/resources/intellij.vcs.git.xml +++ b/plugins/git4idea/resources/intellij.vcs.git.xml @@ -871,7 +871,6 @@ - @@ -892,9 +891,6 @@ qualifiedName="Git4Idea.gitPushNotificationCustomizer" dynamic="true" area="IDEA_PROJECT"/> - diff --git a/plugins/git4idea/src/git4idea/GitVcs.java b/plugins/git4idea/src/git4idea/GitVcs.java index 071f95763912..6b9636355983 100644 --- a/plugins/git4idea/src/git4idea/GitVcs.java +++ b/plugins/git4idea/src/git4idea/GitVcs.java @@ -1,6 +1,7 @@ -// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package git4idea; +import com.intellij.dvcs.commit.DvcsCommitModeProvider; import com.intellij.idea.ActionsBundle; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.progress.ProgressIndicator; @@ -33,7 +34,6 @@ import git4idea.changes.GitOutgoingChangesProvider; import git4idea.checkin.GitCheckinEnvironment; import git4idea.checkin.GitCommitAndPushExecutor; import git4idea.checkout.GitCheckoutProvider; -import git4idea.commit.GitCommitModeProvider; import git4idea.commit.GitStagingAreaCommitMode; import git4idea.config.*; import git4idea.diff.GitDiffProvider; @@ -359,13 +359,7 @@ public final class GitVcs extends AbstractVcs { if (GitVcsApplicationSettings.getInstance().isStagingAreaEnabled()) { return GitStagingAreaCommitMode.INSTANCE; } - CommitMode commitModeFromExtension = GitCommitModeProvider.EP_NAME.computeSafeIfAny(GitCommitModeProvider::getCommitMode); - if (commitModeFromExtension != null) { - return commitModeFromExtension; - } - else { - return null; - } + return DvcsCommitModeProvider.compute(); } @Override diff --git a/plugins/git4idea/src/git4idea/commit/GitStagingAreaCommitMode.kt b/plugins/git4idea/src/git4idea/commit/GitStagingAreaCommitMode.kt index 6d30860ded1f..3ac2befb88c7 100644 --- a/plugins/git4idea/src/git4idea/commit/GitStagingAreaCommitMode.kt +++ b/plugins/git4idea/src/git4idea/commit/GitStagingAreaCommitMode.kt @@ -2,13 +2,6 @@ package git4idea.commit import com.intellij.vcs.commit.CommitMode -import git4idea.config.GitVcsApplicationSettings - -class GitStagingAreaCommitModeProvider : GitCommitModeProvider { - override fun getCommitMode(): CommitMode? { - return if (GitVcsApplicationSettings.getInstance().isStagingAreaEnabled) GitStagingAreaCommitMode else null - } -} data object GitStagingAreaCommitMode : CommitMode { override fun useCommitToolWindow(): Boolean = true diff --git a/plugins/hg4idea/src/org/zmlx/hg4idea/HgVcs.java b/plugins/hg4idea/src/org/zmlx/hg4idea/HgVcs.java index 76c6d0705ec2..7992ae7b3216 100644 --- a/plugins/hg4idea/src/org/zmlx/hg4idea/HgVcs.java +++ b/plugins/hg4idea/src/org/zmlx/hg4idea/HgVcs.java @@ -12,6 +12,7 @@ // limitations under the License. package org.zmlx.hg4idea; +import com.intellij.dvcs.commit.DvcsCommitModeProvider; import com.intellij.execution.ui.ConsoleViewContentType; import com.intellij.ide.BrowserUtil; import com.intellij.notification.Notification; @@ -39,6 +40,7 @@ import com.intellij.openapi.vcs.update.UpdateEnvironment; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.concurrency.annotations.RequiresEdt; import com.intellij.util.messages.Topic; +import com.intellij.vcs.commit.CommitMode; import kotlin.coroutines.EmptyCoroutineContext; import kotlinx.coroutines.CoroutineScope; import kotlinx.coroutines.CoroutineScopeKt; @@ -330,6 +332,11 @@ public final class HgVcs extends AbstractVcs { return VcsType.distributed; } + @Override + public @Nullable CommitMode getForcedCommitMode() { + return DvcsCommitModeProvider.compute(); + } + @Override @RequiresEdt public void enableIntegration(@Nullable VirtualFile targetDirectory) {