Skip to content

Commit

Permalink
Switch to IJP 242 EAP
Browse files Browse the repository at this point in the history
This in turn requires:
1. Updating the IJP Gradle plugin to 2.0 (beta)
2. Reworking the IDE sample build.gradle.kts in the new 2.0 syntax
3. Bumping the JBR version to 21
  • Loading branch information
rock3r committed Jul 2, 2024
1 parent e0cffd2 commit a7670d9
Show file tree
Hide file tree
Showing 13 changed files with 72 additions and 37 deletions.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -94,5 +94,10 @@ $RECYCLE.BIN/
# Windows shortcuts
*.lnk

### Misc

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Ignore IJP temp folder
/.intellijPlatform
1 change: 1 addition & 0 deletions buildSrc/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ rootProject.name = "buildSrc"
dependencyResolutionManagement {
repositories {
google()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
gradlePluginPortal()
mavenCentral()
}
Expand Down
4 changes: 2 additions & 2 deletions buildSrc/src/main/kotlin/jewel.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ version = when {
java {
toolchain {
vendor = JvmVendorSpec.JETBRAINS
languageVersion = JavaLanguageVersion.of(17)
languageVersion = JavaLanguageVersion.of(21)
}
}

kotlin {
jvmToolchain {
vendor = JvmVendorSpec.JETBRAINS
languageVersion = JavaLanguageVersion.of(17)
languageVersion = JavaLanguageVersion.of(21)
}

target {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import com.sun.jna.NativeLong
* Could be an address in memory (if pointer to a class or method) or a
* value (like 0 or 1)
*/
@Suppress("OVERRIDE_DEPRECATION") // Copied code
internal class ID : NativeLong {
constructor()
constructor(peer: Long) : super(peer)
Expand Down
4 changes: 3 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,7 @@ kotlin.stdlib.default.dependency=false
# See https://jb.gg/intellij-platform-kotlin-oom
kotlin.incremental.useClasspathSnapshot=false

ijp.target=241
org.jetbrains.intellij.platform.buildFeature.useBinaryReleases=false

ijp.target=242
jewel.release.version=0.19.7
14 changes: 4 additions & 10 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ commonmark = "0.22.0"
composeDesktop = "1.7.0-dev1703"
detekt = "1.23.6"
dokka = "1.9.20"
idea = "241.17890.1"
ideaGradlePlugin = "1.17.3"
idea = "242.19533.56-EAP-SNAPSHOT"
ideaPlugin = "2.0.0-beta8"
jna = "5.14.0"
kotlin = "1.9.24"
kotlinSarif = "0.5.0"
Expand All @@ -24,10 +24,6 @@ kotlinSarif = { module = "io.github.detekt.sarif4k:sarif4k", version.ref = "kotl
kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" }
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerialization" }

ij-platform-ide-core = { module = "com.jetbrains.intellij.platform:ide-core", version.ref = "idea" }
ij-platform-ide-impl = { module = "com.jetbrains.intellij.platform:ide-impl", version.ref = "idea" }
ij-platform-core-ui = { module = "com.jetbrains.intellij.platform:core-ui", version.ref = "idea" }

jna-core = { module = "net.java.dev.jna:jna", version.ref = "jna" }

# Plugin libraries for build-logic's convention plugins to use to resolve the types/tasks coming from these plugins
Expand All @@ -39,14 +35,12 @@ kotlinter-gradlePlugin = { module = "org.jmailen.gradle:kotlinter-gradle", versi
kotlinx-binaryCompatValidator-gradlePlugin = { module = "org.jetbrains.kotlinx:binary-compatibility-validator", version.ref = "kotlinxBinaryCompat" }
poko-gradlePlugin = { module = "dev.drewhamilton.poko:poko-gradle-plugin", version.ref = "poko" }

[bundles]
idea = ["ij-platform-ide-core", "ij-platform-ide-impl", "ij-platform-core-ui"]

[plugins]
composeDesktop = { id = "org.jetbrains.compose", version.ref = "composeDesktop" }
detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" }
ideaGradlePlugin = { id = "org.jetbrains.intellij", version.ref = "ideaGradlePlugin" }
ideaPlugin = { id = "org.jetbrains.intellij.platform", version.ref = "ideaPlugin" }
ideaPluginModule = { id = "org.jetbrains.intellij.platform.base", version.ref = "ideaPlugin" }
kotlinJvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlinx-binaryCompatValidator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "kotlinxBinaryCompat" }
kotlinx-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
Expand Down
17 changes: 16 additions & 1 deletion ide-laf-bridge/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,29 @@ plugins {
`jewel-check-public-api`
`ide-version-checker`
alias(libs.plugins.composeDesktop)
alias(libs.plugins.ideaPluginModule)
}

// Because we need to define IJP dependencies, the dependencyResolutionManagement
// from settings.gradle.kts is overridden and we have to redeclare everything here.
repositories {
google()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
mavenCentral()

intellijPlatform {
defaultRepositories()
}
}

dependencies {
api(projects.ui) {
exclude(group = "org.jetbrains.kotlinx")
}

compileOnly(libs.bundles.idea)
intellijPlatform {
intellijIdeaCommunity(libs.versions.idea)
}

testImplementation(compose.desktop.uiTestJUnit4)
testImplementation(compose.desktop.currentOs) {
Expand Down
18 changes: 17 additions & 1 deletion markdown/ide-laf-bridge-styling/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,29 @@ plugins {
`jewel-publish`
`jewel-check-public-api`
alias(libs.plugins.composeDesktop)
alias(libs.plugins.ideaPluginModule)
}

// Because we need to define IJP dependencies, the dependencyResolutionManagement
// from settings.gradle.kts is overridden and we have to redeclare everything here.
repositories {
google()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
mavenCentral()

intellijPlatform {
defaultRepositories()
}
}

dependencies {
api(projects.markdown.core)
api(projects.ideLafBridge)
compileOnly(projects.markdown.extension.gfmAlerts)
compileOnly(libs.bundles.idea)

intellijPlatform {
intellijIdeaCommunity(libs.versions.idea)
}

testImplementation(compose.desktop.uiTestJUnit4)
}
Expand Down
31 changes: 17 additions & 14 deletions samples/ide-plugin/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,28 +1,27 @@
plugins {
jewel
alias(libs.plugins.composeDesktop)
alias(libs.plugins.ideaGradlePlugin)
alias(libs.plugins.ideaPlugin)
`android-studio-releases-generator`
}

intellij {
pluginName = "Jewel Demo"
plugins = listOf("org.jetbrains.kotlin")
version = libs.versions.idea.get()
}

// TODO remove this once the IJ Gradle plugin fixes their repositories bug
// See https://github.com/JetBrains/gradle-intellij-plugin/issues/776
// Because we need to define IJP dependencies, the dependencyResolutionManagement
// from settings.gradle.kts is overridden and we have to redeclare everything here.
repositories {
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
maven("https://www.jetbrains.com/intellij-repository/releases")
maven("https://cache-redirector.jetbrains.com/intellij-dependencies")
google()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
mavenCentral()


intellijPlatform {
defaultRepositories()
}
}

dependencies {
intellijPlatform {
intellijIdeaCommunity(libs.versions.idea)
instrumentationTools()
}

implementation(projects.ideLafBridge) {
exclude(group = "org.jetbrains.kotlinx")
}
Expand All @@ -37,6 +36,10 @@ dependencies {
}
}

intellijPlatform {
pluginConfiguration { name = "Jewel Demo" }
}

tasks {
// We don't have any settings in the demo plugin
buildSearchableOptions {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,10 @@ import com.intellij.ui.components.JBScrollPane
import com.intellij.ui.dsl.builder.BottomGap
import com.intellij.ui.dsl.builder.Panel
import com.intellij.ui.dsl.builder.panel
import com.intellij.ui.scale.JBUIScale.scale
import com.intellij.ui.util.maximumHeight
import com.intellij.util.ImageLoader
import com.intellij.util.ui.ComponentWithEmptyText
import com.intellij.util.ui.ImageUtil
import com.intellij.util.ui.JBDimension
import com.intellij.util.ui.JBFont
import com.intellij.util.ui.JBUI
import com.intellij.util.ui.components.BorderLayoutPanel
Expand Down Expand Up @@ -49,7 +48,7 @@ private class ItemDetailsPanel(
if (bufferedImage != null) {
val imageContainer =
ImageComponent(scope).apply {
maximumHeight = scale(200)
maximumSize = JBDimension(Int.MAX_VALUE, 200)
image = bufferedImage
}

Expand Down
2 changes: 1 addition & 1 deletion samples/standalone/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ tasks {
// register the task in the afterEvaluate block
afterEvaluate {
javaLauncher = project.javaToolchains.launcherFor {
languageVersion = JavaLanguageVersion.of(17)
languageVersion = JavaLanguageVersion.of(21)
vendor = JvmVendorSpec.JETBRAINS
}
setExecutable(javaLauncher.map { it.executablePath.asFile.absolutePath }.get())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ internal fun findViews(packageName: String): List<ViewInfo> {
val kFunc = it.kotlinFunction ?: return@mapNotNull null
if (kFunc.parameters.isNotEmpty() || kFunc.returnType.classifier != Unit::class) return@mapNotNull null

@Suppress("UNCHECKED_CAST")
ViewInfo(
title = annotation.title,
position = annotation.position,
Expand Down
6 changes: 2 additions & 4 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@ rootProject.name = "jewel"

pluginManagement {
repositories {
gradlePluginPortal()
maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/")
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
maven("https://oss.sonatype.org/content/repositories/snapshots/")
gradlePluginPortal()
mavenCentral()
}
}
Expand All @@ -17,9 +18,6 @@ dependencyResolutionManagement {
repositories {
google()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
maven("https://www.jetbrains.com/intellij-repository/releases")
maven("https://www.jetbrains.com/intellij-repository/snapshots")
maven("https://cache-redirector.jetbrains.com/intellij-dependencies")
mavenCentral()
}
}
Expand Down

0 comments on commit a7670d9

Please sign in to comment.