2017-01-05 6 views
0

こんにちは私はカスタムプラグインをカスタムアクションに追加しています。私はこのチュートリアルを続けました: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(); 
} 

}

+0

あなたのメソッドの* * *は呼び出されていますか? – nitind

+0

はい、Preferencesのオプションを変更すると、ICleanUp.getStepDescriptions()とICleanUp.setOptions(CleanUpOptions arg0)が呼び出されます。保存すると何も呼び出されません。 –

+0

Runtime Workbenchで編集しているファイルは、Javaプロジェクトのソースフォルダにありますか?有効になっている他のクリーンアップが有効になっていますか? – nitind

答えて

0

どうやらJavaに保存アクションは、唯一のJavaプロジェクト内のJava-ファイル上で実行されています。私はプロジェクトなしでランダムなjava-Fileをテストしていたので、実行された保存アクションはありません。

関連する問題