diff --git a/build.gradle b/build.gradle index fbc90b7d61c..707385ed1a9 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ import java.util.regex.Pattern plugins { id 'net.neoforged.gradleutils' version '3.0.0' - id 'com.diffplug.spotless' version '6.22.0' apply false + id 'dev.lukebemish.immaculate' version '0.1.6' apply false id 'net.neoforged.licenser' version '0.7.5' id 'neoforge.formatting-conventions' id 'neoforge.versioning' @@ -56,14 +56,14 @@ license { } // Put spotless here because it wants the files to live inside the project root -spotless { - java { - target rootProject.fileTree("src", { +immaculate { + workflows.named("java") { + files.from rootProject.fileTree("src", { include "**/*.java" }) } - format 'patches', { - target rootProject.fileTree("patches") + workflows.register("patches") { + files.from(rootProject.fileTree("patches")) custom 'noImportChanges', { String fileContents -> if (fileContents.contains('+import') || fileContents.contains('-import')) { @@ -152,7 +152,5 @@ spotless { custom 'jetbrainsNullablePatches', { String fileContents -> fileContents.replace('@javax.annotation.Nullable', '@org.jetbrains.annotations.Nullable') } - - bumpThisNumberIfACustomStepChanges(5) } } diff --git a/buildSrc/src/main/groovy/neoforge.formatting-conventions.gradle b/buildSrc/src/main/groovy/neoforge.formatting-conventions.gradle index e0f554b8205..0a26b947823 100644 --- a/buildSrc/src/main/groovy/neoforge.formatting-conventions.gradle +++ b/buildSrc/src/main/groovy/neoforge.formatting-conventions.gradle @@ -1,6 +1,6 @@ import java.util.regex.Matcher -project.plugins.apply('com.diffplug.spotless') +project.plugins.apply('dev.lukebemish.immaculate') abstract class GeneratePackageInfos extends DefaultTask { @InputFiles @@ -36,15 +36,19 @@ final generatePackageInfos = tasks.register('generatePackageInfos', GeneratePack it.files.from fileTree("src/main/java") } -spotless { - java { - endWithNewline() - indentWithSpaces() - removeUnusedImports() - toggleOffOn() - // Pin version to 4.31 because of a Spotless bug https://github.com/diffplug/spotless/issues/1992 - eclipse('4.31').configFile rootProject.file('codeformat/formatter-config.xml') - importOrder() +immaculate { + workflows.register('java') { + java() + trailingNewline() + noTabs() + googleFixImports() + toggleOff = 'spotless:off' + toggleOn = 'spotless:on' + eclipse { + version '3.37.0' + config = rootProject.file('codeformat/formatter-config.xml') + } + // courtesy of diffplug/spotless#240 // https://github.com/diffplug/spotless/issues/240#issuecomment-385206606 @@ -63,14 +67,13 @@ spotless { custom 'jetbrainsNullable', { String fileContents -> fileContents.replace('javax.annotation.Nullable', 'org.jetbrains.annotations.Nullable') } - bumpThisNumberIfACustomStepChanges(3) } } tasks.named('licenseFormat').configure { mustRunAfter generatePackageInfos } -tasks.named('spotlessApply').configure { +tasks.named('immaculateApply').configure { mustRunAfter generatePackageInfos mustRunAfter tasks.named('licenseFormat') } @@ -78,13 +81,13 @@ tasks.named('spotlessApply').configure { tasks.register('applyAllFormatting', Task) { dependsOn generatePackageInfos dependsOn tasks.named('licenseFormat') - dependsOn tasks.named('spotlessApply') + dependsOn tasks.named('immaculateApply') group = 'verification' } tasks.register('checkFormatting', Task) { dependsOn 'licenseCheck' - dependsOn 'spotlessCheck' + dependsOn 'immaculateCheck' group = 'verification' } diff --git a/coremods/build.gradle b/coremods/build.gradle index 127e7ec9dfc..dc92c1c7b84 100644 --- a/coremods/build.gradle +++ b/coremods/build.gradle @@ -1,6 +1,5 @@ plugins { id 'java-library' - id 'com.diffplug.spotless' id 'net.neoforged.licenser' id 'neoforge.formatting-conventions' } diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 41b36415464..f46b669df13 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -27,7 +27,7 @@ Contributing to NeoForge - If possible, write an automated test under the tests project. See [NEOGAMETESTS.md](NEOGAMETESTS.md) for more info. 10. Run `gradlew unpackSourcePatches` to generate patch-files from the patched sources 11. Run `gradlew applyAllFormatting` to automatically format sources -12. Check correct formatting with `gradlew spotlessCheck` +12. Check correct formatting with `gradlew checkFormatting` 13. Commit & Push 14. Make PR diff --git a/testframework/build.gradle b/testframework/build.gradle index d5d98b4059a..5b5a74316f7 100644 --- a/testframework/build.gradle +++ b/testframework/build.gradle @@ -1,7 +1,6 @@ plugins { id 'java' id 'maven-publish' - id 'com.diffplug.spotless' id 'net.neoforged.licenser' id 'neoforge.formatting-conventions' } diff --git a/tests/build.gradle b/tests/build.gradle index 37ea199d5bc..381884becdd 100644 --- a/tests/build.gradle +++ b/tests/build.gradle @@ -1,6 +1,5 @@ plugins { id 'java' - id 'com.diffplug.spotless' id 'net.neoforged.licenser' id 'neoforge.formatting-conventions' }