2014-12-05 4 views
0

Я создаю несколько редакторов для простого проекта, пока все в порядке, за исключением того, что на данный момент мои редакторы привязаны к определенному расширению файла, например, один редактор открывает xml-файлы, другой редактор открывает файлы .properties, и сейчас все в порядке, но мне нужно сделать это, чтобы запустить редактор, только когда открытый файл содержит определенную строку. Я на самом деле пытаюсь запустить мои редакторы, когда версия проекта «3.4», поэтому, когда файлы содержат что-то вроде этого: version="3.4", он должен запустить мой редактор, есть ли способ сделать это, или есть лучший способ к чему?Открытие пользовательского редактора, когда файл содержит определенный текст (Eclipse RCP)

Обратите внимание, что версия проекта также указана в фасетке проекта.

ответ

1

Вы можете добавить элемент describer в качестве дочернего элемента content-type, который определяет класс, который будет вызываться, который может проверить, действительно ли файл действителен для этого типа содержимого.

<content-type id="customType" 
    base-type="org.eclipse.jst.jsf.facesconfig.facesConfigFile" 
    file-extensions="xml"> 
    <describer class="package.MyDescriber"/> 
</content-type> 

Класс должен реализовывать IContentDescriber (или ITextContentDescriber).

Метод:

public int describe(InputStream contents, IContentDescription description) 

вызывается, чтобы проверить его содержимое. Возвращение VALID если все нормально, INVALID если нет.

При необходимости вы можете также поддерживать другие свойства файла (такие как определение кодировки символов).

Дополнительная информация в справке Eclipse о точке расширения.

+0

Спасибо, см. Мое редактирование, я продолжу расследование – CJ1

Смежные вопросы