2011-07-07 26 views
13

Eklenti geliştirmeyi eclipse yeni. Bir projenin yeniden adlandırılmasını özelleştirmek istiyorum. Yeni ismi doğrulamam gerekiyor. Öyleyse eclipse 'rename/refactoring yöntemini nasıl geçersiz kılabilirim?Eclipse yeniden adlandır/yeniden başlatmayı geçersiz kılma

RenameParticipant ile ilgili bir şey gördüm, ancak açıkça anlamadı. Birisi bana yeniden adlandırma işlevini geçersiz kılacak adımları açıklayabilirse harika olurdu.

Birçok sayesinde Ann

cevap

13

yeniden adlandırma yeniden düzenleme org.eclipse.ltk.core.refactoring.participants.RenameProcessor alt sınıf ve farklı unsurları adlandırma sorumlu olan birkaç işlemci bulunmaktadır. Örneğin, Java projelerini yeniden adlandırmak için bir işlemci var org.eclipse.jdt.internal.corext.refactoring.rename.RenameJavaProjectProcessor. Bir refactoring katılımcısı, refactoring işlemcisinin kontrol edilmesini ve değiştirilmesini koşuluna katılabilir. Örneğin, yeniden adlandırılan bir yeniden adlandırma sırasında bazı koşulları kontrol etmek için org.eclipse.ltk.core.refactoring.participants.RenameParticipant alt sınıfını kullanmalı, org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant.checkConditions(IProgressMonitor, CheckConditionsContext) yöntemini geçersiz kılmalı ve katılımcıyı org.eclipse.ltk.core.refactoring.renameParticipants uzantı noktası üzerinden kaydetmelisiniz. Katılımcı org.eclipse.jdt.internal.corext.refactoring.nls.NLSAccessorFieldRenameParticipant, yeniden adlandırmayı yeniden adlandırmaya nasıl katılacağınıza iyi bir örnek verir.

org.eclipse.ltk.core.refactoring.renameParticipants uzantı noktanızın uzantısını bildirdiğinizde, katılımcınızın bildirim almasını istediğiniz öğeyi belirtmeniz gerekir. Örneğin, org.eclipse.jdt.ui/plugin.xml'daki org.eclipse.ltk.core.refactoring.renameParticipants uzantı noktasının aşağıdaki kullanımının, alanları yeniden adlandırma katılımcısını nasıl içerdiğine bakın.

<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> 
+0

Merhaba, Cevabınız için teşekkür ederiz. RenameParticipant'ı alt sınıflara ayırdım. Geçersiz yöntem checkConditions. Ve katılımcıyı uzatma noktası üzerinden kaydettim. Şimdi her şey için doğrulama yapıyor (örneğin projeler, dosyalar vb.). Sadece proje adı için doğrulama istiyorum. RenameJavaProjectProcessor'u nereye yerleştirebileceğimi anlamadım. Teşekkürler, – Angel

+0

'RenameJavaProjectProcessor' JDT'de ve bunun için endişelenmenize gerek yok. Uzantı noktanızı "plugin.xml" olarak bildirdiğinizde katılımcının çalıştığı öğeyi belirtmeniz yeterlidir. Katılımcınızın çalıştığı öğenin nasıl belirtileceğine ilişkin güncellenmiş yanıtımı görün. – reprogrammer

+0

Teşekkürler! Şimdi çalıştı. – Angel