diff --git a/platform/jewel/gradle/libs.versions.toml b/platform/jewel/gradle/libs.versions.toml index ca6211168475..39d4c2ed3dcc 100644 --- a/platform/jewel/gradle/libs.versions.toml +++ b/platform/jewel/gradle/libs.versions.toml @@ -4,8 +4,8 @@ composeDesktop = "1.8.0-alpha04" detekt = "1.23.6" dokka = "2.0.0" filepicker = "3.1.0" -idea = "251.23774.109" -intelliJPlatformBuild = "251.23774.109-EAP-SNAPSHOT" +idea = "251.23774.318" +intelliJPlatformBuild = "251.23774.318-EAP-SNAPSHOT" ideaPlugin = "2.4.0" jna = "5.17.0" kotlin = "2.1.10" diff --git a/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/JewelComposePanelWrapper.kt b/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/JewelComposePanelWrapper.kt index d2468190178d..859d164825f3 100644 --- a/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/JewelComposePanelWrapper.kt +++ b/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/JewelComposePanelWrapper.kt @@ -13,16 +13,16 @@ import androidx.compose.ui.platform.LocalWindowInfo import androidx.compose.ui.unit.toSize import com.intellij.openapi.actionSystem.DataSink import com.intellij.openapi.actionSystem.UiDataProvider -import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.PathManager -import com.intellij.openapi.util.registry.Registry import java.awt.BorderLayout +import java.io.File import javax.swing.JComponent import javax.swing.JPanel import org.jetbrains.jewel.bridge.actionSystem.ComponentDataProviderBridge import org.jetbrains.jewel.bridge.theme.SwingBridgeTheme import org.jetbrains.jewel.foundation.ExperimentalJewelApi import org.jetbrains.jewel.foundation.InternalJewelApi +import org.jetbrains.jewel.foundation.util.JewelLogger @Suppress("ktlint:standard:function-naming", "FunctionName") // Swing to Compose bridge API public fun JewelComposePanel(config: ComposePanel.() -> Unit = {}, content: @Composable () -> Unit): JComponent = @@ -85,10 +85,12 @@ public fun JewelToolWindowNoThemeComposePanel( private fun createJewelComposePanel(config: ComposePanel.(JewelComposePanelWrapper) -> Unit): JewelComposePanelWrapper { if (System.getProperty("skiko.library.path") == null) { - System.setProperty("skiko.library.path", PathManager.getLibPath() + "/skiko-awt-runtime-all") - } - if (ApplicationManager.getApplication().isInternal) { - System.setProperty("compose.swing.render.on.graphics", Registry.stringValue("compose.swing.render.on.graphics")) + val bundledSkikoFolder = File(PathManager.getLibPath(), "/skiko-awt-runtime-all") + if (bundledSkikoFolder.isDirectory && bundledSkikoFolder.canRead()) { + System.setProperty("skiko.library.path", PathManager.getLibPath() + "/skiko-awt-runtime-all") + } else { + JewelLogger.getInstance("SkikoLoader").warn("Bundled Skiko not found/not readable, falling back to default") + } } val jewelPanel = JewelComposePanelWrapper() jewelPanel.layout = BorderLayout() diff --git a/platform/jewel/markdown/int-ui-standalone-styling/src/main/resources/intellij.platform.jewel.markdown.intUiStandaloneStyling.xml b/platform/jewel/markdown/int-ui-standalone-styling/src/main/resources/intellij.platform.jewel.markdown.intUiStandaloneStyling.xml index 573a8fb14ccf..58b6378c94e2 100644 --- a/platform/jewel/markdown/int-ui-standalone-styling/src/main/resources/intellij.platform.jewel.markdown.intUiStandaloneStyling.xml +++ b/platform/jewel/markdown/int-ui-standalone-styling/src/main/resources/intellij.platform.jewel.markdown.intUiStandaloneStyling.xml @@ -1,9 +1,9 @@ - - - - - - - + + + + + + + diff --git a/platform/jewel/samples/ide-plugin/build.gradle.kts b/platform/jewel/samples/ide-plugin/build.gradle.kts index 6cd7c8db975a..d899c2f861d6 100644 --- a/platform/jewel/samples/ide-plugin/build.gradle.kts +++ b/platform/jewel/samples/ide-plugin/build.gradle.kts @@ -32,21 +32,19 @@ repositories { } dependencies { - intellijPlatform { intellijIdeaCommunity(libs.versions.idea) } + intellijPlatform { + intellijIdeaCommunity(libs.versions.idea) - implementation(projects.samples.showcase) { exclude(group = "org.jetbrains.kotlinx") } - implementation(projects.ideLafBridge) { exclude(group = "org.jetbrains.kotlinx") } - implementation(projects.markdown.ideLafBridgeStyling) { exclude(group = "org.jetbrains.kotlinx") } - - implementation(compose.desktop.currentOs) { - exclude(group = "org.jetbrains.compose.material") - exclude(group = "org.jetbrains.kotlinx") + bundledModule("intellij.platform.jewel.foundation") + bundledModule("intellij.platform.jewel.ui") + bundledModule("intellij.platform.jewel.ideLafBridge") + bundledModule("intellij.platform.jewel.markdown.core") + bundledModule("intellij.platform.jewel.markdown.ideLafBridgeStyling") + bundledModule("intellij.libraries.compose.foundation.desktop") + bundledModule("intellij.libraries.skiko") } - // TODO remove once https://youtrack.jetbrains.com/issue/IJPL-166436 is fixed - implementation("androidx.lifecycle:lifecycle-common-jvm:2.8.5") { exclude(group = "org.jetbrains.kotlinx") } - implementation("androidx.lifecycle:lifecycle-runtime-desktop:2.8.5") { exclude(group = "org.jetbrains.kotlinx") } - // END TODO + implementation(projects.samples.showcase) { exclude(group = "org.jetbrains.kotlinx") } } intellijPlatform { diff --git a/platform/jewel/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt b/platform/jewel/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt index 45cc2485e8ba..6eab2a0cf746 100644 --- a/platform/jewel/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt +++ b/platform/jewel/samples/ide-plugin/src/main/kotlin/org/jetbrains/jewel/samples/ideplugin/SwingComparisonTabPanel.kt @@ -49,9 +49,7 @@ import org.jetbrains.jewel.bridge.JewelComposePanel import org.jetbrains.jewel.bridge.medium import org.jetbrains.jewel.foundation.theme.JewelTheme import org.jetbrains.jewel.ui.component.DefaultButton -import org.jetbrains.jewel.ui.component.EditableListComboBox import org.jetbrains.jewel.ui.component.Icon -import org.jetbrains.jewel.ui.component.ListComboBox import org.jetbrains.jewel.ui.component.OutlinedButton import org.jetbrains.jewel.ui.component.Text import org.jetbrains.jewel.ui.component.TextArea @@ -278,12 +276,12 @@ internal class SwingComparisonTabPanel : BorderLayoutPanel() { Text("Not editable") Text(text = "Selected item: $selectedText") - ListComboBox( - items = comboBoxItems, - selectedIndex = selectedIndex, - onSelectedItemChange = { selectedIndex = it }, - modifier = Modifier.width(200.dp), - ) + // ListComboBox( + // items = comboBoxItems, + // selectedIndex = selectedIndex, + // onSelectedItemChange = { selectedIndex = it }, + // modifier = Modifier.width(200.dp), + // ) } Column { @@ -293,13 +291,13 @@ internal class SwingComparisonTabPanel : BorderLayoutPanel() { Text("Not editable + disabled") Text(text = "Selected item: $selectedText") - ListComboBox( - items = comboBoxItems, - selectedIndex = selectedIndex, - onSelectedItemChange = { selectedIndex = it }, - modifier = Modifier.width(200.dp), - enabled = false, - ) + // ListComboBox( + // items = comboBoxItems, + // selectedIndex = selectedIndex, + // onSelectedItemChange = { selectedIndex = it }, + // modifier = Modifier.width(200.dp), + // enabled = false, + // ) } Column { @@ -309,13 +307,13 @@ internal class SwingComparisonTabPanel : BorderLayoutPanel() { Text("Editable") Text(text = "Selected item: $selectedText") - EditableListComboBox( - items = comboBoxItems, - selectedIndex = selectedIndex, - onSelectedItemChange = { selectedIndex = it }, - modifier = Modifier.width(200.dp), - maxPopupHeight = 150.dp, - ) + // EditableListComboBox( + // items = comboBoxItems, + // selectedIndex = selectedIndex, + // onSelectedItemChange = { selectedIndex = it }, + // modifier = Modifier.width(200.dp), + // maxPopupHeight = 150.dp, + // ) } Column { @@ -325,13 +323,13 @@ internal class SwingComparisonTabPanel : BorderLayoutPanel() { Text("Editable + disabled") Text(text = "Selected item: $selectedText") - EditableListComboBox( - items = comboBoxItems, - selectedIndex = selectedIndex, - onSelectedItemChange = { selectedIndex = it }, - modifier = Modifier.width(200.dp), - enabled = false, - ) + // EditableListComboBox( + // items = comboBoxItems, + // selectedIndex = selectedIndex, + // onSelectedItemChange = { selectedIndex = it }, + // modifier = Modifier.width(200.dp), + // enabled = false, + // ) } } } diff --git a/platform/jewel/samples/ide-plugin/src/main/resources/META-INF/plugin.xml b/platform/jewel/samples/ide-plugin/src/main/resources/META-INF/plugin.xml index f70b089d90da..49df47b9759c 100644 --- a/platform/jewel/samples/ide-plugin/src/main/resources/META-INF/plugin.xml +++ b/platform/jewel/samples/ide-plugin/src/main/resources/META-INF/plugin.xml @@ -9,7 +9,15 @@ A plugin that demonstrates the capabilities of the Jewel library and Compose. See the Jewel repository for more information. ]]> - com.intellij.modules.platform + + + + + + + + + messages.JewelBundle diff --git a/platform/jewel/samples/showcase/build.gradle.kts b/platform/jewel/samples/showcase/build.gradle.kts index adae6f9f4c60..ab263e2bad96 100644 --- a/platform/jewel/samples/showcase/build.gradle.kts +++ b/platform/jewel/samples/showcase/build.gradle.kts @@ -6,9 +6,9 @@ plugins { } dependencies { - implementation(project(":foundation")) - implementation(project(":ui")) - implementation(projects.markdown.core) + compileOnly(project(":foundation")) + compileOnly(project(":ui")) + compileOnly(projects.markdown.core) testImplementation(compose.desktop.uiTestJUnit4) testImplementation(compose.desktop.currentOs) { exclude(group = "org.jetbrains.compose.material") } }