2011-02-10 21 views
5

Belirli bir Düzenleyiciyi belirli bir dosya uzantısıyla ilişkilendiren bir eclipse eklentisi geliştiriyorum, ".abc" deyin.Eclipse Plugin Geliştirme, aynı dosya uzantısına farklı editörleri ilişkilendiriyor

Sorun şu ki, .abc dosyalarını bu editöre yalnızca kendi yaptığım projelerle kendi doğamlarımla ilişkilendirmek istiyorum. Şu an olduğu gibi, her zaman hangi editörle .abc dosyalarını hangi projede olursa olsun açacaktır.

".abc" dosyaları için kendi editörümü yalnızca kendi doğamda olan projelerde bulunuyorsa nasıl açabilirim?

cevap

8

org.eclipse.core.contenttype uzantı noktasını kullanarak content-type tanımlamanız gerekir. Ardından editörünüzü belirli bir içerik türüyle ilişkilendirmeniz gerekir (dosya uzantısını değil).

Ardından, projenizin doğasını, tanımladığınız içerik türüyle ilişkilendirmeniz gerekir.

Ayrıca, belirli niteliklere sahip bir projenin dışındayken dosyalarınız için kullanılması gereken ikinci bir içerik türü oluşturmanız da gerekebilir. İşte

* .groovy dosyaları harika projelerde varsayılan olarak gelenekselleşmiş bir editör ile açılacağı, böylece biz Groovy-Eclipse kullanılan bir örnektir, ama harika projelerin dışında bir metin düzenleyicisi tarafından:

<extension point="org.eclipse.core.contenttype.contentTypes"> 
    <content-type 
     base-type="org.eclipse.jdt.core.javaSource" 
     file-extensions="groovy" 
     id="groovySource" 
     name="Groovy Source File (for Groovy projects)" 
     priority="high"/> 

    <content-type 
     base-type="org.eclipse.core.runtime.text" 
     file-extensions="groovy" 
     id="groovyText" 
     name="Groovy Text File (for non-Groovy projects)" 
     priority="low"/> 
</extension> 

<extension 
    id="groovyNature" 
    name="Groovy Nature" 
    point="org.eclipse.core.resources.natures"> 
    <runtime> 
    <run class="org.codehaus.jdt.groovy.model.GroovyNature"/> 
    </runtime> 
    <requires-nature id="org.eclipse.jdt.core.javanature"/> 
    <content-type 
     id="org.eclipse.jdt.groovy.core.groovySource"> 
    </content-type> 

Mükemmel projeler için groovySource ve oluklu olmayan projeler için groovyText'u tanımlarız. Ayrıca, içerik türlerinin önceliğinin farklı olduğuna dikkat edin.

Ve diğer yerlerde, GroovyEditor groovySource içerik türüyle ilişkilendiriyoruz.

+0

Teşekkürler, harika cevap. – FabianB

İlgili konular