IJPL-187184: cleanup: move from companion to util

IJ-MR-165674

GitOrigin-RevId: 135936ea938c8d716e74764074ca6eb4c2d4d11c
This commit is contained in:
Aleksandr Krasilnikov
2025-06-16 13:45:57 +02:00
committed by intellij-monorepo-bot
parent a1bcdc0044
commit 2af6347624
12 changed files with 42 additions and 49 deletions

View File

@@ -231,20 +231,12 @@ com.intellij.diff.editor.DiffContentVirtualFile
com.intellij.diff.editor.DiffEditorEscapeAction
com.intellij.diff.editor.DiffEditorTabFilesManager
- sf:Companion:com.intellij.diff.editor.DiffEditorTabFilesManager$Companion
- sf:SHOW_DIFF_IN_EDITOR_SETTING:java.lang.String
- s:getInstance(com.intellij.openapi.project.Project):com.intellij.diff.editor.DiffEditorTabFilesManager
- s:isDiffInEditor():Z
- s:isDiffInWindow():Z
- a:isDiffOpenedInWindow(com.intellij.openapi.vfs.VirtualFile):Z
- s:setDiffInEditor(Z):V
- showDiffFile(com.intellij.openapi.vfs.VirtualFile,Z):com.intellij.openapi.fileEditor.FileEditor[]
- a:showDiffFile(com.intellij.openapi.vfs.VirtualFile,Z,Z):com.intellij.openapi.fileEditor.FileEditor[]
f:com.intellij.diff.editor.DiffEditorTabFilesManager$Companion
- sf:SHOW_DIFF_IN_EDITOR_SETTING:java.lang.String
- f:getInstance(com.intellij.openapi.project.Project):com.intellij.diff.editor.DiffEditorTabFilesManager
- f:isDiffInEditor():Z
- f:isDiffInWindow():Z
- f:setDiffInEditor(Z):V
c:com.intellij.diff.editor.DiffEditorViewerFileEditor
- com.intellij.diff.util.FileEditorBase
- com.intellij.openapi.fileEditor.FileEditorWithTextEditors

View File

