mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[vcs] IJPL-176372 Enable non-modal commit by default
Neither reads nor writes to `VcsApplicationSettings.COMMIT_FROM_LOCAL_CHANGES` are performed anymore - toolwindow mode is enforced. However, modal flow is not removed completely and still present for actions like "Fixup" and is activated if non-distributed VCS is present. GitOrigin-RevId: 5a4bc6c33202b1678db831a75e97a233dd03eb28
This commit is contained in:
committed by
intellij-monorepo-bot
parent
81a6ae4479
commit
806d8e4a90
@@ -794,9 +794,8 @@ inspection.SubjectBodySeparationInspection.display.name=Blank line between subje
|
||||
inspection.BodyLimitInspection.display.name=Limit body line
|
||||
inspection.CommitMessageSpellCheckingInspection.display.name=Spelling
|
||||
inspection.SubjectLimitInspection.display.name=Limit subject line
|
||||
settings.commit.without.dialog=Use non-modal commit interface
|
||||
settings.commit.postpone.slow.checks=Run advanced checks after a commit is done
|
||||
settings.commit.postpone.slow.checks.description=Failed checks will not prevent a commit in the non-modal interface
|
||||
settings.commit.postpone.slow.checks.description=Failed checks will not prevent a commit
|
||||
settings.commit.postpone.slow.checks.description.short=Failed checks will not prevent a commit
|
||||
settings.confirmation.option.text.ask=Ask
|
||||
settings.confirmation.option.text.no=No
|
||||
@@ -940,7 +939,6 @@ commit.description.tooltip.path=Path: {0}
|
||||
|
||||
settings.version.control.option.group=Version Control
|
||||
settings.commit.message.option.group=Commit message
|
||||
settings.commit.option.group=Commit
|
||||
settings.changelists.option.group=Changelists
|
||||
settings.confirmation.option.group=Confirmation
|
||||
dialog.title.files.created=Files Created
|
||||
|
||||
@@ -4876,15 +4876,12 @@ f:com.intellij.vcs.commit.CommitModeManager
|
||||
- dispose():V
|
||||
- f:getCurrentCommitMode():com.intellij.vcs.commit.CommitMode
|
||||
- sf:getInstance(com.intellij.openapi.project.Project):com.intellij.vcs.commit.CommitModeManager
|
||||
- sf:setCommitFromLocalChanges(com.intellij.openapi.project.Project,Z):V
|
||||
- sf:subscribeOnCommitModeChange(com.intellij.util.messages.SimpleMessageBusConnection,com.intellij.vcs.commit.CommitModeManager$CommitModeListener):V
|
||||
com.intellij.vcs.commit.CommitModeManager$CommitModeListener
|
||||
- java.util.EventListener
|
||||
- a:commitModeChanged():V
|
||||
f:com.intellij.vcs.commit.CommitModeManager$Companion
|
||||
- f:getInstance(com.intellij.openapi.project.Project):com.intellij.vcs.commit.CommitModeManager
|
||||
- f:isNonModalInSettings():Z
|
||||
- f:setCommitFromLocalChanges(com.intellij.openapi.project.Project,Z):V
|
||||
- f:subscribeOnCommitModeChange(com.intellij.util.messages.SimpleMessageBusConnection,com.intellij.vcs.commit.CommitModeManager$CommitModeListener):V
|
||||
com.intellij.vcs.commit.CommitModeManager$SettingsListener
|
||||
- java.util.EventListener
|
||||
|
||||
-4
@@ -79,10 +79,6 @@ object VcsStatisticsCollector : CounterUsagesCollector() {
|
||||
}
|
||||
}
|
||||
|
||||
fun logNonModalCommitStateChanged(project: Project?) {
|
||||
NON_MODAL_COMMIT_STATE_CHANGED.log(project, VcsApplicationSettings.getInstance().COMMIT_FROM_LOCAL_CHANGES)
|
||||
}
|
||||
|
||||
private fun <T> computeDelta(before: Collection<T>, after: Collection<T>): Int {
|
||||
val beforeSet = before.toHashSet()
|
||||
val afterSet = after.toHashSet()
|
||||
|
||||
+4
-13
@@ -7,16 +7,17 @@ import com.intellij.openapi.options.UnnamedConfigurable
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.ui.DialogPanel
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.openapi.vcs.*
|
||||
import com.intellij.openapi.vcs.CheckinProjectPanel
|
||||
import com.intellij.openapi.vcs.ProjectLevelVcsManager
|
||||
import com.intellij.openapi.vcs.VcsBundle
|
||||
import com.intellij.openapi.vcs.VcsConfiguration
|
||||
import com.intellij.openapi.vcs.changes.Change
|
||||
import com.intellij.openapi.vcs.changes.CommitContext
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.ui.components.JBCheckBox
|
||||
import com.intellij.ui.dsl.builder.AlignX
|
||||
import com.intellij.ui.dsl.builder.TopGap
|
||||
import com.intellij.ui.dsl.builder.bindSelected
|
||||
import com.intellij.ui.dsl.builder.panel
|
||||
import com.intellij.ui.layout.selected
|
||||
import com.intellij.util.containers.mapNotNullLoggingErrors
|
||||
import com.intellij.util.ui.UIUtil
|
||||
import com.intellij.vcs.commit.*
|
||||
@@ -49,18 +50,9 @@ class CommitDialogConfigurable(private val project: Project)
|
||||
|
||||
override fun createPanel(): DialogPanel {
|
||||
val disposable = disposable!!
|
||||
val appSettings = VcsApplicationSettings.getInstance()
|
||||
val settings = VcsConfiguration.getInstance(project)
|
||||
|
||||
lateinit var nonModalCommitCheckBox: JBCheckBox
|
||||
return panel {
|
||||
row {
|
||||
nonModalCommitCheckBox = checkBox(VcsBundle.message("settings.commit.without.dialog"))
|
||||
.comment(VcsBundle.message("settings.commit.without.dialog.applies.to.git.mercurial"))
|
||||
.bindSelected({ appSettings.COMMIT_FROM_LOCAL_CHANGES }, { CommitModeManager.setCommitFromLocalChanges(project, it) })
|
||||
.component
|
||||
}
|
||||
|
||||
row {
|
||||
checkBox(VcsBundle.message("checkbox.clear.initial.commit.message"))
|
||||
.bindSelected(settings::CLEAR_INITIAL_COMMIT_MESSAGE)
|
||||
@@ -96,7 +88,6 @@ class CommitDialogConfigurable(private val project: Project)
|
||||
row {
|
||||
checkBox(VcsBundle.message("settings.commit.postpone.slow.checks"))
|
||||
.comment(VcsBundle.message("settings.commit.postpone.slow.checks.description"))
|
||||
.enabledIf(nonModalCommitCheckBox.selected)
|
||||
.bindSelected({ settings.NON_MODAL_COMMIT_POSTPONE_SLOW_CHECKS }, { setRunSlowCommitChecksAfterCommit(project, it) })
|
||||
}
|
||||
}
|
||||
|
||||
-5
@@ -6,20 +6,17 @@ import com.intellij.ide.ui.search.OptionDescription
|
||||
import com.intellij.openapi.application.ApplicationBundle
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.vcs.ProjectLevelVcsManager
|
||||
import com.intellij.openapi.vcs.VcsApplicationSettings
|
||||
import com.intellij.openapi.vcs.VcsBundle
|
||||
import com.intellij.openapi.vcs.VcsConfiguration
|
||||
import com.intellij.openapi.vcs.changes.conflicts.ChangelistConflictTracker
|
||||
import com.intellij.openapi.vcs.contentAnnotation.VcsContentAnnotationSettings
|
||||
import com.intellij.openapi.vcs.readOnlyHandler.ReadonlyStatusHandlerImpl
|
||||
import com.intellij.openapi.vfs.ReadonlyStatusHandler
|
||||
import com.intellij.vcs.commit.CommitModeManager.Companion.setCommitFromLocalChanges
|
||||
import com.intellij.vcs.commit.message.CommitMessageInspectionProfile
|
||||
import com.intellij.vcsUtil.VcsUtil
|
||||
|
||||
private val vcsOptionGroupName get() = VcsBundle.message("settings.version.control.option.group")
|
||||
private val commitMessageOptionGroupName get() = VcsBundle.message("settings.commit.message.option.group")
|
||||
private val commitOptionGroupName get() = VcsBundle.message("settings.commit.option.group")
|
||||
private val confirmationOptionGroupName get() = VcsBundle.message("settings.confirmation.option.group")
|
||||
private val changelistsOptionGroupName get() = VcsBundle.message("settings.changelists.option.group")
|
||||
|
||||
@@ -65,7 +62,6 @@ private fun cdIncludeShelfBaseContent(project: Project): CheckboxDescriptor =
|
||||
private fun cdChangelistConflictDialog(project: Project): CheckboxDescriptor = CheckboxDescriptor(VcsBundle.message("settings.show.conflict.resolve.dialog.checkbox"), changelistsOptions(project)::SHOW_DIALOG, groupName = changelistsOptionGroupName)
|
||||
private fun cdChangelistShowConflicts(project: Project): CheckboxDescriptor = CheckboxDescriptor(VcsBundle.message("settings.highlight.files.with.conflicts.checkbox"), changelistsOptions(project)::HIGHLIGHT_CONFLICTS, groupName = changelistsOptionGroupName)
|
||||
private fun cdChangelistShowNonCurrent(project: Project): CheckboxDescriptor = CheckboxDescriptor(VcsBundle.message("settings.highlight.files.from.non.active.changelist.checkbox"), changelistsOptions(project)::HIGHLIGHT_NON_ACTIVE_CHANGELIST, groupName = changelistsOptionGroupName)
|
||||
private fun cdNonModalCommit(project: Project): CheckboxDescriptor = CheckboxDescriptor(VcsBundle.message("settings.commit.without.dialog"), { VcsApplicationSettings.getInstance().COMMIT_FROM_LOCAL_CHANGES }, { setCommitFromLocalChanges(project, it) }, groupName = commitOptionGroupName)
|
||||
// @formatter:on
|
||||
|
||||
internal class VcsOptionsTopHitProvider : VcsOptionsTopHitProviderBase() {
|
||||
@@ -89,7 +85,6 @@ internal class VcsOptionsTopHitProvider : VcsOptionsTopHitProviderBase() {
|
||||
cdChangelistConflictDialog(project),
|
||||
cdChangelistShowConflicts(project),
|
||||
cdChangelistShowNonCurrent(project),
|
||||
cdNonModalCommit(project)
|
||||
).map(CheckboxDescriptor::asOptionDescriptor)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ class CommitModeManager(private val project: Project, private val coroutineScope
|
||||
return CommitMode.ExternalCommitMode(singleVcs)
|
||||
}
|
||||
|
||||
if (isNonModalInSettings() && canSetNonModal()) {
|
||||
if (canSetNonModal()) {
|
||||
return CommitMode.NonModalCommitMode(isToggleCommitUi)
|
||||
}
|
||||
|
||||
@@ -144,18 +144,6 @@ class CommitModeManager(private val project: Project, private val coroutineScope
|
||||
|
||||
@JvmStatic
|
||||
fun getInstance(project: Project): CommitModeManager = project.service()
|
||||
|
||||
@JvmStatic
|
||||
fun setCommitFromLocalChanges(project: Project?, value: Boolean) {
|
||||
val oldValue = appSettings.COMMIT_FROM_LOCAL_CHANGES
|
||||
if (oldValue == value) return
|
||||
|
||||
appSettings.COMMIT_FROM_LOCAL_CHANGES = value
|
||||
VcsStatisticsCollector.logNonModalCommitStateChanged(project)
|
||||
getApplication().messageBus.syncPublisher(SETTINGS).settingsChanged()
|
||||
}
|
||||
|
||||
fun isNonModalInSettings(): Boolean = isForceNonModalCommit.asBoolean() || appSettings.COMMIT_FROM_LOCAL_CHANGES
|
||||
}
|
||||
|
||||
interface SettingsListener : EventListener {
|
||||
@@ -179,7 +167,7 @@ sealed class CommitMode {
|
||||
object PendingCommitMode : CommitMode() {
|
||||
override fun useCommitToolWindow(): Boolean {
|
||||
// Enable 'Commit' toolwindow before vcses are activated
|
||||
return CommitModeManager.isNonModalInSettings()
|
||||
return true
|
||||
}
|
||||
|
||||
override fun disableDefaultCommitAction(): Boolean {
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
// Copyright 2000-2020 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.vcs.commit
|
||||
|
||||
import com.intellij.openapi.actionSystem.ActionManager
|
||||
import com.intellij.openapi.actionSystem.ActionUpdateThread
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent
|
||||
import com.intellij.openapi.actionSystem.IdeActions.ACTION_CHECKIN_PROJECT
|
||||
import com.intellij.openapi.actionSystem.ex.ActionUtil.invokeAction
|
||||
import com.intellij.openapi.project.DumbAwareAction
|
||||
import com.intellij.vcs.commit.CommitModeManager.Companion.setCommitFromLocalChanges
|
||||
|
||||
private class SwitchToCommitDialogAction : DumbAwareAction() {
|
||||
override fun getActionUpdateThread(): ActionUpdateThread {
|
||||
return ActionUpdateThread.BGT
|
||||
}
|
||||
|
||||
override fun update(e: AnActionEvent) {
|
||||
val project = e.project
|
||||
e.presentation.isEnabledAndVisible = project != null &&
|
||||
CommitModeManager.isNonModalInSettings() &&
|
||||
CommitModeManager.getInstance(project).getCurrentCommitMode() != CommitMode.ModalCommitMode
|
||||
}
|
||||
|
||||
override fun actionPerformed(e: AnActionEvent) {
|
||||
setCommitFromLocalChanges(e.project, false)
|
||||
|
||||
val commitAction = ActionManager.getInstance().getAction(ACTION_CHECKIN_PROJECT) ?: return
|
||||
invokeAction(commitAction, e.dataContext, e.place, e.inputEvent, null)
|
||||
}
|
||||
}
|
||||
@@ -220,32 +220,6 @@ object GitLessonsUtil {
|
||||
}
|
||||
}
|
||||
|
||||
fun LessonContext.showWarningIfModalCommitEnabled() {
|
||||
task {
|
||||
val step = stateCheck {
|
||||
VcsApplicationSettings.getInstance().COMMIT_FROM_LOCAL_CHANGES
|
||||
}
|
||||
val callbackId = LearningUiManager.addCallback {
|
||||
CommitModeManager.setCommitFromLocalChanges(project, true)
|
||||
step.complete(true)
|
||||
}
|
||||
showWarning(GitLessonsBundle.message("git.use.non.modal.commit.ui.warning",
|
||||
action("ShowSettings"),
|
||||
strong(VcsBundle.message("version.control.main.configurable.name")),
|
||||
strong(VcsBundle.message("commit.dialog.configurable")),
|
||||
strong(VcsBundle.message("settings.commit.without.dialog")))
|
||||
+ " " + GitLessonsBundle.message("git.click.to.change.settings", callbackId)) {
|
||||
!VcsApplicationSettings.getInstance().COMMIT_FROM_LOCAL_CHANGES
|
||||
}
|
||||
test {
|
||||
if (!VcsApplicationSettings.getInstance().COMMIT_FROM_LOCAL_CHANGES) {
|
||||
Thread.sleep(1000) // need to wait until LessonMessagePane become updated after restart and warning will be showed
|
||||
clickLessonMessagePaneLink(" click ")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun LessonContext.showWarningIfStagingAreaEnabled() {
|
||||
task {
|
||||
val step = stateCheck {
|
||||
@@ -267,12 +241,10 @@ object GitLessonsUtil {
|
||||
}
|
||||
|
||||
fun LessonContext.restoreCommitWindowStateInformer() {
|
||||
val enabledModalInterface = !VcsApplicationSettings.getInstance().COMMIT_FROM_LOCAL_CHANGES
|
||||
val enabledStagingArea = GitVcsApplicationSettings.getInstance().isStagingAreaEnabled
|
||||
if (!enabledModalInterface && !enabledStagingArea) return
|
||||
if (!enabledStagingArea) return
|
||||
restoreChangedSettingsInformer {
|
||||
if (enabledModalInterface) CommitModeManager.setCommitFromLocalChanges(null, false)
|
||||
if (enabledStagingArea) enableStagingArea(true)
|
||||
enableStagingArea(true)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -39,7 +39,6 @@ import training.git.GitLessonsUtil.openCommitWindow
|
||||
import training.git.GitLessonsUtil.restoreByUiAndBackgroundTask
|
||||
import training.git.GitLessonsUtil.restoreCommitWindowStateInformer
|
||||
import training.git.GitLessonsUtil.showWarningIfCommitWindowClosed
|
||||
import training.git.GitLessonsUtil.showWarningIfModalCommitEnabled
|
||||
import training.git.GitLessonsUtil.showWarningIfStagingAreaEnabled
|
||||
import training.ui.LearningUiUtil.findComponentWithTimeout
|
||||
import training.util.LessonEndInfo
|
||||
@@ -73,7 +72,6 @@ class GitChangelistsAndShelveLesson : GitLesson("Git.ChangelistsAndShelf", GitLe
|
||||
PsiDocumentManager.getInstance(project).commitAllDocuments()
|
||||
}
|
||||
|
||||
showWarningIfModalCommitEnabled()
|
||||
showWarningIfStagingAreaEnabled()
|
||||
|
||||
lateinit var highlightLineMarkerTaskId: TaskContext.TaskId
|
||||
|
||||
@@ -10,7 +10,6 @@ import com.intellij.openapi.fileEditor.FileDocumentManager
|
||||
import com.intellij.openapi.ui.popup.Balloon
|
||||
import com.intellij.openapi.vcs.VcsBundle
|
||||
import com.intellij.openapi.vcs.VcsConfiguration
|
||||
import com.intellij.openapi.vcs.VcsNotificationIdsHolder
|
||||
import com.intellij.openapi.vcs.changes.ChangesViewWorkflowManager
|
||||
import com.intellij.openapi.vfs.VfsUtil
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
@@ -43,7 +42,6 @@ import training.git.GitLessonsUtil.resetGitLogWindow
|
||||
import training.git.GitLessonsUtil.restoreCommitWindowStateInformer
|
||||
import training.git.GitLessonsUtil.showWarningIfCommitWindowClosed
|
||||
import training.git.GitLessonsUtil.showWarningIfGitWindowClosed
|
||||
import training.git.GitLessonsUtil.showWarningIfModalCommitEnabled
|
||||
import training.git.GitLessonsUtil.showWarningIfStagingAreaEnabled
|
||||
import training.git.GitLessonsUtil.triggerOnChangeCheckboxShown
|
||||
import training.git.GitLessonsUtil.triggerOnNotification
|
||||
@@ -81,7 +79,6 @@ class GitCommitLesson : GitLesson("Git.Commit", GitLessonsBundle.message("git.co
|
||||
modifyFiles()
|
||||
}
|
||||
|
||||
showWarningIfModalCommitEnabled()
|
||||
showWarningIfStagingAreaEnabled()
|
||||
|
||||
highlightToolWindowStripe(ToolWindowId.COMMIT)
|
||||
|
||||
@@ -38,7 +38,6 @@ import training.git.GitLessonsUtil.openCommitWindow
|
||||
import training.git.GitLessonsUtil.restoreByUiAndBackgroundTask
|
||||
import training.git.GitLessonsUtil.restoreCommitWindowStateInformer
|
||||
import training.git.GitLessonsUtil.showWarningIfCommitWindowClosed
|
||||
import training.git.GitLessonsUtil.showWarningIfModalCommitEnabled
|
||||
import training.git.GitLessonsUtil.showWarningIfStagingAreaEnabled
|
||||
import training.git.GitLessonsUtil.triggerOnChangeCheckboxShown
|
||||
import training.git.GitLessonsUtil.triggerOnCheckout
|
||||
@@ -68,7 +67,6 @@ class GitQuickStartLesson : GitLesson("Git.QuickStart", GitLessonsBundle.message
|
||||
override val lessonContent: LessonContext.() -> Unit = {
|
||||
val cloneActionText = GitBundle.message("action.Git.Clone.text")
|
||||
|
||||
showWarningIfModalCommitEnabled()
|
||||
showWarningIfStagingAreaEnabled()
|
||||
|
||||
task {
|
||||
|
||||
@@ -354,8 +354,7 @@ public final class GitVcs extends AbstractVcs {
|
||||
|
||||
@Override
|
||||
public boolean isWithCustomLocalChanges() {
|
||||
return GitVcsApplicationSettings.getInstance().isStagingAreaEnabled() &&
|
||||
GitStageManagerKt.canEnableStagingArea();
|
||||
return GitVcsApplicationSettings.getInstance().isStagingAreaEnabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -50,7 +50,6 @@ import git4idea.branch.GitBranchIncomingOutgoingManager
|
||||
import git4idea.config.GitExecutableSelectorPanel.Companion.createGitExecutableSelectorRow
|
||||
import git4idea.config.gpg.GpgSignConfigurableRow.Companion.createGpgSignRow
|
||||
import git4idea.i18n.GitBundle.message
|
||||
import git4idea.index.canEnableStagingArea
|
||||
import git4idea.index.enableStagingArea
|
||||
import git4idea.repo.GitRepositoryManager
|
||||
import git4idea.stash.ui.isStashTabAvailable
|
||||
@@ -197,7 +196,6 @@ internal class GitVcsPanel(private val project: Project) :
|
||||
group(message("settings.commit.group.title")) {
|
||||
row {
|
||||
checkBox(cdEnableStagingArea)
|
||||
.enabledIf(StagingAreaAvailablePredicate(project, disposable!!))
|
||||
}
|
||||
row {
|
||||
checkBox(cdWarnAboutCrlf(project))
|
||||
@@ -381,18 +379,6 @@ internal class ExpandableTextFieldWithReadOnlyText(lineParser: ParserFunction,
|
||||
fun JoinerFunction.join(vararg items: String): String = `fun`(items.toList())
|
||||
}
|
||||
|
||||
class StagingAreaAvailablePredicate(val project: Project, val disposable: Disposable) : ComponentPredicate() {
|
||||
override fun addListener(listener: (Boolean) -> Unit) {
|
||||
project.messageBus.connect(disposable).subscribe(CommitModeManager.SETTINGS, object : CommitModeManager.SettingsListener {
|
||||
override fun settingsChanged() {
|
||||
listener(invoke())
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun invoke(): Boolean = canEnableStagingArea()
|
||||
}
|
||||
|
||||
class HasGitRootsPredicate(val project: Project, val disposable: Disposable) : ComponentPredicate() {
|
||||
override fun addListener(listener: (Boolean) -> Unit) {
|
||||
project.messageBus.connect(disposable).subscribe(VcsRepositoryManager.VCS_REPOSITORY_MAPPING_UPDATED,
|
||||
|
||||
@@ -46,8 +46,6 @@ fun enableStagingArea(enabled: Boolean) {
|
||||
ApplicationManager.getApplication().messageBus.syncPublisher(CommitModeManager.SETTINGS).settingsChanged()
|
||||
}
|
||||
|
||||
internal fun canEnableStagingArea() = CommitModeManager.isNonModalInSettings()
|
||||
|
||||
internal fun isStagingAreaAvailable(project: Project): Boolean {
|
||||
val commitMode = CommitModeManager.getInstance(project).getCurrentCommitMode()
|
||||
return commitMode is CommitMode.ExternalCommitMode &&
|
||||
|
||||
@@ -7,13 +7,12 @@ import com.intellij.openapi.project.DumbAwareToggleAction
|
||||
import com.intellij.openapi.vcs.ProjectLevelVcsManager
|
||||
import git4idea.GitVcs
|
||||
import git4idea.config.GitVcsApplicationSettings
|
||||
import git4idea.index.canEnableStagingArea
|
||||
import git4idea.index.enableStagingArea
|
||||
|
||||
abstract class GitToggleStagingAreaAction(private val enable: Boolean) : DumbAwareToggleAction() {
|
||||
override fun update(e: AnActionEvent) {
|
||||
val project = e.project
|
||||
if (project == null || !canEnableStagingArea() ||
|
||||
if (project == null ||
|
||||
ProjectLevelVcsManager.getInstance(project).singleVCS?.keyInstanceMethod != GitVcs.getKey()) {
|
||||
e.presentation.isEnabledAndVisible = false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user