こんにちは私はカスタムプラグインをカスタムアクションに追加しています。私はこのチュートリアルを続けました:Contributing a clean up and a save action using the clean up extension pointEclipseプラグイン:ICleanUp.createFixが呼び出されていません
悲しいことに、ICleanUp.createFixの私のコードは呼び出されません。
「追加アクション」のプリファレンス(Java->エディター - >保存アクション)でプラグインが表示されるので、有効になっているようです。 screenshot
述べたように、セーブ時にICleanUp.createFixへの呼び出しを私のプラグインのオプションを編集していないが、一方で、私はICleanUp.getStepDescriptionsへの呼び出し()およびICleanUp.setOptions(CleanUpOptionsのarg0に)を取得デバッグ中。
plugin.xmlの
<extension
point="org.eclipse.jdt.ui.cleanUps">
<cleanUp
id="injection.cleanup"
class="injection.cleanup.InjectionCleanupSaveAction">
</cleanUp>
<cleanUpOptionsInitializer
class="injection.cleanup.OptionsInitializer"
cleanUpKind="saveAction">
</cleanUpOptionsInitializer>
<cleanUpConfigurationUI
class="injection.cleanup.ConfigUI"
name="Injection Cleanup"
cleanUpKind="saveAction">
</cleanUpConfigurationUI>
InjectionCleanupSaveAction
public class InjectionCleanupSaveAction implements ICleanUp {
private static final String KEY = "injection.cleanup";
CleanUpOptions options;
@Override
public ICleanUpFix createFix(CleanUpContext arg0) throws CoreException {
if (options.isEnabled(KEY)) {
//return stuff..
}
}
@Override
public CleanUpRequirements getRequirements() {
return new CleanUpRequirements(false, false, true, Collections.<String, String> emptyMap());
}
@Override
public String[] getStepDescriptions() {
if (options.isEnabled(KEY)) {
return new String[] { "Remove unused KiInjections" };
}
return new String[0];
}
@Override
public void setOptions(CleanUpOptions arg0) {
options = arg0;
}
@Override
public RefactoringStatus checkPostConditions(IProgressMonitor arg0) throws CoreException {
return new RefactoringStatus();
}
@Override
public RefactoringStatus checkPreConditions(IJavaProject arg0, ICompilationUnit[] arg1, IProgressMonitor arg2)
throws CoreException {
return new RefactoringStatus();
}
}
あなたのメソッドの* * *は呼び出されていますか? – nitind
はい、Preferencesのオプションを変更すると、ICleanUp.getStepDescriptions()とICleanUp.setOptions(CleanUpOptions arg0)が呼び出されます。保存すると何も呼び出されません。 –
Runtime Workbenchで編集しているファイルは、Javaプロジェクトのソースフォルダにありますか?有効になっている他のクリーンアップが有効になっていますか? – nitind