Мне нужно сделать особый вид проекции текста в редакторе - скрывать
некоторую мета-информацию о тексте, отмечать этот фрагмент стилем
(лучше всего фон подкрасить) и во всплывающей подсказке показывать
мета-данные. Нагляднее описано здесь:
http://stackoverflow.com/questions/1017375/can-i-merge-syntax-coloring-and-folding-or-projection-colored-from-master-documeи здесь:
http://stackoverflow.com/questions/1069749/eclipse-rcp-internals-of-projection-folding-serviceПроблема состоит в том, что фолдинг текста жестко завязан на
аннотации, то есть он обязательно дает возможность сворачивать/
разворачивать, обязательно рисует кнопочку-аннотацию для этого и в
свернутом виде, а что самое плохое - сворачивается такая аннотация
обязательно в первую строку, что меня совершенно не устраивает.
Я пришел к выводу, что нужно переделывать ProjectionViewer, но
"немного" подзапутался в коде всей этой системы. К тому же там
постоянно встречаются недоступные классы - для них не работает Open
Declaration и попытка их расширения выдает ошибку. Также, я пока не
нашел, как заменить вьювер и ProjectionAnnotationModel (не уверен
пока, нужно ли ее заменять), так как их выбор происходит аж на уровне
AbstractTextEditor и большинство классов там закрыто для
переопределения. Например, есть getSourceViewer, но нет
setSourceViewer, а fSourceViewer - приватный.
Вопрос, собственно, следующий - есть ли где-нибудь подробное описание
всей этой системы? И, может быть пару советов, как лучше решить
поставленные задачи, может я "не с того края" подхожу?