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.DiffEditorEscapeAction
com.intellij.diff.editor.DiffEditorTabFilesManager com.intellij.diff.editor.DiffEditorTabFilesManager
- sf:Companion:com.intellij.diff.editor.DiffEditorTabFilesManager$Companion - 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: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 - a:isDiffOpenedInWindow(com.intellij.openapi.vfs.VirtualFile):Z
- s:setDiffInEditor(Z):V
- showDiffFile(com.intellij.openapi.vfs.VirtualFile,Z):com.intellij.openapi.fileEditor.FileEditor[] - 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[] - a:showDiffFile(com.intellij.openapi.vfs.VirtualFile,Z,Z):com.intellij.openapi.fileEditor.FileEditor[]
f:com.intellij.diff.editor.DiffEditorTabFilesManager$Companion 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: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 c:com.intellij.diff.editor.DiffEditorViewerFileEditor
- com.intellij.diff.util.FileEditorBase - com.intellij.diff.util.FileEditorBase
- com.intellij.openapi.fileEditor.FileEditorWithTextEditors - 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. // 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 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.diff.tools.external.ExternalDiffTool
import com.intellij.idea.ActionsBundle.message import com.intellij.idea.ActionsBundle.message
import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.actionSystem.AnActionEvent
@@ -28,7 +28,7 @@ internal class ShowStandaloneDiffAction : ExtendableAction(EP_NAME), DumbAware {
val project = e.project val project = e.project
with(e.presentation) { with(e.presentation) {
if (isDiffInEditor) { if (DiffEditorTabFilesUtil.isDiffInEditor) {
text = message("action.Diff.ShowStandaloneDiff.tab.text") text = message("action.Diff.ShowStandaloneDiff.tab.text")
description = message("action.Diff.ShowStandaloneDiff.tab.description") 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.components.service
import com.intellij.openapi.fileEditor.FileEditor import com.intellij.openapi.fileEditor.FileEditor
import com.intellij.openapi.options.advanced.AdvancedSettings
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFile
@@ -11,7 +10,7 @@ interface DiffEditorTabFilesManager {
fun showDiffFile(diffFile: VirtualFile, focusEditor: Boolean): Array<out FileEditor> { fun showDiffFile(diffFile: VirtualFile, focusEditor: Boolean): Array<out FileEditor> {
DiffEditorTabFilesUtil.setForceOpeningsInNewWindow(diffFile, null) 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> fun showDiffFile(diffFile: VirtualFile, focusEditor: Boolean, openInEditor: Boolean): Array<out FileEditor>
@@ -23,23 +22,6 @@ interface DiffEditorTabFilesManager {
fun isDiffOpenedInWindow(file: VirtualFile): Boolean fun isDiffOpenedInWindow(file: VirtualFile): Boolean
companion object { 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 @JvmStatic
fun getInstance(project: Project): DiffEditorTabFilesManager = project.service() 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) { override fun actionPerformed(e: AnActionEvent) {
DiffEditorTabFilesManager.isDiffInEditor = !openInNewWindow DiffEditorTabFilesUtil.isDiffInEditor = !openInNewWindow
} }
internal class ToEditor : MoveDiffEditorAction(false) internal class ToEditor : MoveDiffEditorAction(false)
@@ -75,7 +75,7 @@ internal abstract class MoveDiffEditorAction(private val openInNewWindow: Boolea
internal class EditorTabDiffPreviewAdvancedSettingsListener : AdvancedSettingsChangeListener { internal class EditorTabDiffPreviewAdvancedSettingsListener : AdvancedSettingsChangeListener {
override fun advancedSettingChanged(id: String, oldValue: Any, newValue: Any) { 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) { for (project in ProjectManager.getInstance().openProjects) {
reopenDiffEditorsForFiles(project) 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. * Unlike [com.intellij.diff.editor.DiffEditorViewerFileEditor.reloadDiffEditorsForFiles], should not try to reopen tabs in-place.
*/ */
private fun reopenDiffEditorsForFiles(project: Project) { private fun reopenDiffEditorsForFiles(project: Project) {
val isOpenInNewWindow = DiffEditorTabFilesManager.isDiffInWindow val isOpenInNewWindow = DiffEditorTabFilesUtil.isDiffInWindow
val editorManager = FileEditorManager.getInstance(project) as? FileEditorManagerImpl ?: return val editorManager = FileEditorManager.getInstance(project) as? FileEditorManagerImpl ?: return
val diffEditorManager = DiffEditorTabFilesManager.getInstance(project) val diffEditorManager = DiffEditorTabFilesManager.getInstance(project)
@@ -136,9 +136,9 @@ internal class DiffInWindowDndListener : FileOpenedSyncListener {
} ?: return } ?: return
val isFileInEditor = !isSingletonEditorInWindow(window) val isFileInEditor = !isSingletonEditorInWindow(window)
if (DiffEditorTabFilesManager.isDiffInEditor != isFileInEditor) { if (DiffEditorTabFilesUtil.isDiffInEditor != isFileInEditor) {
invokeLater(ModalityState.nonModal()) { 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. // 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 package com.intellij.diff.editor
import com.intellij.openapi.options.advanced.AdvancedSettings
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Key import com.intellij.openapi.util.Key
import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFile
@@ -8,6 +9,24 @@ import org.jetbrains.annotations.ApiStatus
@ApiStatus.Internal @ApiStatus.Internal
object DiffEditorTabFilesUtil { 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") private val FORCE_OPENING_IN_NEW_WINDOW: Key<Boolean> = Key.create("Diff.ForceOpeningInNewWindow")
internal fun setForceOpeningsInNewWindow(file: VirtualFile, value: Boolean?) { internal fun setForceOpeningsInNewWindow(file: VirtualFile, value: Boolean?) {
@@ -23,4 +42,4 @@ object DiffEditorTabFilesUtil {
setForceOpeningsInNewWindow(file, true) setForceOpeningsInNewWindow(file, true)
DiffEditorTabFilesManager.getInstance(project).showDiffFile(file, requestFocus, false) DiffEditorTabFilesManager.getInstance(project).showDiffFile(file, requestFocus, false)
} }
} }

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. // 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 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.FileEditorState
import com.intellij.openapi.fileEditor.FileEditorStateLevel import com.intellij.openapi.fileEditor.FileEditorStateLevel
import com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl import com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl
@@ -12,7 +12,7 @@ internal data class DiffRequestProcessorEditorState(
@JvmField val embeddedEditorStates: List<TextEditorState> @JvmField val embeddedEditorStates: List<TextEditorState>
) : FileEditorStateWithPreferredOpenMode { ) : FileEditorStateWithPreferredOpenMode {
override val openMode: FileEditorManagerImpl.OpenMode? 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 { override fun canBeMergedWith(otherState: FileEditorState, level: FileEditorStateLevel): Boolean {
return otherState is DiffRequestProcessorEditorState && return otherState is DiffRequestProcessorEditorState &&

View File

@@ -2,7 +2,7 @@
package com.intellij.diff.tools.combined package com.intellij.diff.tools.combined
import com.intellij.diff.* 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.DiffEditorViewer
import com.intellij.diff.impl.DiffEditorViewerListener import com.intellij.diff.impl.DiffEditorViewerListener
import com.intellij.diff.impl.DiffRequestProcessor import com.intellij.diff.impl.DiffRequestProcessor
@@ -261,7 +261,7 @@ internal data class CombinedDiffEditorState(
val activeEditorStates: List<TextEditorState>, val activeEditorStates: List<TextEditorState>,
) : FileEditorStateWithPreferredOpenMode { ) : FileEditorStateWithPreferredOpenMode {
override val openMode: FileEditorManagerImpl.OpenMode? 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 { override fun canBeMergedWith(otherState: FileEditorState, level: FileEditorStateLevel): Boolean {
return otherState is CombinedDiffEditorState && 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. // 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 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.DiffEditorViewer
import com.intellij.diff.impl.DiffRequestProcessor import com.intellij.diff.impl.DiffRequestProcessor
import com.intellij.diff.impl.DiffRequestProcessorListener 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) 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() 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. // 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 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.fileEditor.impl.FileEditorManagerImpl
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFile
@@ -10,7 +10,7 @@ import com.intellij.platform.recentFiles.frontend.RecentFilesNavigator
internal class DiffRecentFilesNavigator : RecentFilesNavigator { internal class DiffRecentFilesNavigator : RecentFilesNavigator {
override fun getEditorOpenOptions(project: Project, file: VirtualFile): FileEditorManagerImpl.OpenMode? { override fun getEditorOpenOptions(project: Project, file: VirtualFile): FileEditorManagerImpl.OpenMode? {
// TODO - "Open Diff as Editor Tab" advanced setting is duplicated on client and host // 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 FileEditorManagerImpl.OpenMode.NEW_WINDOW
else null else null
} }

View File

@@ -4,7 +4,7 @@ package com.intellij.openapi.vcs.changes
import com.intellij.diff.DiffContext import com.intellij.diff.DiffContext
import com.intellij.diff.actions.impl.SetEditorSettingsAction import com.intellij.diff.actions.impl.SetEditorSettingsAction
import com.intellij.diff.actions.impl.SetEditorSettingsActionGroup 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.editor.DiffRequestProcessorEditorCustomizer
import com.intellij.diff.util.DiffUserDataKeysEx import com.intellij.diff.util.DiffUserDataKeysEx
import com.intellij.openapi.Disposable import com.intellij.openapi.Disposable
@@ -48,7 +48,7 @@ private class ShowDiffInEditorTabTooltipHolder(
} }
override fun advancedSettingChanged(id: String, oldValue: Any, newValue: Any) { 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() 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. // 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 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.impl.DiffWindowBase
import com.intellij.diff.tools.util.DiffSplitter import com.intellij.diff.tools.util.DiffSplitter
import com.intellij.ide.IdeBundle import com.intellij.ide.IdeBundle
@@ -248,7 +248,7 @@ class GitAnnotateLesson : GitLesson("Git.Annotate", GitLessonsBundle.message("gi
task("EditorEscape") { task("EditorEscape") {
text(GitLessonsBundle.message("git.annotate.close.all.windows", 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 { stateCheck {
firstDiffSplitter?.isShowing != true && secondDiffSplitter?.isShowing != true 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. // 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 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.diff.tools.util.SimpleDiffPanel
import com.intellij.icons.AllIcons import com.intellij.icons.AllIcons
import com.intellij.openapi.project.Project 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") { task("EditorEscape") {
text(GitLessonsBundle.message("git.project.history.close.diff", action(it))) text(GitLessonsBundle.message("git.project.history.close.diff", action(it)))
stateCheck { previous.ui?.isShowing != true } stateCheck { previous.ui?.isShowing != true }