User: rednesto Date: 14 Jul 24 11:07 Revision: c03b99024c7643b0d11b4cbf09eec6ebcd095e2e Summary: Merge branch '2023.3' into 2024.1 TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=9441&personal=false Index: build.gradle.kts =================================================================== --- build.gradle.kts (revision 96172b27cfcf749e4e3b3a4f64069b92bea69184) +++ build.gradle.kts (revision c03b99024c7643b0d11b4cbf09eec6ebcd095e2e) @@ -21,6 +21,7 @@ import org.cadixdev.gradle.licenser.header.HeaderStyle import org.cadixdev.gradle.licenser.tasks.LicenseUpdate import org.gradle.internal.jvm.Jvm +import org.jetbrains.changelog.Changelog import org.jetbrains.gradle.ext.settings import org.jetbrains.gradle.ext.taskTriggers import org.jetbrains.intellij.tasks.PrepareSandboxTask @@ -37,6 +38,7 @@ id("org.jetbrains.intellij") version "1.17.2" id("org.cadixdev.licenser") id("org.jlleitschuh.gradle.ktlint") version "10.3.0" + id("org.jetbrains.changelog") version "2.2.0" } val ideaVersionName: String by project @@ -72,6 +74,26 @@ archiveClassifier.set("gradle-tooling-extension") } +val templatesSourceSet: SourceSet = sourceSets.create("templates") { + resources { + srcDir("templates") + compileClasspath += sourceSets.main.get().output + } +} + +val templateSourceSets: List = (file("templates").listFiles() ?: emptyArray()).mapNotNull { file -> + if (file.isDirectory() && (file.listFiles() ?: emptyArray()).any { it.name.endsWith(".mcdev.template.json") }) { + sourceSets.create("templates-${file.name}") { + resources { + srcDir(file) + compileClasspath += sourceSets.main.get().output + } + } + } else { + null + } +} + val externalAnnotationsJar = tasks.register("externalAnnotationsJar") { from("externalAnnotations") destinationDirectory.set(layout.buildDirectory.dir("externalAnnotations")) @@ -83,15 +105,21 @@ maven("https://maven.fabricmc.net/") { content { includeModule("net.fabricmc", "mapping-io") + includeModule("net.fabricmc", "fabric-loader") } } mavenCentral() + maven("https://repo.spongepowered.org/maven/") } dependencies { // Add tools.jar for the JDI API implementation(files(Jvm.current().toolsJar)) + implementation(libs.mixinExtras.expressions) + testLibs(libs.mixinExtras.common) + implementation("org.ow2.asm:asm-util:9.3") + // Kotlin implementation(kotlin("stdlib-jdk8")) implementation(kotlin("reflect")) @@ -121,6 +149,7 @@ classifier = "shaded" } } + testLibs(libs.test.fabricloader) testLibs(libs.test.nbt) { artifact { extension = "nbt" @@ -166,6 +195,12 @@ attributes.attribute(filtered, true) } +changelog { + version = coreVersion + groups.empty() + path = "changelog.md" +} + intellij { // IntelliJ IDEA dependency version.set(providers.gradleProperty("ideaVersion")) @@ -178,6 +213,7 @@ "Kotlin", "org.toml.lang:$pluginTomlVersion", "ByteCodeViewer", + "org.intellij.intelliLang", "properties", // needed dependencies for unit tests "junit" @@ -191,6 +227,11 @@ sandboxDir.set(layout.projectDirectory.dir(".sandbox").toString()) } +tasks.patchPluginXml { + val changelog = project.changelog + changeNotes = changelog.render(Changelog.OutputType.HTML) +} + tasks.publishPlugin { // Build numbers are used for properties["buildNumber"]?.let { buildNumber -> @@ -343,8 +384,14 @@ val generateLangLexer by lexer("LangLexer", "com/demonwav/mcdev/translations/lang/gen") val generateLangParser by parser("LangParser", "com/demonwav/mcdev/translations/lang/gen") -val generateTranslationTemplateLexer by lexer("TranslationTemplateLexer", "com/demonwav/mcdev/translations/lang/gen") +val generateMEExpressionLexer by lexer("MEExpressionLexer", "com/demonwav/mcdev/platform/mixin/expression/gen") +val generateMEExpressionParser by parser("MEExpressionParser", "com/demonwav/mcdev/platform/mixin/expression/gen") +val generateTranslationTemplateLexer by lexer( + "TranslationTemplateLexer", + "com/demonwav/mcdev/translations/template/gen" +) + val generate by tasks.registering { group = "minecraft" description = "Generates sources needed to compile the plugin." @@ -358,6 +405,8 @@ generateNbttParser, generateLangLexer, generateLangParser, + generateMEExpressionLexer, + generateMEExpressionParser, generateTranslationTemplateLexer, ) } @@ -374,10 +423,15 @@ } tasks.withType { + pluginJar.set(tasks.jar.get().archiveFile) from(externalAnnotationsJar) { into("Minecraft Development/lib/resources") } + from("templates") { + exclude(".git") + into("Minecraft Development/lib/resources/builtin-templates") -} + } +} tasks.runIde { maxHeapSize = "4G" @@ -387,11 +441,19 @@ systemProperty("idea.debug.mode", "true") } // Set these properties to test different languages - // systemProperty("user.language", "en") - // systemProperty("user.country", "US") + // systemProperty("user.language", "fr") + // systemProperty("user.country", "FR") } tasks.buildSearchableOptions { // not working atm enabled = false } + +tasks.instrumentCode { + enabled = false +} + +tasks.instrumentedJar { + enabled = false +} Index: gradle.properties =================================================================== --- gradle.properties (revision 96172b27cfcf749e4e3b3a4f64069b92bea69184) +++ gradle.properties (revision c03b99024c7643b0d11b4cbf09eec6ebcd095e2e) @@ -24,7 +24,7 @@ ideaVersion = 2024.1 ideaVersionName = 2024.1 -coreVersion = 1.7.6 +coreVersion = 1.8.0 downloadIdeaSources = true pluginTomlVersion = 241.14494.150 Index: gradle/libs.versions.toml =================================================================== --- gradle/libs.versions.toml (revision 96172b27cfcf749e4e3b3a4f64069b92bea69184) +++ gradle/libs.versions.toml (revision c03b99024c7643b0d11b4cbf09eec6ebcd095e2e) @@ -11,6 +11,7 @@ coroutines-swing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "coroutines" } mappingIo = "net.fabricmc:mapping-io:0.2.1" +mixinExtras-expressions = "io.github.llamalad7:mixinextras-expressions:0.0.1" # GrammarKit jflex-lib = "org.jetbrains.idea:jflex:1.7.0-b7f882a" @@ -33,12 +34,15 @@ test-mockJdk = "org.jetbrains.idea:mock-jdk:1.7-4d76c50" test-mixin = "org.spongepowered:mixin:0.8.5" test-spongeapi = "org.spongepowered:spongeapi:7.4.0" +test-fabricloader = "net.fabricmc:fabric-loader:0.15.11" test-nbt = "com.demonwav.mcdev:all-types-nbt:1.0" junit-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit" } junit-entine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit" } junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher", version.ref = "junit-platform" } +mixinExtras-common = "io.github.llamalad7:mixinextras-common:0.5.0-beta.1" + [bundles] coroutines = ["coroutines-swing"] asm = ["asm", "asm-tree", "asm-analysis"]