Как расширить редактор Eclipse Java для добавления цветных наложений - PullRequest
5 голосов
/ 06 июня 2010

У меня есть идея для плагина Eclipse, с которым я играю. Мне нужно иметь возможность расширять компонент Eclipse Java Editor и добавлять цветные наложения в код на основе подключаемых внешних метрик. К сожалению, не существует какой-либо точки расширения для подсветки синтаксиса.

Кто-нибудь знает, как я могу расширить существующий редактор Java Eclipse для добавления пользовательских правил подсветки?

Имейте в виду, что я новичок в программировании плагинов Eclipse, поэтому, пожалуйста, дайте как можно больше подробностей.

1 Ответ

9 голосов
/ 07 июня 2010

Базовый класс редактора Java Eclipse 3.5: org.eclipse.jdt.internal.ui.text.java

Обратите внимание на «внутренний» в имени класса. Это означает, что это внутренний класс Eclipse, и он не предназначен для расширения.

Существует точка расширения Eclipse org.eclipse.ui.editors.markerUpdaters Я не работал с этой точкой расширения, но, похоже, она может позволить вам делать то, что вы хотите.

Вот описание из справки Eclipse:

Эта точка расширения используется для регистрация стратегий обновления маркеров с маркерной аннотацией моделей. ресурс, который открывается в тексте редактор связан с маркером модель аннотации. Для каждого маркера Прилагается к ресурсу эта модель управляет позицией, которая обновляется с каждым изменением, примененным к тексту в редакторе. Если ресурс сохраненный текст в редакторе и Положение для маркера перешел на зарегистрированный маркер обновить стратегии. Эти стратегии затем можно обновить маркеры атрибуты, основанные на тексте и позиция. Стратегии обновления маркеров просили реализовать интерфейс org.eclipse.ui.texteditor.IMarkerUpdater. Стратегии обновления могут быть зарегистрирован либо для конкретного тип маркера или все типы маркеров. последний, опуская любой тип маркера в расширение.

Вот пример из справки Eclipse:

<extension point= "org.eclipse.ui.editors.markerUpdaters"> 
    <updater 
        id="org.eclipse.jdt.ui.markerUpdaters.JavaSearchMarkerUpdater" 
        class="org.eclipse.jdt.internal.ui.search.JavaSearchMarkerUpdater" 
        markerType="org.eclipse.search.searchmarker"> 
    </updater> 
</extension> 

Я не смог найти больше объяснений в Интернете.

...