diff --git a/.idea/modules.xml b/.idea/modules.xml index 1e646cffc24e..1470dfb28dc5 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -1010,6 +1010,7 @@ + diff --git a/platform/lang-impl/intellij.platform.lang.impl.iml b/platform/lang-impl/intellij.platform.lang.impl.iml index 8d81e3c433d5..8464fd6f12ce 100644 --- a/platform/lang-impl/intellij.platform.lang.impl.iml +++ b/platform/lang-impl/intellij.platform.lang.impl.iml @@ -100,5 +100,6 @@ + \ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/execution/services/ServiceViewNavBarPanel.kt b/platform/lang-impl/src/com/intellij/execution/services/ServiceViewNavBarPanel.kt index c443c8ac3d52..0e11f4c34d19 100644 --- a/platform/lang-impl/src/com/intellij/execution/services/ServiceViewNavBarPanel.kt +++ b/platform/lang-impl/src/com/intellij/execution/services/ServiceViewNavBarPanel.kt @@ -4,13 +4,13 @@ package com.intellij.execution.services import com.intellij.execution.services.ServiceModel.ServiceViewItem import com.intellij.execution.services.ServiceViewNavBarService.ServiceViewNavBarSelector import com.intellij.icons.AllIcons -import com.intellij.ide.navbar.NavBarItemPresentation import com.intellij.ide.navbar.ide.NavBarVmImpl -import com.intellij.ide.navbar.ide.NavBarVmItem import com.intellij.ide.navbar.ui.StaticNavBarPanel import com.intellij.ide.navbar.vm.NavBarVm import com.intellij.openapi.application.EDT import com.intellij.openapi.project.Project +import com.intellij.platform.navbar.NavBarItemPresentation +import com.intellij.platform.navbar.NavBarVmItem import com.intellij.ui.SimpleTextAttributes.REGULAR_ATTRIBUTES import com.intellij.ui.components.JBPanel import com.intellij.util.ui.update.Activatable diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/NavBarItem.kt b/platform/lang-impl/src/com/intellij/ide/navbar/NavBarItem.kt index c69cbfe85572..163ca8dc74b7 100644 --- a/platform/lang-impl/src/com/intellij/ide/navbar/NavBarItem.kt +++ b/platform/lang-impl/src/com/intellij/ide/navbar/NavBarItem.kt @@ -1,9 +1,10 @@ -// Copyright 2000-2023 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.ide.navbar import com.intellij.model.Pointer import com.intellij.openapi.actionSystem.DataKey import com.intellij.platform.backend.navigation.NavigationRequest +import com.intellij.platform.navbar.NavBarItemPresentation import com.intellij.util.concurrency.annotations.RequiresBackgroundThread import com.intellij.util.concurrency.annotations.RequiresReadLock diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/actions/actions.kt b/platform/lang-impl/src/com/intellij/ide/navbar/actions/actions.kt index 6b72b5146a30..6a6560bac996 100644 --- a/platform/lang-impl/src/com/intellij/ide/navbar/actions/actions.kt +++ b/platform/lang-impl/src/com/intellij/ide/navbar/actions/actions.kt @@ -4,7 +4,6 @@ package com.intellij.ide.navbar.actions import com.intellij.ide.impl.dataRules.GetDataRule import com.intellij.ide.navbar.NavBarItem import com.intellij.ide.navbar.ide.IdeNavBarVmItem -import com.intellij.ide.navbar.ide.NavBarVmItem import com.intellij.ide.navbar.impl.DefaultNavBarItem import com.intellij.ide.navbar.impl.ModuleNavBarItem import com.intellij.ide.navbar.impl.PsiNavBarItem @@ -18,6 +17,7 @@ import com.intellij.openapi.module.ModuleUtilCore import com.intellij.openapi.project.Project import com.intellij.openapi.roots.ui.configuration.actions.ModuleDeleteProvider import com.intellij.openapi.vfs.VirtualFile +import com.intellij.platform.navbar.NavBarVmItem import com.intellij.pom.Navigatable import com.intellij.psi.PsiDirectory import com.intellij.psi.PsiElement diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/ide/DefaultNavBarPopupItem.kt b/platform/lang-impl/src/com/intellij/ide/navbar/ide/DefaultNavBarPopupItem.kt index 1a0b2784fb9e..2919064421a3 100644 --- a/platform/lang-impl/src/com/intellij/ide/navbar/ide/DefaultNavBarPopupItem.kt +++ b/platform/lang-impl/src/com/intellij/ide/navbar/ide/DefaultNavBarPopupItem.kt @@ -1,8 +1,9 @@ -// Copyright 2000-2023 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.ide.navbar.ide -import com.intellij.ide.navbar.NavBarItemPresentation import com.intellij.ide.navbar.vm.NavBarPopupItem +import com.intellij.platform.navbar.NavBarItemPresentation +import com.intellij.platform.navbar.NavBarVmItem internal class DefaultNavBarPopupItem(val item: NavBarVmItem) : NavBarPopupItem { diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/ide/IdeNavBarVmItem.kt b/platform/lang-impl/src/com/intellij/ide/navbar/ide/IdeNavBarVmItem.kt index 08af192c3e2e..9ff40f1c47c0 100644 --- a/platform/lang-impl/src/com/intellij/ide/navbar/ide/IdeNavBarVmItem.kt +++ b/platform/lang-impl/src/com/intellij/ide/navbar/ide/IdeNavBarVmItem.kt @@ -2,12 +2,13 @@ package com.intellij.ide.navbar.ide import com.intellij.ide.navbar.NavBarItem -import com.intellij.ide.navbar.NavBarItemPresentation -import com.intellij.ide.navbar.ide.NavBarVmItem.ItemExpandResult import com.intellij.ide.navbar.impl.children import com.intellij.ide.navbar.impl.isModuleContentRoot import com.intellij.model.Pointer import com.intellij.openapi.application.readAction +import com.intellij.platform.navbar.NavBarItemPresentation +import com.intellij.platform.navbar.NavBarVmItem +import com.intellij.platform.navbar.NavBarVmItem.ItemExpandResult import com.intellij.util.concurrency.ThreadingAssertions import com.intellij.util.concurrency.annotations.RequiresReadLock diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/ide/NavBarService.kt b/platform/lang-impl/src/com/intellij/ide/navbar/ide/NavBarService.kt index 07f239df2930..f55faa778bf5 100644 --- a/platform/lang-impl/src/com/intellij/ide/navbar/ide/NavBarService.kt +++ b/platform/lang-impl/src/com/intellij/ide/navbar/ide/NavBarService.kt @@ -22,6 +22,7 @@ import com.intellij.openapi.components.Service.Level.PROJECT import com.intellij.openapi.components.service import com.intellij.openapi.progress.ProcessCanceledException import com.intellij.openapi.project.Project +import com.intellij.platform.navbar.NavBarVmItem import com.intellij.platform.util.coroutines.childScope import com.intellij.platform.util.coroutines.flow.throttle import com.intellij.util.ui.EDT diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/ide/NavBarVmImpl.kt b/platform/lang-impl/src/com/intellij/ide/navbar/ide/NavBarVmImpl.kt index 10fc50f7deec..69e30398791f 100644 --- a/platform/lang-impl/src/com/intellij/ide/navbar/ide/NavBarVmImpl.kt +++ b/platform/lang-impl/src/com/intellij/ide/navbar/ide/NavBarVmImpl.kt @@ -1,11 +1,12 @@ // 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.ide.navbar.ide -import com.intellij.ide.navbar.NavBarItemPresentation import com.intellij.ide.navbar.vm.NavBarItemVm import com.intellij.ide.navbar.vm.NavBarPopupVm import com.intellij.ide.navbar.vm.NavBarVm import com.intellij.ide.navbar.vm.NavBarVm.SelectionShift +import com.intellij.platform.navbar.NavBarItemPresentation +import com.intellij.platform.navbar.NavBarVmItem import com.intellij.platform.util.coroutines.flow.zipWithNext import kotlinx.coroutines.CancellationException import kotlinx.coroutines.CoroutineScope diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/impl/DefaultNavBarItem.kt b/platform/lang-impl/src/com/intellij/ide/navbar/impl/DefaultNavBarItem.kt index 9174b176bd27..034b3794a301 100644 --- a/platform/lang-impl/src/com/intellij/ide/navbar/impl/DefaultNavBarItem.kt +++ b/platform/lang-impl/src/com/intellij/ide/navbar/impl/DefaultNavBarItem.kt @@ -1,9 +1,8 @@ -// Copyright 2000-2023 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.ide.navbar.impl import com.intellij.icons.AllIcons import com.intellij.ide.navbar.NavBarItem -import com.intellij.ide.navbar.NavBarItemPresentation import com.intellij.ide.navigationToolbar.NavBarModelExtension import com.intellij.ide.projectView.ProjectView import com.intellij.ide.projectView.impl.ProjectRootsUtil @@ -29,6 +28,7 @@ import com.intellij.openapi.vfs.VfsUtilCore import com.intellij.openapi.vfs.VirtualFile import com.intellij.platform.backend.navigation.NavigationRequest import com.intellij.platform.backend.navigation.NavigationRequests +import com.intellij.platform.navbar.NavBarItemPresentation import com.intellij.pom.Navigatable import com.intellij.problems.WolfTheProblemSolver import com.intellij.psi.* diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/tests/testFramework.kt b/platform/lang-impl/src/com/intellij/ide/navbar/tests/testFramework.kt index 4f8a53750352..675b4c63284f 100644 --- a/platform/lang-impl/src/com/intellij/ide/navbar/tests/testFramework.kt +++ b/platform/lang-impl/src/com/intellij/ide/navbar/tests/testFramework.kt @@ -2,7 +2,6 @@ package com.intellij.ide.navbar.tests import com.intellij.ide.navbar.NavBarItem -import com.intellij.ide.navbar.NavBarItemPresentation import com.intellij.ide.navbar.NavBarItemProvider import com.intellij.ide.navbar.actions.getBgData import com.intellij.ide.navbar.impl.DefaultNavBarItem @@ -12,6 +11,7 @@ import com.intellij.ide.navbar.impl.pathToItem import com.intellij.openapi.actionSystem.DataContext import com.intellij.openapi.actionSystem.DataKey import com.intellij.openapi.project.Project +import com.intellij.platform.navbar.NavBarItemPresentation import com.intellij.util.concurrency.annotations.RequiresReadLock import org.jetbrains.annotations.ApiStatus.Obsolete import org.jetbrains.annotations.TestOnly diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/ui/NavBarItemComponent.kt b/platform/lang-impl/src/com/intellij/ide/navbar/ui/NavBarItemComponent.kt index 36767a7452f6..1a1ccf852b02 100644 --- a/platform/lang-impl/src/com/intellij/ide/navbar/ui/NavBarItemComponent.kt +++ b/platform/lang-impl/src/com/intellij/ide/navbar/ui/NavBarItemComponent.kt @@ -1,9 +1,8 @@ -// Copyright 2000-2022 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.ide.navbar.ui import com.intellij.icons.AllIcons import com.intellij.icons.ExpUiIcons -import com.intellij.ide.navbar.NavBarItemPresentation import com.intellij.ide.navbar.vm.NavBarItemVm import com.intellij.ide.navigationToolbar.ui.AbstractNavBarUI import com.intellij.ide.navigationToolbar.ui.AbstractNavBarUI.getDecorationOffset @@ -16,6 +15,7 @@ import com.intellij.openapi.application.EDT import com.intellij.openapi.util.SystemInfo import com.intellij.openapi.util.registry.Registry import com.intellij.openapi.wm.IdeFocusManager +import com.intellij.platform.navbar.NavBarItemPresentation import com.intellij.ui.* import com.intellij.ui.scale.JBUIScale import com.intellij.ui.scale.ScaleContext diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/ui/NavBarPopupItemComponent.kt b/platform/lang-impl/src/com/intellij/ide/navbar/ui/NavBarPopupItemComponent.kt index 1b1b88017380..5d189093eea6 100644 --- a/platform/lang-impl/src/com/intellij/ide/navbar/ui/NavBarPopupItemComponent.kt +++ b/platform/lang-impl/src/com/intellij/ide/navbar/ui/NavBarPopupItemComponent.kt @@ -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-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.ide.navbar.ui -import com.intellij.ide.navbar.NavBarItemPresentation +import com.intellij.platform.navbar.NavBarItemPresentation import com.intellij.ui.ExperimentalUI import com.intellij.ui.RelativeFont import com.intellij.ui.SimpleColoredComponent diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/ui/NewNavBarPanel.kt b/platform/lang-impl/src/com/intellij/ide/navbar/ui/NewNavBarPanel.kt index 74c908a3e3c2..17e45407a257 100644 --- a/platform/lang-impl/src/com/intellij/ide/navbar/ui/NewNavBarPanel.kt +++ b/platform/lang-impl/src/com/intellij/ide/navbar/ui/NewNavBarPanel.kt @@ -6,7 +6,6 @@ import com.intellij.ide.IdeBundle import com.intellij.ide.navbar.actions.NavBarActionHandler.NAV_BAR_ACTION_HANDLER import com.intellij.ide.navbar.actions.NavBarActionHandlerImpl import com.intellij.ide.navbar.ide.LOG -import com.intellij.ide.navbar.ide.NavBarVmItem.Companion.SELECTED_ITEMS import com.intellij.ide.navbar.ui.NavBarItemComponent.Companion.isItemComponentFocusable import com.intellij.ide.navbar.vm.NavBarItemVm import com.intellij.ide.navbar.vm.NavBarPopupVm @@ -20,6 +19,7 @@ import com.intellij.openapi.actionSystem.ex.ActionUtil import com.intellij.openapi.application.EDT import com.intellij.openapi.application.impl.RawSwingDispatcher import com.intellij.openapi.project.Project +import com.intellij.platform.navbar.NavBarVmItem.Companion.SELECTED_ITEMS import com.intellij.ui.* import com.intellij.ui.awt.RelativePoint import com.intellij.ui.popup.PopupOwner diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/ui/StaticNavBarPanel.kt b/platform/lang-impl/src/com/intellij/ide/navbar/ui/StaticNavBarPanel.kt index 8347934d95c7..ba52b43eef77 100644 --- a/platform/lang-impl/src/com/intellij/ide/navbar/ui/StaticNavBarPanel.kt +++ b/platform/lang-impl/src/com/intellij/ide/navbar/ui/StaticNavBarPanel.kt @@ -1,10 +1,14 @@ // 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.ide.navbar.ui -import com.intellij.ide.navbar.ide.* +import com.intellij.ide.navbar.ide.NavBarVmImpl +import com.intellij.ide.navbar.ide.contextModel +import com.intellij.ide.navbar.ide.dataContext +import com.intellij.ide.navbar.ide.defaultModel import com.intellij.ide.navbar.vm.NavBarVm import com.intellij.openapi.application.EDT import com.intellij.openapi.project.Project +import com.intellij.platform.navbar.NavBarVmItem import com.intellij.platform.util.coroutines.attachAsChildTo import com.intellij.ui.components.JBPanel import kotlinx.coroutines.* diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/vm/NavBarItemVm.kt b/platform/lang-impl/src/com/intellij/ide/navbar/vm/NavBarItemVm.kt index 62f7a6222cea..6380687c94f3 100644 --- a/platform/lang-impl/src/com/intellij/ide/navbar/vm/NavBarItemVm.kt +++ b/platform/lang-impl/src/com/intellij/ide/navbar/vm/NavBarItemVm.kt @@ -1,7 +1,7 @@ -// Copyright 2000-2023 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.ide.navbar.vm -import com.intellij.ide.navbar.NavBarItemPresentation +import com.intellij.platform.navbar.NavBarItemPresentation import kotlinx.coroutines.flow.StateFlow import org.jetbrains.annotations.ApiStatus diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/vm/NavBarPopupItem.kt b/platform/lang-impl/src/com/intellij/ide/navbar/vm/NavBarPopupItem.kt index 04a2072c5a98..28ee53f373e6 100644 --- a/platform/lang-impl/src/com/intellij/ide/navbar/vm/NavBarPopupItem.kt +++ b/platform/lang-impl/src/com/intellij/ide/navbar/vm/NavBarPopupItem.kt @@ -1,7 +1,7 @@ -// Copyright 2000-2023 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.ide.navbar.vm -import com.intellij.ide.navbar.NavBarItemPresentation +import com.intellij.platform.navbar.NavBarItemPresentation import org.jetbrains.annotations.ApiStatus @ApiStatus.Internal diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/vm/NavBarVm.kt b/platform/lang-impl/src/com/intellij/ide/navbar/vm/NavBarVm.kt index b17531d4c773..b0ec1816b4aa 100644 --- a/platform/lang-impl/src/com/intellij/ide/navbar/vm/NavBarVm.kt +++ b/platform/lang-impl/src/com/intellij/ide/navbar/vm/NavBarVm.kt @@ -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.ide.navbar.vm -import com.intellij.ide.navbar.ide.NavBarVmItem +import com.intellij.platform.navbar.NavBarVmItem import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.StateFlow import org.jetbrains.annotations.ApiStatus diff --git a/platform/navbar/shared/intellij.platform.navbar.iml b/platform/navbar/shared/intellij.platform.navbar.iml new file mode 100644 index 000000000000..0f1b7b9d830e --- /dev/null +++ b/platform/navbar/shared/intellij.platform.navbar.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/NavBarItemPresentation.kt b/platform/navbar/shared/src/NavBarItemPresentation.kt similarity index 89% rename from platform/lang-impl/src/com/intellij/ide/navbar/NavBarItemPresentation.kt rename to platform/navbar/shared/src/NavBarItemPresentation.kt index 36844ea22f8a..e9f5632854a3 100644 --- a/platform/lang-impl/src/com/intellij/ide/navbar/NavBarItemPresentation.kt +++ b/platform/navbar/shared/src/NavBarItemPresentation.kt @@ -1,5 +1,5 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.ide.navbar +// 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.navbar import com.intellij.ui.SimpleTextAttributes import org.jetbrains.annotations.Nls diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/ide/NavBarVmItem.kt b/platform/navbar/shared/src/NavBarVmItem.kt similarity index 89% rename from platform/lang-impl/src/com/intellij/ide/navbar/ide/NavBarVmItem.kt rename to platform/navbar/shared/src/NavBarVmItem.kt index 0c4de16a08d6..f00094cd0ded 100644 --- a/platform/lang-impl/src/com/intellij/ide/navbar/ide/NavBarVmItem.kt +++ b/platform/navbar/shared/src/NavBarVmItem.kt @@ -1,7 +1,6 @@ // 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.ide.navbar.ide +package com.intellij.platform.navbar -import com.intellij.ide.navbar.NavBarItemPresentation import com.intellij.openapi.actionSystem.DataKey interface NavBarVmItem {