Синтаксическая раскраска без представления Reconciler - PullRequest
4 голосов
/ 24 августа 2010

Я хотел бы сделать раскраску в Eclipse, не используя примиритель презентаций.Поэтому, во-первых, мне нужно выяснить, как связать объект TextPresentation с моим редактором или документом, но мне трудно найти способ связать его с любым из них.Обычно CreatePresentation в интерфейсе IPResentationReconciler предоставляет диапазон стилей текстовому представлению, и оттуда Eclipse будет знать, что делать с этим объектом презентации.Есть ли способ использовать объект TextPresentation без использования PresentationReconciler?Было бы неплохо, если бы я мог заниматься раскраской без использования примирителя.Спасибо.

1 Ответ

5 голосов
/ 25 августа 2010

Я наконец понял, как добиться раскраски без использования Reconcilers. Я обнаружил, что сначала мне нужен был способ получить ссылку на мой объект SourceViewer, так как я расширяю TextEditor. Я также обнаружил, что могу реализовать интерфейс TextListener и добавить свой собственный слушатель к объекту SourceViewer. Однако следует соблюдать осторожность, так как вызов метода getSourceViewer () может привести к нулевому значению, если не вызывается в соответствующем месте. Первоначально я переписал функцию init (...) в своем классе редактора и сделал вызов getSourceViewer (), но это все равно привело к нулевому значению. Проведя небольшое исследование, я обнаружил, что могу правильно получить ссылку на объект SourceViewer, переопределив метод createPartControl. Сначала я вызываю super.createPartControl (...), а затем вызываю getSourceViewer (). После того как я получил эту ссылку, я использовал ее с моим классом слушателя, который я создал, и смог сам раскрасить с помощью метода setTextColor, который есть у объекта SourceViewer. Надеюсь, что это поможет другим в такой же ситуации.

...