mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[git] IJPL-177359 Move modal commit switch to separate plugin
GitOrigin-RevId: 113e3c2338edf8d837f88932d74e88fb043a3293
This commit is contained in:
committed by
intellij-monorepo-bot
parent
85c4c9dd2a
commit
cf98c8b11d
Generated
+1
@@ -1069,6 +1069,7 @@
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/ui-designer-core/intellij.uiDesigner.iml" filepath="$PROJECT_DIR$/plugins/ui-designer-core/intellij.uiDesigner.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/changeReminder/intellij.vcs.changeReminder.iml" filepath="$PROJECT_DIR$/plugins/changeReminder/intellij.vcs.changeReminder.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/git4idea/intellij.vcs.git.iml" filepath="$PROJECT_DIR$/plugins/git4idea/intellij.vcs.git.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/git-modal-commit/intellij.vcs.git.commit.modal.iml" filepath="$PROJECT_DIR$/plugins/git-modal-commit/intellij.vcs.git.commit.modal.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/git4idea/intellij.vcs.git.coverage/intellij.vcs.git.coverage.iml" filepath="$PROJECT_DIR$/plugins/git4idea/intellij.vcs.git.coverage/intellij.vcs.git.coverage.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/git-features-trainer/intellij.vcs.git.featuresTrainer.iml" filepath="$PROJECT_DIR$/plugins/git-features-trainer/intellij.vcs.git.featuresTrainer.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/git4idea/rt/intellij.vcs.git.rt.iml" filepath="$PROJECT_DIR$/plugins/git4idea/rt/intellij.vcs.git.rt.iml" />
|
||||
|
||||
@@ -239,5 +239,6 @@
|
||||
<orderEntry type="module" module-name="intellij.community.wintools" scope="TEST" />
|
||||
<orderEntry type="module" module-name="intellij.compose.ide.plugin" scope="RUNTIME" />
|
||||
<orderEntry type="module" module-name="intellij.python.community.execService" scope="TEST" />
|
||||
<orderEntry type="module" module-name="intellij.vcs.git.commit.modal" scope="RUNTIME" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="kotlin-stdlib" level="project" />
|
||||
<orderEntry type="module" module-name="intellij.vcs.git" />
|
||||
<orderEntry type="module" module-name="intellij.platform.vcs" />
|
||||
<orderEntry type="module" module-name="intellij.platform.editor.ui" />
|
||||
<orderEntry type="module" module-name="intellij.platform.core" />
|
||||
<orderEntry type="module" module-name="intellij.platform.util" />
|
||||
<orderEntry type="module" module-name="intellij.platform.vcs.impl" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -0,0 +1,3 @@
|
||||
- name: lib/vcs-git-commit-modal.jar
|
||||
modules:
|
||||
- name: intellij.vcs.git.commit.modal
|
||||
@@ -0,0 +1,24 @@
|
||||
<idea-plugin package="com.intellij.vcs.git.commit.modal">
|
||||
<name>Git Modal Commit Interface</name>
|
||||
<id>intellij.git.commit.modal</id>
|
||||
<category>Version Controls</category>
|
||||
<vendor>JetBrains</vendor>
|
||||
<description>
|
||||
<![CDATA[Adds the option to enable a modal interface for Git commit (Settings | Advanced Settings)]]>
|
||||
</description>
|
||||
|
||||
<dependencies>
|
||||
<plugin id="Git4Idea"/>
|
||||
</dependencies>
|
||||
|
||||
<resource-bundle>messages.GitModalCommitBundle</resource-bundle>
|
||||
|
||||
<extensions defaultExtensionNs="Git4Idea">
|
||||
<gitCommitModeProvider implementation="com.intellij.vcs.git.commit.modal.GitModalCommitModeProvider"/>
|
||||
</extensions>
|
||||
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<advancedSetting id="git.non.modal.commit" default="false" groupKey="advanced.settings.git"/>
|
||||
<backgroundPostStartupActivity implementation="com.intellij.vcs.git.commit.modal.GitModalCommitSettingsListener$InitOnStartup"/>
|
||||
</extensions>
|
||||
</idea-plugin>
|
||||
@@ -0,0 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="40" height="40" viewBox="0 0 40 40">
|
||||
<defs>
|
||||
<polygon id="git-a" points="0 .001 32 .001 32 32 0 32"/>
|
||||
</defs>
|
||||
<g fill="none" fill-rule="evenodd" transform="translate(4 4)">
|
||||
<mask id="git-b" fill="#fff">
|
||||
<use xlink:href="#git-a"/>
|
||||
</mask>
|
||||
<path fill="#DE4C36" d="M31.3969,14.5745 L17.4249,0.6035 C16.6209,-0.2005 15.3159,-0.2005 14.5109,0.6035 L11.6099,3.5045 L15.2899,7.1855 C16.1449,6.8965 17.1259,7.0905 17.8079,7.7715 C18.4929,8.4575 18.6849,9.4475 18.3889,10.3045 L21.9359,13.8515 C22.7939,13.5565 23.7849,13.7475 24.4689,14.4345 C25.4269,15.3915 25.4269,16.9435 24.4689,17.9025 C23.5109,18.8605 21.9589,18.8605 21.0009,17.9025 C20.2809,17.1805 20.1029,16.1225 20.4669,15.2345 L17.1599,11.9275 L17.1599,20.6315 C17.3989,20.7495 17.6179,20.9075 17.8079,21.0955 C18.7649,22.0525 18.7649,23.6055 17.8079,24.5635 C16.8489,25.5215 15.2969,25.5215 14.3399,24.5635 C13.3819,23.6055 13.3819,22.0525 14.3399,21.0955 C14.5699,20.8665 14.8419,20.6845 15.1429,20.5605 L15.1429,11.7745 C14.8419,11.6515 14.5689,11.4705 14.3399,11.2395 C13.6149,10.5145 13.4399,9.4495 13.8119,8.5585 L10.1839,4.9305 L0.6039,14.5095 C-0.2021,15.3155 -0.2021,16.6205 0.6039,17.4245 L14.5759,31.3965 C15.3799,32.2005 16.6849,32.2005 17.4899,31.3965 L31.3959,17.4905 C32.2019,16.6845 32.2019,15.3785 31.3959,14.5745" mask="url(#git-b)"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,2 @@
|
||||
advanced.settings.git=Version Control. Git
|
||||
advanced.setting.git.non.modal.commit=Use modal commit interface
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
// 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.openapi.options.advanced.AdvancedSettings
|
||||
import com.intellij.vcs.commit.CommitMode
|
||||
import git4idea.commit.GitCommitModeProvider
|
||||
|
||||
internal class GitModalCommitModeProvider : GitCommitModeProvider {
|
||||
override fun getCommitMode(): CommitMode? {
|
||||
return if (AdvancedSettings.getBoolean(SETTING_ID)) CommitMode.ModalCommitMode else null
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val SETTING_ID = "git.non.modal.commit"
|
||||
}
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
// 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.openapi.application.ApplicationManager
|
||||
import com.intellij.openapi.components.Service
|
||||
import com.intellij.openapi.components.serviceAsync
|
||||
import com.intellij.openapi.options.advanced.AdvancedSettingsChangeListener
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.startup.ProjectActivity
|
||||
import com.intellij.vcs.commit.CommitModeManager
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
|
||||
@Service
|
||||
internal class GitModalCommitSettingsListener(coroutineScope: CoroutineScope) {
|
||||
init {
|
||||
ApplicationManager.getApplication().messageBus.connect(coroutineScope)
|
||||
.subscribe(AdvancedSettingsChangeListener.TOPIC, object : AdvancedSettingsChangeListener {
|
||||
override fun advancedSettingChanged(id: String, oldValue: Any, newValue: Any) {
|
||||
if (id == GitModalCommitModeProvider.SETTING_ID && oldValue != newValue) {
|
||||
ApplicationManager.getApplication().messageBus.syncPublisher(CommitModeManager.SETTINGS).settingsChanged()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
internal class InitOnStartup : ProjectActivity {
|
||||
override suspend fun execute(project: Project) {
|
||||
serviceAsync<GitModalCommitSettingsListener>()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -865,6 +865,7 @@
|
||||
|
||||
<extensions defaultExtensionNs="Git4Idea">
|
||||
<gitRawAnnotationProvider implementation="git4idea.annotate.GitAnnotationProvider$DefaultGitAnnotationProvider"/>
|
||||
<gitCommitModeProvider implementation="git4idea.commit.GitStagingAreaCommitModeProvider" order="first"/>
|
||||
</extensions>
|
||||
|
||||
<extensionPoints>
|
||||
@@ -885,6 +886,9 @@
|
||||
qualifiedName="Git4Idea.gitPushNotificationCustomizer"
|
||||
dynamic="true"
|
||||
area="IDEA_PROJECT"/>
|
||||
<extensionPoint interface="git4idea.commit.GitCommitModeProvider"
|
||||
qualifiedName="Git4Idea.gitCommitModeProvider"
|
||||
dynamic="true"/>
|
||||
</extensionPoints>
|
||||
|
||||
<projectListeners>
|
||||
|
||||
@@ -18,7 +18,6 @@ import com.intellij.openapi.vcs.rollback.RollbackEnvironment;
|
||||
import com.intellij.openapi.vcs.update.UpdateEnvironment;
|
||||
import com.intellij.openapi.vcs.versionBrowser.CommittedChangeList;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.util.SystemProperties;
|
||||
import com.intellij.util.concurrency.annotations.RequiresEdt;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import com.intellij.util.ui.VcsSynchronousProgressWrapper;
|
||||
@@ -34,6 +33,7 @@ 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,8 +359,9 @@ public final class GitVcs extends AbstractVcs {
|
||||
if (GitVcsApplicationSettings.getInstance().isStagingAreaEnabled()) {
|
||||
return GitStagingAreaCommitMode.INSTANCE;
|
||||
}
|
||||
else if (SystemProperties.getBooleanProperty("vcs.force.modal.commit", false)) {
|
||||
return CommitMode.ModalCommitMode.INSTANCE;
|
||||
CommitMode commitModeFromExtension = GitCommitModeProvider.EP_NAME.computeSafeIfAny(GitCommitModeProvider::getCommitMode);
|
||||
if (commitModeFromExtension != null) {
|
||||
return commitModeFromExtension;
|
||||
}
|
||||
else {
|
||||
return null;
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
// 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
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPointName
|
||||
import com.intellij.vcs.commit.CommitMode
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
|
||||
@ApiStatus.Internal
|
||||
interface GitCommitModeProvider {
|
||||
fun getCommitMode(): CommitMode?
|
||||
|
||||
companion object {
|
||||
@JvmField
|
||||
val EP_NAME: ExtensionPointName<GitCommitModeProvider> = ExtensionPointName("Git4Idea.gitCommitModeProvider")
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,13 @@
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user