Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Маркеры для подсветки текста в Eclipse, динамическая подсветка текста 
V
    Опции темы
Hiboplut
Дата 20.4.2012, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 13.2.2009

Репутация: нет
Всего: нет



Здравствуйте.

Пишу плагин для эклипса, стоит задача динамически подсвечивать текст в TextEditor"е. После довольно длительной про"google"ки нашел, что можно подсвечивать текст с помощью маркеров, но так и не смог понять каким образом подсвечивать и как, собственно, создавать эти маркеры. Если кто-то сталкивался и сможет рассказать, буду очень благодарен.
PM MAIL   Вверх
Hiboplut
Дата 25.4.2012, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 13.2.2009

Репутация: нет
Всего: нет



Часть проблемы решена. Нужно создать три экстеншен поинта, для маркера, для аннотации и еще один для их связки.

Для маркера:
Код

<extension point="org.eclipse.core.resources.markers"  
             id="айди маркера"  
            name="Shine the Light">  
            <super type="org.eclipse.core.resources.textmarker" /> 
             
   </extension>


Для аннотации:
Код

<extension point="org.eclipse.ui.editors.markerAnnotationSpecification"
        id="highAnnotation" name="highAnnotation">
    <specification annotationType="highAnnotation"
            label="Function Highlighting"
            icon="icons/sample.gif"
            overviewRulerPreferenceKey="overview"
            overviewRulerPreferenceValue="true"
            contributesToHeader="false"
            highlightPreferenceKey="highlight"
                  highlightPreferenceValue="true"
                  includeOnPreferencePage="true"
            colorPreferenceKey="color"
            colorPreferenceValue="255,255,0"
            textPreferenceKey="text"
            textPreferenceValue="true"
            presentationLayer="0"
            verticalRulerPreferenceKey="ruler"
            verticalRulerPreferenceValue="true"
            textStylePreferenceKey="clstyle"
            textStylePreferenceValue="BOX">
            </specification>
    </extension>


Для связки:
Код

<extension point="org.eclipse.ui.editors.annotationTypes">
                <type super="org.eclipse.ui.workbench.texteditor.info"
                      name="highAnnotation" 
                      markerType="айди маркера"/> 
    </extension>



Это сообщение отредактировал(а) Hiboplut - 26.4.2012, 20:22
PM MAIL   Вверх
Hiboplut
Дата 26.4.2012, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 13.2.2009

Репутация: нет
Всего: нет



Проблема решена. Создавать маркер следует в классе текст эдитора. Для отображения маркера нужно, чтобы все атрибуты были заполнены, то есть, если у вас текстовый маркер, то должны быть заполнены атрибуты стартовой и конечной позиции.


Код

public void init(IEditorSite site, IEditorInput input)
            throws PartInitException {
         super.init(site, input);
         IResource resource = (IResource) getEditorInput().getAdapter(IResource.class);

        try {
                IMarker marker = resource.createMarker("айди маркера");
                marker.setAttribute(IMarker.CHAR_START, 0);
                marker.setAttribute(IMarker.CHAR_END, 44);
            
        } catch (CoreException x) {
            x.printStackTrace();
        }
    }
        
    public ISourceViewer getViewer(){
        return super.getSourceViewer();
    }


Это сообщение отредактировал(а) Hiboplut - 26.4.2012, 20:21
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java tools & IDE's | Следующая тема »


 




[ Время генерации скрипта: 0.0618 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.