Получать уведомления при изменении положения курсора в Eclipse TextEditor

Я разрабатываю плагин для eclipse и хочу добавить некоторые действия в контекстное меню. Но на самом деле я хотел заранее подготовить результаты в соответствии с выделением текста в редакторе и просто показать их, когда будет выбран пункт меню. Я следил за этой статьей http://www.eclipse.org/articles/Article-WorkbenchSelections/article.html — все интерфейсы (ISelectionListener, ISelectionChangedListener и т. д.) позволяют обрабатывать событие SelectionChanged, но редактор считает изменения только при изменении длины выделения — поэтому простой щелчок в редакторе не запускает событие, хотя я хочу получить слово (например) в качестве выбора, если курсор сейчас находится внутри слова, а длина равна 0.

Итак, вопрос в том, что является самым простым решением для отслеживания положения/смещения/выбора курсора с нулевым изменением значения длины?


person Ritro    schedule 20.03.2012    source источник


Ответы (2)


В этом случае вы также должны использовать KeyListener и MouseListener. Например, взгляните на org.eclipse.jface.text.PaintManager, и он прослушивает все эти события.

person Deepak Azad    schedule 21.03.2012
comment
Спасибо за ответ. Не удалось найти, где я могу добавить свои собственные слушатели Key и Mouse только в редактор. Кажется, расширение, а затем замена редактора по умолчанию — самый простой способ. - person Ritro; 21.03.2012

Если вы расширяете TextEditor, вы можете переопределить метод handleCursorPositionChanged() для запуска вашего события и использовать getCursorPosition() для получения позиции курсора как String.

person Sunil Biswal    schedule 22.11.2013
comment
упомяните, каковы причины и почему вы предложили этот ответ. и прочитайте FAQ, чтобы узнать, как давать ответы подходящим образом. - person Hamad; 22.11.2013