diff: use DiffEditorTabFilesManager over VcsEditorTabFilesManager

GitOrigin-RevId: af2bc69b324aacf8f2ca7393275f1cf8d58d74a4
This commit is contained in:
Aleksey Pivovarov
2024-05-24 14:19:48 +02:00
committed by intellij-monorepo-bot
parent bbb73865f7
commit b83a6715ba
5 changed files with 15 additions and 8 deletions

View File

@@ -16,11 +16,18 @@ interface DiffEditorTabFilesManager {
companion object {
private const val SHOW_DIFF_IN_EDITOR_SETTING = "show.diff.as.editor.tab"
/**
* If enabled - the [DiffViewerVirtualFile] will open like a normal editor in current split.
* If disabled - it will use [com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.OpenMode.NEW_WINDOW].
*/
@JvmStatic
var isDiffInEditor: Boolean
get() = AdvancedSettings.getBoolean(SHOW_DIFF_IN_EDITOR_SETTING)
set(value) = AdvancedSettings.setBoolean(SHOW_DIFF_IN_EDITOR_SETTING, value)
@JvmStatic
val isDiffInWindow: Boolean get() = !isDiffInEditor
@JvmStatic
fun isDiffOpenedInNewWindow(file: VirtualFile): Boolean = DIFF_OPENED_IN_NEW_WINDOW.get(file, false)

View File

@@ -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.
package com.intellij.platform.lvcs.impl.ui
import com.intellij.diff.editor.DiffEditorTabFilesManager
import com.intellij.diff.impl.DiffEditorViewer
import com.intellij.diff.impl.DiffRequestProcessor
import com.intellij.diff.impl.DiffRequestProcessorListener
@@ -23,7 +24,6 @@ import com.intellij.openapi.util.NlsContexts
import com.intellij.openapi.util.registry.Registry
import com.intellij.openapi.vcs.changes.EditorTabDiffPreview
import com.intellij.openapi.vcs.changes.EditorTabDiffPreviewManager
import com.intellij.openapi.vcs.changes.VcsEditorTabFilesManager
import com.intellij.openapi.vcs.changes.ui.TreeHandlerEditorDiffPreview
import com.intellij.openapi.wm.IdeFocusManager
import com.intellij.platform.lvcs.impl.*
@@ -322,7 +322,7 @@ class ActivityView(private val project: Project, gateway: IdeaGateway, val activ
}
val activityView = ActivityView(project, gateway, activityScope)
if (Registry.`is`("lvcs.open.diff.automatically") && !VcsEditorTabFilesManager.getInstance().shouldOpenInNewWindow) {
if (Registry.`is`("lvcs.open.diff.automatically") && DiffEditorTabFilesManager.isDiffInEditor) {
activityView.openDiffWhenLoaded()
}

View File

@@ -1,6 +1,7 @@
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package training.git.lesson
import com.intellij.diff.editor.DiffEditorTabFilesManager
import com.intellij.diff.impl.DiffWindowBase
import com.intellij.diff.tools.util.DiffSplitter
import com.intellij.ide.IdeBundle
@@ -17,7 +18,6 @@ import com.intellij.openapi.ui.popup.Balloon
import com.intellij.openapi.vcs.actions.ActiveAnnotationGutter
import com.intellij.openapi.vcs.actions.AnnotateToggleAction
import com.intellij.openapi.vcs.actions.ShowDiffFromAnnotation
import com.intellij.openapi.vcs.changes.VcsEditorTabFilesManager
import com.intellij.openapi.vcs.changes.ui.ChangeListViewerDialog
import com.intellij.openapi.wm.impl.IdeFrameImpl
import com.intellij.util.ui.HtmlPanel
@@ -247,7 +247,7 @@ class GitAnnotateLesson : GitLesson("Git.Annotate", GitLessonsBundle.message("gi
task("EditorEscape") {
text(GitLessonsBundle.message("git.annotate.close.all.windows",
if (VcsEditorTabFilesManager.getInstance().shouldOpenInNewWindow) 0 else 1, action(it)))
if (DiffEditorTabFilesManager.isDiffInWindow) 0 else 1, action(it)))
stateCheck {
firstDiffSplitter?.isShowing != true && secondDiffSplitter?.isShowing != true
}

View File

@@ -1,11 +1,11 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package training.git.lesson
import com.intellij.diff.editor.DiffEditorTabFilesManager
import com.intellij.diff.tools.util.SimpleDiffPanel
import com.intellij.icons.AllIcons
import com.intellij.openapi.project.Project
import com.intellij.openapi.ui.popup.Balloon
import com.intellij.openapi.vcs.changes.VcsEditorTabFilesManager
import com.intellij.openapi.wm.IdeFocusManager
import com.intellij.openapi.wm.ToolWindowId
import com.intellij.ui.components.SearchFieldWithExtension
@@ -205,7 +205,7 @@ class GitProjectHistoryLesson : GitLesson("Git.ProjectHistory", GitLessonsBundle
}
}
if (VcsEditorTabFilesManager.getInstance().shouldOpenInNewWindow) {
if (DiffEditorTabFilesManager.isDiffInWindow) {
task("EditorEscape") {
text(GitLessonsBundle.message("git.project.history.close.diff", action(it)))
stateCheck { previous.ui?.isShowing != true }

View File

@@ -2,12 +2,12 @@
package org.jetbrains.plugins.gitlab.mergerequest.file
import com.intellij.collaboration.util.CodeReviewFilesUtil
import com.intellij.diff.editor.DiffEditorTabFilesManager
import com.intellij.openapi.application.EDT
import com.intellij.openapi.application.writeAction
import com.intellij.openapi.components.serviceAsync
import com.intellij.openapi.fileEditor.FileEditorManager
import com.intellij.openapi.project.Project
import com.intellij.openapi.vcs.changes.VcsEditorTabFilesManager
import com.intellij.util.concurrency.annotations.RequiresEdt
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
@@ -39,7 +39,7 @@ class GitLabMergeRequestsFilesControllerImpl(
val fs = GitLabVirtualFileSystem.getInstance()
val path = fs.getPath(connection.id, project, connection.repo.repository, mrIid, true)
val file = fs.refreshAndFindFileByPath(path) ?: return
VcsEditorTabFilesManager.getInstance().openFile(project, file, focus)
DiffEditorTabFilesManager.getInstance(project).showDiffFile(file, focus)
}
override suspend fun closeAllFiles() {