如何解决"The clean up '<cleanUpName>' contributed by '<plugin>' has been disabled because it does not honor any options."?

How to solve "The clean up '<cleanUpName>' contributed by '<plugin>' has been disabled because it does not honor any options."?

我在 this guide 之后为 java 编辑器创建一个保存后操作。到目前为止,我的清理代码如下所示:

public class CheckFileCleanUp implements ICleanUp {

    @Override
    public ICleanUpFix createFix(final CleanUpContext cleanUpContext) throws CoreException {

        final ICompilationUnit compilationUnit = cleanUpContext.getCompilationUnit();
        IPath path = compilationUnit.getPath();
        IFile[] files = compilationUnit.getJavaProject().getProject().getWorkspace().getRoot().findFilesForLocation(path);
        RunCheckstyleOnFilesJob job = new RunCheckstyleOnFilesJob(Arrays.asList(files));
        job.setRule(job);
        job.schedule();
        return new ICleanUpFix() {
            @Override
            public CompilationUnitChange createChange(final IProgressMonitor progressMonitor) throws CoreException {
                return new CompilationUnitChange("", compilationUnit);
            }
        };
    }

    @Override
    public CleanUpRequirements getRequirements() {
        return new CleanUpRequirements(false, false, true, Collections.<String, String> emptyMap());
    }

    @Override
    public String[] getStepDescriptions() {
        return new String[] { "Run checkstyle" };
    }

    @Override
    public void setOptions(final CleanUpOptions cleanUpOptions) {
    }

    public RefactoringStatus checkPreConditions(final IJavaProject paramIJavaProject, final ICompilationUnit[] paramArrayOfICompilationUnit,
            final IProgressMonitor paramIProgressMonitor) throws CoreException {
        return new RefactoringStatus();
    }

    public RefactoringStatus checkPostConditions(final IProgressMonitor paramIProgressMonitor) throws CoreException {
        return new RefactoringStatus();
    }
}

扩展配置为:

<extension point="org.eclipse.jdt.ui.cleanUps">
    <cleanUp id="eclipsecs.saveaction" class="eclipsecs.saveaction.CheckFileCleanUp" />
</extension>

清理不需要任何其他选项,因此我跳过了指南的这些部分。

然而,当我第一次简单地编辑 java 源文件并保存它时,我在错误日志中收到以下消息:

The clean up 'eclipsecs.saveaction' contributed by 'eclipse-cs-save-action' has been disabled because it does not honor any options.

我怎样才能让我的清理符合所需的选项,这些选项是什么?

您收到此消息是因为您没有为清理启用启用的选项。

你必须记住 setOption 给你的 CleanUpOptions 并在 getStepDescriptions, createFix, ... 中测试 isEnabled("your id") 并且不要做任何事情如果您的清理未启用。