From a96b3e1306c4c47d2ff2d301f1f4c1c790a91cf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20L=C3=A4ubrich?= <laeubi@laeubi-soft.de> Date: Fri, 24 Jan 2025 18:25:42 +0100 Subject: [PATCH] Add support for configuring quick-fix bundles A qucikfix is provided by an extension point and can be part of any bundle, so we need to have a way to configure these. --- .../eclipse/tycho/cleancode/QuickFixMojo.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/tycho-cleancode-plugin/src/main/java/org/eclipse/tycho/cleancode/QuickFixMojo.java b/tycho-cleancode-plugin/src/main/java/org/eclipse/tycho/cleancode/QuickFixMojo.java index d26f8e9c26..fce4b670b4 100644 --- a/tycho-cleancode-plugin/src/main/java/org/eclipse/tycho/cleancode/QuickFixMojo.java +++ b/tycho-cleancode-plugin/src/main/java/org/eclipse/tycho/cleancode/QuickFixMojo.java @@ -14,6 +14,8 @@ import java.io.File; import java.util.List; +import java.util.stream.Stream; +import java.util.stream.Stream.Builder; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugins.annotations.LifecyclePhase; @@ -29,6 +31,20 @@ public class QuickFixMojo extends AbstractEclipseBuildMojo<QuickFixResult> { @Parameter(defaultValue = "${project.build.directory}/quickfix.md", property = "tycho.quickfix.report") private File reportFileName; + /** + * Configures the quickfixes to use, as these can be provided by different + * bundles, examples are + * <ul> + * <li><code>org.eclipse.jdt.ui</code> provides resolutions for for java + * problems</li> + * <li><code>org.eclipse.pde.api.tools.ui</code> provides API tools + * resolutions</li> + * <li>...</li> + * </ul> + */ + @Parameter + private List<String> quickfixes; + @Override protected void handleResult(QuickFixResult result) throws MojoFailureException { if (result.isEmpty()) { @@ -43,7 +59,12 @@ protected void handleResult(QuickFixResult result) throws MojoFailureException { @Override protected String[] getRequireBundles() { - return new String[] { "org.eclipse.ui.ide", "org.eclipse.jdt.ui" }; + Builder<String> builder = Stream.builder(); + builder.accept("org.eclipse.ui.ide"); + if (quickfixes != null) { + quickfixes.forEach(builder); + } + return builder.build().toArray(String[]::new); } @Override