我是eclipse插件開發新手。我想自定義項目的重命名。我需要驗證新名稱。那麼我怎樣才能覆蓋eclipse的重命名/重構方法?Eclipse重命名/重構覆蓋
我看到一些與RenameParticipant相關的東西,但是不清楚。如果有人能夠解釋我重寫重命名功能的步驟,那將會很棒。
非常感謝, 安
我是eclipse插件開發新手。我想自定義項目的重命名。我需要驗證新名稱。那麼我怎樣才能覆蓋eclipse的重命名/重構方法?Eclipse重命名/重構覆蓋
我看到一些與RenameParticipant相關的東西,但是不清楚。如果有人能夠解釋我重寫重命名功能的步驟,那將會很棒。
非常感謝, 安
的重命名重構有繼承org.eclipse.ltk.core.refactoring.participants.RenameProcessor
,並負責重命名不同元素的多個處理器。例如,有一個處理器用於重命名Java項目org.eclipse.jdt.internal.corext.refactoring.rename.RenameJavaProjectProcessor
。重構參與者可以參與條件檢查並更改重構處理器的創建。例如,要在重命名重構過程中檢查一些條件,您應該子類org.eclipse.ltk.core.refactoring.participants.RenameParticipant
,覆蓋方法org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant.checkConditions(IProgressMonitor, CheckConditionsContext)
並通過擴展點org.eclipse.ltk.core.refactoring.renameParticipants
註冊參與者。參與者org.eclipse.jdt.internal.corext.refactoring.nls.NLSAccessorFieldRenameParticipant
爲您提供了一個如何參與重命名重構的好例子。
當您聲明擴展名爲org.eclipse.ltk.core.refactoring.renameParticipants
的擴展點時,應指定您希望參與者獲得通知的元素。例如,請參閱org.eclipse.jdt.ui/plugin.xml
中org.eclipse.ltk.core.refactoring.renameParticipants
擴展點的以下用法涉及參與者重命名字段的情況。
<extension point="org.eclipse.ltk.core.refactoring.renameParticipants">
<renameParticipant class="org.eclipse.jdt.internal.corext.refactoring.nls.NLSAccessorFieldRenameParticipant" id="org.eclipse.jdt.ui.NLSFieldRenameParticipant" name="%Refactoring.NLSFieldRenameParticipant">
<enablement>
<with variable="affectedNatures">
<iterate operator="or">
<equals value="org.eclipse.jdt.core.javanature"/>
</iterate>
</with>
<with variable="element">
<instanceof value="org.eclipse.jdt.core.IField"/>
</with>
</enablement>
</renameParticipant>
</extension>
嗨,謝謝你的回覆。我分類爲RenameParticipant。覆蓋方法checkConditions。並通過擴展點註冊參與者。現在它確認了一切(即項目,文件等)。我只想驗證項目名稱。我不明白我可以放置RenameJavaProjectProcessor的位置。謝謝, – Angel
'RenameJavaProjectProcessor'在JDT中,你不必擔心它。當你在'plugin.xml'中聲明你的擴展點時,你只需要指定你的參與者工作的元素。查看我的更新答案,瞭解如何指定參與者操作的元素。 – reprogrammer
謝謝!它現在有效。 – Angel