@@ -1,7 +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.diff.actions
import com.intellij.diff.editor.DiffEditorTabFilesManager.Companion.isDiffInEditor
import com.intellij.diff.editor.DiffEditorTabFilesUtil
import com.intellij.diff.tools.external.ExternalDiffTool
import com.intellij.idea.ActionsBundle.message
import com.intellij.openapi.actionSystem.AnActionEvent
@@ -28,7 +28,7 @@ internal class ShowStandaloneDiffAction : ExtendableAction(EP_NAME), DumbAware {
val project = e.project
with(e.presentation) {
if (isDiffInEditor) {
if (DiffEditorTabFilesUtil.isDiffInEditor) {
text = message("action.Diff.ShowStandaloneDiff.tab.text")
description = message("action.Diff.ShowStandaloneDiff.tab.description")
}

View File

@@ -3,7 +3,6 @@ package com.intellij.diff.editor
import com.intellij.openapi.components.service
import com.intellij.openapi.fileEditor.FileEditor
import com.intellij.openapi.options.advanced.AdvancedSettings
import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile
@@ -11,7 +10,7 @@ interface DiffEditorTabFilesManager {
fun showDiffFile(diffFile: VirtualFile, focusEditor: Boolean): Array<out FileEditor> {
DiffEditorTabFilesUtil.setForceOpeningsInNewWindow(diffFile, null)
return showDiffFile(diffFile, focusEditor, isDiffInEditor)
return showDiffFile(diffFile, focusEditor, DiffEditorTabFilesUtil.isDiffInEditor)
}
fun showDiffFile(diffFile: VirtualFile, focusEditor: Boolean, openInEditor: Boolean): Array<out FileEditor>
@@ -23,23 +22,6 @@ interface DiffEditorTabFilesManager {
fun isDiffOpenedInWindow(file: VirtualFile): Boolean
companion object {
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) {
if (AdvancedSettings.getBoolean(SHOW_DIFF_IN_EDITOR_SETTING) != value) {
AdvancedSettings.setBoolean(SHOW_DIFF_IN_EDITOR_SETTING, value)
}
}
@JvmStatic
val isDiffInWindow: Boolean get() = !isDiffInEditor
@JvmStatic
fun getInstance(project: Project): DiffEditorTabFilesManager = project.service()

View File

@@ -66,7 +66,7 @@ internal abstract class MoveDiffEditorAction(private val openInNewWindow: Boolea
}
override fun actionPerformed(e: AnActionEvent) {
DiffEditorTabFilesManager.isDiffInEditor = !openInNewWindow
DiffEditorTabFilesUtil.isDiffInEditor = !openInNewWindow
}
internal class ToEditor : MoveDiffEditorAction(false)
@@ -75,7 +75,7 @@ internal abstract class MoveDiffEditorAction(private val openInNewWindow: Boolea
internal class EditorTabDiffPreviewAdvancedSettingsListener : AdvancedSettingsChangeListener {
override fun advancedSettingChanged(id: String, oldValue: Any, newValue: Any) {
if (id == DiffEditorTabFilesManager.SHOW_DIFF_IN_EDITOR_SETTING) {
if (id == DiffEditorTabFilesUtil.SHOW_DIFF_IN_EDITOR_SETTING) {
for (project in ProjectManager.getInstance().openProjects) {
reopenDiffEditorsForFiles(project)
}
@@ -87,7 +87,7 @@ internal class EditorTabDiffPreviewAdvancedSettingsListener : AdvancedSettingsCh
* Unlike [com.intellij.diff.editor.DiffEditorViewerFileEditor.reloadDiffEditorsForFiles], should not try to reopen tabs in-place.
*/
private fun reopenDiffEditorsForFiles(project: Project) {
val isOpenInNewWindow = DiffEditorTabFilesManager.isDiffInWindow
val isOpenInNewWindow = DiffEditorTabFilesUtil.isDiffInWindow
val editorManager = FileEditorManager.getInstance(project) as? FileEditorManagerImpl ?: return
val diffEditorManager = DiffEditorTabFilesManager.getInstance(project)
@@ -136,9 +136,9 @@ internal class DiffInWindowDndListener : FileOpenedSyncListener {
} ?: return
val isFileInEditor = !isSingletonEditorInWindow(window)
if (DiffEditorTabFilesManager.isDiffInEditor != isFileInEditor) {
if (DiffEditorTabFilesUtil.isDiffInEditor != isFileInEditor) {
invokeLater(ModalityState.nonModal()) {
DiffEditorTabFilesManager.isDiffInEditor = isFileInEditor
DiffEditorTabFilesUtil.isDiffInEditor = isFileInEditor
}
}
}

View File

@@ -1,6 +1,7 @@
// 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.diff.editor
import com.intellij.openapi.options.advanced.AdvancedSettings
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Key
import com.intellij.openapi.vfs.VirtualFile
@@ -8,6 +9,24 @@ import org.jetbrains.annotations.ApiStatus
@ApiStatus.Internal
object DiffEditorTabFilesUtil {
@JvmStatic
val isDiffInWindow: Boolean get() = !isDiffInEditor
const val SHOW_DIFF_IN_EDITOR_SETTING: String = "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) {
if (AdvancedSettings.getBoolean(SHOW_DIFF_IN_EDITOR_SETTING) != value) {
AdvancedSettings.setBoolean(SHOW_DIFF_IN_EDITOR_SETTING, value)
}
}
private val FORCE_OPENING_IN_NEW_WINDOW: Key<Boolean> = Key.create("Diff.ForceOpeningInNewWindow")
internal fun setForceOpeningsInNewWindow(file: VirtualFile, value: Boolean?) {

View File

@@ -1,7 +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.diff.impl
import com.intellij.diff.editor.DiffEditorTabFilesManager.Companion.isDiffInEditor
import com.intellij.diff.editor.DiffEditorTabFilesUtil
import com.intellij.openapi.fileEditor.FileEditorState
import com.intellij.openapi.fileEditor.FileEditorStateLevel
import com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl
@@ -12,7 +12,7 @@ internal data class DiffRequestProcessorEditorState(
@JvmField val embeddedEditorStates: List<TextEditorState>
) : FileEditorStateWithPreferredOpenMode {
override val openMode: FileEditorManagerImpl.OpenMode?
get() = if (!isDiffInEditor) FileEditorManagerImpl.OpenMode.NEW_WINDOW else null
get() = if (!DiffEditorTabFilesUtil.isDiffInEditor) FileEditorManagerImpl.OpenMode.NEW_WINDOW else null
override fun canBeMergedWith(otherState: FileEditorState, level: FileEditorStateLevel): Boolean {
return otherState is DiffRequestProcessorEditorState &&

View File

@@ -2,7 +2,7 @@
package com.intellij.diff.tools.combined
import com.intellij.diff.*
import com.intellij.diff.editor.DiffEditorTabFilesManager.Companion.isDiffInEditor
import com.intellij.diff.editor.DiffEditorTabFilesUtil
import com.intellij.diff.impl.DiffEditorViewer
import com.intellij.diff.impl.DiffEditorViewerListener
import com.intellij.diff.impl.DiffRequestProcessor
@@ -261,7 +261,7 @@ internal data class CombinedDiffEditorState(
val activeEditorStates: List<TextEditorState>,
) : FileEditorStateWithPreferredOpenMode {
override val openMode: FileEditorManagerImpl.OpenMode?
get() = if (!isDiffInEditor) FileEditorManagerImpl.OpenMode.NEW_WINDOW else null
get() = if (!DiffEditorTabFilesUtil.isDiffInEditor) FileEditorManagerImpl.OpenMode.NEW_WINDOW else null
override fun canBeMergedWith(otherState: FileEditorState, level: FileEditorStateLevel): Boolean {
return otherState is CombinedDiffEditorState &&

View File

@@ -1,7 +1,7 @@
// 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.platform.lvcs.impl.ui
import com.intellij.diff.editor.DiffEditorTabFilesManager
import com.intellij.diff.editor.DiffEditorTabFilesUtil
import com.intellij.diff.impl.DiffEditorViewer
import com.intellij.diff.impl.DiffRequestProcessor
import com.intellij.diff.impl.DiffRequestProcessorListener
@@ -323,7 +323,7 @@ class ActivityView(private val project: Project, gateway: IdeaGateway, val activ
}
val activityView = ActivityView(project, gateway, activityScope)
if (Registry.`is`("lvcs.open.diff.automatically") && DiffEditorTabFilesManager.isDiffInEditor) {
if (Registry.`is`("lvcs.open.diff.automatically") && DiffEditorTabFilesUtil.isDiffInEditor) {
activityView.openDiffWhenLoaded()
}

View File

@@ -1,7 +1,7 @@
// 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.platform.vcs.impl.frontend.diff
import com.intellij.diff.editor.DiffEditorTabFilesManager
import com.intellij.diff.editor.DiffEditorTabFilesUtil
import com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl
import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile
@@ -10,7 +10,7 @@ import com.intellij.platform.recentFiles.frontend.RecentFilesNavigator
internal class DiffRecentFilesNavigator : RecentFilesNavigator {
override fun getEditorOpenOptions(project: Project, file: VirtualFile): FileEditorManagerImpl.OpenMode? {
// TODO - "Open Diff as Editor Tab" advanced setting is duplicated on client and host
return if (file.isDiffVirtualFile() && DiffEditorTabFilesManager.isDiffInWindow)
return if (file.isDiffVirtualFile() && DiffEditorTabFilesUtil.isDiffInWindow)
FileEditorManagerImpl.OpenMode.NEW_WINDOW
else null
}

View File

@@ -4,7 +4,7 @@ package com.intellij.openapi.vcs.changes
import com.intellij.diff.DiffContext
import com.intellij.diff.actions.impl.SetEditorSettingsAction
import com.intellij.diff.actions.impl.SetEditorSettingsActionGroup
import com.intellij.diff.editor.DiffEditorTabFilesManager
import com.intellij.diff.editor.DiffEditorTabFilesUtil
import com.intellij.diff.editor.DiffRequestProcessorEditorCustomizer
import com.intellij.diff.util.DiffUserDataKeysEx
import com.intellij.openapi.Disposable
@@ -48,7 +48,7 @@ private class ShowDiffInEditorTabTooltipHolder(
}
override fun advancedSettingChanged(id: String, oldValue: Any, newValue: Any) {
if (id == DiffEditorTabFilesManager.SHOW_DIFF_IN_EDITOR_SETTING && !DiffEditorTabFilesManager.isDiffInEditor) {
if (id == DiffEditorTabFilesUtil.SHOW_DIFF_IN_EDITOR_SETTING && !DiffEditorTabFilesUtil.isDiffInEditor) {
showGotItTooltip()
}
}

View File

@@ -1,7 +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.editor.DiffEditorTabFilesUtil
import com.intellij.diff.impl.DiffWindowBase
import com.intellij.diff.tools.util.DiffSplitter
import com.intellij.ide.IdeBundle
@@ -248,7 +248,7 @@ class GitAnnotateLesson : GitLesson("Git.Annotate", GitLessonsBundle.message("gi
task("EditorEscape") {
text(GitLessonsBundle.message("git.annotate.close.all.windows",
if (DiffEditorTabFilesManager.isDiffInWindow) 0 else 1, action(it)))
if (DiffEditorTabFilesUtil.isDiffInWindow) 0 else 1, action(it)))
stateCheck {
firstDiffSplitter?.isShowing != true && secondDiffSplitter?.isShowing != true
}

View File

@@ -1,7 +1,7 @@
// Copyright 2000-2025 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.editor.DiffEditorTabFilesUtil
import com.intellij.diff.tools.util.SimpleDiffPanel
import com.intellij.icons.AllIcons
import com.intellij.openapi.project.Project
@@ -204,7 +204,7 @@ internal class GitProjectHistoryLesson : GitLesson("Git.ProjectHistory", GitLess
}
}
if (DiffEditorTabFilesManager.isDiffInWindow) {
if (DiffEditorTabFilesUtil.isDiffInWindow) {
task("EditorEscape") {
text(GitLessonsBundle.message("git.project.history.close.diff", action(it)))
stateCheck { previous.ui?.isShowing != true }