Существует также возможность зарегистрировать свой собственный тип содержимого файла. Он может быть зарегистрирован как подтип существующего типа контента, то есть XML. Для этого необходимо добавить точку расширения org.eclipse.core.contenttype.contentTypes
Точка расширения образца:
<extension
point="org.eclipse.core.contenttype.contentTypes">
<content-type
base-type="org.eclipse.core.runtime.xml"
default-charset="UTF-8"
describer="com.example.MyContentDescriber"
file-extensions="xml"
id="org.eclipse.core.runtime.xml.exampleContentType"
name="exampleContentType"
priority="normal">
</content-type>
Как видите, новый тип контента расширяет тип контента xml. Следующим шагом является реализация описателя контента, который просматривает файл и определяет, относится ли он к вашему типу. Для выполнения этой работы вы можете реализовать два интерфейса: IContentDescriber
или ITextContentDescriber
. Путь к вашей реализации описателя должен быть указан в типе контента, как показано во фрагменте.
Тогда ваш редактор может быть объявлен как тот, кто будет обрабатывать ваши типы контента.
<editor class="com.example.MyEditor"
default="true"
icon="res/icons/dialog.png"
id="[some_id]"
name="Dialog editor">
<contentTypeBinding
contentTypeId="org.eclipse.core.runtime.xml.exampleContentType">
</contentTypeBinding>
</editor>
Важные вещи:
- файлы, которые уже были открыты в eclipse, могут «помнить», в каком редакторе они были открыты в последний раз, и будет выбран этот,
- ваш описатель может быть использован очень часто, поэтому вы должны учитывать проблемы с производительностью при его реализации
Подробнее в теме:
ЗАТМЕНИЕ: способствующие типы контента