2010-08-24 79 views
4

我想在沒有使用演示協調器的Eclipse中着色。因此,首先,我需要弄清楚如何將TextPresentation對象與我的編輯器或文檔相關聯,但我很難找到如何將它們連接起來。通常,IPResentationReconciler接口中的CreatePresentation會將樣式範圍賦予textpresentation,並且從那裏Eclipse將知道如何處理該表示對象。有沒有一種方法可以在不使用PresentationReconciler的情況下使用TextPresentation對象?如果我可以在沒有使用調和器的情況下着色,那將會很好。謝謝。語法着色沒有介紹Reconciler

回答

5

我終於想出瞭如何在不使用Reconcilers的情況下實現着色。 我發現首先我需要一種方法來獲取對我的SourceViewer對象的引用,因爲我正在擴展TextEditor。我還發現我可以實現TextListener接口並將我自己的偵聽器添加到SourceViewer對象。但是,必須小心,因爲調用getSourceViewer()方法可能會導致null,如果沒有在適當的位置調用。最初,我重寫了我的編輯器類中的init(...)函數並進行了getSourceViewer()調用,但仍然導致null。在做了一些研究後,我發現我可以通過重寫createPartControl方法來正確獲得對SourceViewer對象的引用。我首先調用super.createPartControl(...),然後調用getSourceViewer()。在獲得該引用後,我將其與創建的偵聽器類一起使用,並使用SourceViewer對象所具有的setTextColor方法自己着色。希望這可以幫助其他人在相同的情況下。