簡體   English   中英

我的插件代碼減慢了Eclipse的速度,我該如何改進?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM