git: initialize the modal commit option before an actual use (IJPL-182473)

Follow-up: 07b0153a68d0cbfa88881530ca7a88d31767dcb2

GitOrigin-RevId: f9ce6ab80251767e71a7ef7a59e21edf56b607f2
This commit is contained in:
Dmitry Zhuravlev
2025-04-01 16:01:19 +02:00
committed by intellij-monorepo-bot
parent ce641127d0
commit 8d51b9f9d0
2 changed files with 11 additions and 8 deletions

View File

@@ -23,11 +23,11 @@
<extensions defaultExtensionNs="com.intellij">
<advancedSetting id="git.non.modal.commit" default="false" groupKey="advanced.settings.git"/>
<backgroundPostStartupActivity implementation="com.intellij.vcs.git.commit.modal.GitModalCommitToggler"/>
<vcsStartupActivity implementation="com.intellij.vcs.git.commit.modal.GitModalCommitToggler"/>
</extensions>
<applicationListeners>
<listener class="com.intellij.vcs.git.commit.modal.GitModalCommitSettingsListener"
topic="com.intellij.openapi.options.advanced.AdvancedSettingsChangeListener"/>
</applicationListeners>
</idea-plugin>
</idea-plugin>

View File

@@ -4,15 +4,18 @@ package com.intellij.vcs.git.commit.modal
import com.intellij.ide.util.runOnceForApp
import com.intellij.openapi.options.advanced.AdvancedSettings
import com.intellij.openapi.project.Project
import com.intellij.openapi.startup.ProjectActivity
import com.intellij.openapi.vcs.VcsApplicationSettings
import com.intellij.openapi.vcs.impl.VcsInitObject
import com.intellij.openapi.vcs.impl.VcsStartupActivity
class GitModalCommitToggler : ProjectActivity {
internal class GitModalCommitToggler : VcsStartupActivity {
override suspend fun execute(project: Project) {
runOnceForApp("git.modal.commit.toggle") {
if (!VcsApplicationSettings.getInstance().COMMIT_FROM_LOCAL_CHANGES) {
AdvancedSettings.setBoolean(GitModalCommitModeProvider.SETTING_ID, true)
}
AdvancedSettings.setBoolean(GitModalCommitModeProvider.SETTING_ID,
!VcsApplicationSettings.getInstance().COMMIT_FROM_LOCAL_CHANGES)
}
}
}
override val order: Int
get() = VcsInitObject.MAPPINGS.order + 1
}