1

我想在我创建的新编辑器上切换断点。我有一个新的编辑器和一个新的 LineBreakpoint 实现并运行。我已经可以使用Ctrl+ Shift+B或 Main Menu -> Run -> Toggle Line Breakpoint 切换这些断点。我希望能够在我的自定义 Eclipse 应用程序的垂直标尺栏中添加 Java 编辑器中完全相同的切换行为。也就是说,双击在给定的行位置创建/切换断点。右键单击会弹出切换断点菜单上下文(在垂直标尺栏上)。完成线切换图像标签。

我假设有一种简单的方法可以做到这一点,而不是实现每个菜单和操作。如果没有,如何将这些双击和上下文菜单添加到自定义编辑器的垂直标尺?

4

2 回答 2

0

这是一个老问题,但我遇到了这个问题并这样做了:

我有一个编辑器(org.eclipse.ui.texteditor.AbstractDecoratedTextEditor)。在这个编辑器类上,我实现了这个方法:

@Override
protected IVerticalRulerColumn createAnnotationRulerColumn(CompositeRuler ruler) {
    AnnotationRulerColumn column = new MyAnnotationRulerColumn(VERTICAL_RULER_WIDTH, getAnnotationAccess(), this);
    return column;
}

MyAnnotationRulerColumn 类是一些这样的想法:

import org.eclipse.debug.ui.actions.ToggleBreakpointAction;
import org.eclipse.jface.text.source.AnnotationRulerColumn;
import org.eclipse.jface.text.source.IAnnotationAccess;
import org.eclipse.jface.text.source.IVerticalRulerInfo;

public class MyAnnotationRulerColumn extends AnnotationRulerColumn {

    private MyEditor editor;

    public MyAnnotationRulerColumn(int width, IAnnotationAccess annotationAccess, MyEditor part) {
        super(width, annotationAccess);
        this.editor = part;
    }

    @Override
    protected void mouseDoubleClicked(int rulerLine) {
        if (editor != null) {
            IVerticalRulerInfo rulerInfo= (IVerticalRulerInfo) editor.getAdapter(IVerticalRulerInfo.class);
            ToggleBreakpointAction action = new ToggleBreakpointAction(editor, null, rulerInfo);
            action.update();
            action.run();
        }
    }

}
于 2016-09-12T16:10:10.247 回答
0

我正在考虑做同样的事情。到目前为止,我发现扩展 AbstractDecoratedTextEditor 将为您提供执行此操作的平台。我会在它工作时更新。

于 2015-12-16T16:28:41.260 回答