È necessario definire un content-type
utilizzando il punto di estensione org.eclipse.core.contenttype
. Quindi devi associare il tuo editor con il particolare tipo di contenuto (e non l'estensione del file).
Successivamente, è necessario associare la natura del progetto al tipo di contenuto appena definito.
Potrebbe anche essere necessario creare un secondo tipo di contenuto che deve essere utilizzato per i file quando si trova all'esterno di un progetto con la natura specifica.
Ecco un esempio che abbiamo usato in Groovy-Eclipse in modo che i file * .groovy sarebbero aperti con un editor di groove per impostazione predefinita in progetti groove, ma da un editor di testo al di fuori dei progetti di groove:
<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>
Qui, definiamo groovySource
per progetti groovy e groovyText
per progetti non groovy. Si noti inoltre che la priorità dei tipi di contenuto è diversa.
E poi, altrove, associamo lo GroovyEditor
con il tipo di contenuto groovySource.
fonte
2011-02-10 19:57:51
Grazie, ottima risposta. – FabianB