diff --git a/.idea/modules.xml b/.idea/modules.xml
index 37132152573e..dd1df8cd8363 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -1017,6 +1017,7 @@
+
diff --git a/platform/intellij.platform.ide.frontend.main/intellij.platform.ide.frontend.main.iml b/platform/intellij.platform.ide.frontend.main/intellij.platform.ide.frontend.main.iml
index 1d5ae3e4a288..06dcc5302a44 100644
--- a/platform/intellij.platform.ide.frontend.main/intellij.platform.ide.frontend.main.iml
+++ b/platform/intellij.platform.ide.frontend.main/intellij.platform.ide.frontend.main.iml
@@ -6,5 +6,6 @@
+
\ No newline at end of file
diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/actions/extensions.kt b/platform/lang-impl/src/com/intellij/ide/navbar/actions/extensions.kt
index 206898c0f599..5acda4c29854 100644
--- a/platform/lang-impl/src/com/intellij/ide/navbar/actions/extensions.kt
+++ b/platform/lang-impl/src/com/intellij/ide/navbar/actions/extensions.kt
@@ -9,7 +9,7 @@ import com.intellij.openapi.actionSystem.DataProvider
*
* TODO consider a new extension for that OR new API for cut/copy/paste
*/
-internal fun extensionData(dataId: String): Any? {
+fun extensionData(dataId: String): Any? {
return extensionData(dataId, emptyDataProvider)
}
diff --git a/platform/navbar.compatibility/ide/intellij.platform.navbar.compatibility.ide.iml b/platform/navbar.compatibility/ide/intellij.platform.navbar.compatibility.ide.iml
new file mode 100644
index 000000000000..e16a6616278f
--- /dev/null
+++ b/platform/navbar.compatibility/ide/intellij.platform.navbar.compatibility.ide.iml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/platform/navbar.compatibility/ide/resources/intellij.platform.navbar.compatibility.ide.xml b/platform/navbar.compatibility/ide/resources/intellij.platform.navbar.compatibility.ide.xml
new file mode 100644
index 000000000000..bfcdcb1dda4d
--- /dev/null
+++ b/platform/navbar.compatibility/ide/resources/intellij.platform.navbar.compatibility.ide.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/ui/NavBarContextMenuActionGroup.kt b/platform/navbar.compatibility/ide/src/NavBarContextMenuActionGroup.kt
similarity index 88%
rename from platform/lang-impl/src/com/intellij/ide/navbar/ui/NavBarContextMenuActionGroup.kt
rename to platform/navbar.compatibility/ide/src/NavBarContextMenuActionGroup.kt
index 1a48e423e578..f1c374751215 100644
--- a/platform/lang-impl/src/com/intellij/ide/navbar/ui/NavBarContextMenuActionGroup.kt
+++ b/platform/navbar.compatibility/ide/src/NavBarContextMenuActionGroup.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.ui
+// 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.compatibility.ide
import com.intellij.ide.navigationToolbar.NavBarModelExtension
import com.intellij.ide.ui.customization.CustomActionsSchema
diff --git a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/SelectInNavBarTarget.java b/platform/navbar.compatibility/ide/src/SelectInNavBarTarget.java
similarity index 98%
rename from platform/lang-impl/src/com/intellij/ide/navigationToolbar/SelectInNavBarTarget.java
rename to platform/navbar.compatibility/ide/src/SelectInNavBarTarget.java
index 623b829b7593..cea30b835afd 100644
--- a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/SelectInNavBarTarget.java
+++ b/platform/navbar.compatibility/ide/src/SelectInNavBarTarget.java
@@ -1,5 +1,5 @@
// 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.navigationToolbar;
+package com.intellij.platform.navbar.compatibility.ide;
import com.intellij.ide.DataManager;
import com.intellij.ide.IdeBundle;
diff --git a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/ShowNavBarAction.java b/platform/navbar.compatibility/ide/src/ShowNavBarAction.java
similarity index 89%
rename from platform/lang-impl/src/com/intellij/ide/navigationToolbar/ShowNavBarAction.java
rename to platform/navbar.compatibility/ide/src/ShowNavBarAction.java
index d2a830204e21..5f206cfe3940 100644
--- a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/ShowNavBarAction.java
+++ b/platform/navbar.compatibility/ide/src/ShowNavBarAction.java
@@ -1,9 +1,8 @@
// 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.navigationToolbar;
+package com.intellij.platform.navbar.compatibility.ide;
import com.intellij.ide.ui.NavBarLocation;
import com.intellij.ide.ui.UISettings;
-import com.intellij.idea.ActionsBundle;
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.actionSystem.remoting.ActionRemoteBehaviorSpecification;
import com.intellij.openapi.project.DumbAware;
@@ -11,6 +10,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.platform.navbar.ide.NavBarService;
import org.jetbrains.annotations.NotNull;
+import static com.intellij.platform.navbar.ide.NavBarIdeBundle.messagePointer;
import static com.intellij.platform.navbar.ide.NavBarServiceKt.isNavbarShown;
/**
@@ -45,7 +45,7 @@ final class ShowNavBarAction extends AnAction implements DumbAware, PopupAction,
// see RIDER-15982
if (!ActionPlaces.isMainMenuOrActionSearch(e.getPlace())) {
- e.getPresentation().setText(ActionsBundle.messagePointer("action.ShowNavBar.ShortText"));
+ e.getPresentation().setText(messagePointer("action.ShowNavBar.ShortText"));
}
}
diff --git a/platform/navbar.compatibility/ide/src/package-info.java b/platform/navbar.compatibility/ide/src/package-info.java
new file mode 100644
index 000000000000..acd1542129dd
--- /dev/null
+++ b/platform/navbar.compatibility/ide/src/package-info.java
@@ -0,0 +1,5 @@
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+@Internal
+package com.intellij.platform.navbar.compatibility.ide;
+
+import org.jetbrains.annotations.ApiStatus.Internal;
diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/ide/rules.kt b/platform/navbar.compatibility/ide/src/rules.kt
similarity index 97%
rename from platform/lang-impl/src/com/intellij/ide/navbar/ide/rules.kt
rename to platform/navbar.compatibility/ide/src/rules.kt
index 22317fba44fc..e34d8aacd6df 100644
--- a/platform/lang-impl/src/com/intellij/ide/navbar/ide/rules.kt
+++ b/platform/navbar.compatibility/ide/src/rules.kt
@@ -1,5 +1,5 @@
// 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.compatibility.ide
import com.intellij.ide.CopyPasteDelegator
import com.intellij.ide.CopyPasteSupport
diff --git a/platform/navbar/ide/resources/messages/NavBarIdeBundle.properties b/platform/navbar/ide/resources/messages/NavBarIdeBundle.properties
index 6ebde549e574..9c4c4914c48e 100644
--- a/platform/navbar/ide/resources/messages/NavBarIdeBundle.properties
+++ b/platform/navbar/ide/resources/messages/NavBarIdeBundle.properties
@@ -1,3 +1,5 @@
+action.ShowNavBar.text=_Jump to Navigation Bar
+action.ShowNavBar.ShortText=Navigation Bar
group.NavBarActions.text=Navigation Bar Actions
action.NavBar-selectHome.text=Select First Item
action.NavBar-selectEnd.text=Select Last Item
diff --git a/platform/navbar/ide/src/NavBarIdeBundle.kt b/platform/navbar/ide/src/NavBarIdeBundle.kt
new file mode 100644
index 000000000000..05cb64e5f8fc
--- /dev/null
+++ b/platform/navbar/ide/src/NavBarIdeBundle.kt
@@ -0,0 +1,30 @@
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+@file:JvmName("NavBarIdeBundle")
+@file:Internal
+
+package com.intellij.platform.navbar.ide
+
+import com.intellij.DynamicBundle
+import org.jetbrains.annotations.ApiStatus.Internal
+import org.jetbrains.annotations.Nls
+import org.jetbrains.annotations.NonNls
+import org.jetbrains.annotations.PropertyKey
+import java.lang.invoke.MethodHandles
+import java.util.function.Supplier
+
+private const val BUNDLE_FQN: @NonNls String = "messages.NavBarIdeBundle"
+private val BUNDLE = DynamicBundle(MethodHandles.lookup().lookupClass(), BUNDLE_FQN)
+
+fun message(
+ key: @PropertyKey(resourceBundle = BUNDLE_FQN) String,
+ vararg params: Any
+): @Nls String {
+ return BUNDLE.getMessage(key, *params)
+}
+
+fun messagePointer(
+ key: @PropertyKey(resourceBundle = BUNDLE_FQN) String,
+ vararg params: Any
+): Supplier {
+ return BUNDLE.getLazyMessage(key, *params)
+}
diff --git a/platform/platform-resources-en/src/messages/ActionsBundle.properties b/platform/platform-resources-en/src/messages/ActionsBundle.properties
index b7ade0515988..12c31802e20e 100644
--- a/platform/platform-resources-en/src/messages/ActionsBundle.properties
+++ b/platform/platform-resources-en/src/messages/ActionsBundle.properties
@@ -1461,9 +1461,6 @@ action.IntegrateFiles.description=Integrate selected files or directories
action.Vcs.IntegrateProject.text=Inte_grate Project
action.Vcs.IntegrateProject.description=Integrate project
-action.ShowNavBar.text=_Jump to Navigation Bar
-action.ShowNavBar.ShortText=Navigation Bar
-
group.ProjectView.ToolWindow.SecondaryActions.text=Project View Options
group.ProjectView.ToolWindow.Appearance.Actions.text=Tree Appearance
action.ProjectView.AbbreviatePackageNames.text=Abbreviate Qualified Package Names
diff --git a/platform/platform-resources/src/META-INF/LangExtensions.xml b/platform/platform-resources/src/META-INF/LangExtensions.xml
index 28cdc5bdfda7..64b0d7fe2010 100644
--- a/platform/platform-resources/src/META-INF/LangExtensions.xml
+++ b/platform/platform-resources/src/META-INF/LangExtensions.xml
@@ -697,10 +697,6 @@
-
-
-
-
@@ -752,7 +748,6 @@
-
diff --git a/platform/platform-resources/src/META-INF/PlatformLangPlugin.xml b/platform/platform-resources/src/META-INF/PlatformLangPlugin.xml
index 5707b9a01e01..0fa89da5353c 100644
--- a/platform/platform-resources/src/META-INF/PlatformLangPlugin.xml
+++ b/platform/platform-resources/src/META-INF/PlatformLangPlugin.xml
@@ -10,6 +10,7 @@
+
diff --git a/platform/platform-resources/src/idea/LangActions.xml b/platform/platform-resources/src/idea/LangActions.xml
index 8420f693566d..4da22b8c2244 100644
--- a/platform/platform-resources/src/idea/LangActions.xml
+++ b/platform/platform-resources/src/idea/LangActions.xml
@@ -447,7 +447,6 @@
-
@@ -999,7 +998,6 @@