Вам необходимо определить content-type
, используя точку расширения org.eclipse.core.contenttype
. Затем вам нужно связать ваш редактор с конкретным типом контента (а не расширением файла).
Далее вам нужно связать характер вашего проекта с типом контента, который вы только что определили.
Вам также может понадобиться создать второй тип контента, который должен использоваться для ваших файлов, когда вы находитесь за пределами проекта с определенной природой.
Вот пример, который мы использовали в Groovy-Eclipse, чтобы * .groovy файлы открывались с помощью редактора groovy по умолчанию в проектах groovy, но текстовым редактором вне проектов groovy:
<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>
Здесь мы определяем groovySource
для нестандартных проектов и groovyText
для нестандартных проектов. Также обратите внимание, что приоритет типов контента различен.
А затем в другом месте мы связываем GroovyEditor
с типом содержимого groovySource.