[英]My plugin code slows down Eclipse, what could I improve?
我有一個ITextViewer對象,從那里有Eclipse在其中顯示代碼的StyledText小部件。 我想高亮顯示由行號定義的一行。 因此,我向StyledText對象添加了LineBackgroundListener,並編寫了以下代碼:
private class HighlightLine implements LineBackgroundListener {
@Override
public void lineGetBackground(LineBackgroundEvent event) {
if (lineToHighlight != -1) {
int line = ((StyledText) event.widget).getLineAtOffset(event.lineOffset);
if (line == lineToHighlight) {
event.lineBackground = styledText.getSelectionBackground();
} else if (line == previousLineToHighlight) {
event.lineBackground = styledText.getBackground();
}
styledText.redraw();
styledText.update();
}
}
}
這項工作或多或少都很好,但是問題是,它大大減慢了Eclipse的速度。 可能是這種情況,因為它必須非常頻繁地更新Widget,而這並不是最佳選擇。 但是,經過大量的試驗,我想不出另一種方法。 任何想法?
您不需要這些(昂貴的)電話:
styledText.redraw();
styledText.update();
lineGetBackground
在繪制線操作期間被調用,因此不需要重繪或更新。
注意:如果StyledText
控件具有任何StyleRange
范圍,則它們可能會覆蓋背景。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.