繁体   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