eac*_*tor 7 eclipse eclipse-plugin editor eclipse-rcp
之前我问了一个关于VerticalRulers的问题,我提到了这个提示我在VerticalRuler中添加了第二个Column并尝试添加一个Marker,但Marker总是出现在标准Column上,但不在我的上面.我添加了第二个行号列来说明我的问题.我该如何改变这种行为?谢谢你的帮助.
@Override
protected IVerticalRuler createVerticalRuler(){
IVerticalRuler ruler = super.createVerticalRuler();
ruler2 = (CompositeRuler) ruler;
column1 = new AnnotationRulerColumn(100);
ruler2.addDecorator(0, column1);
ruler2.addDecorator(2, createLineNumberRulerColumn());
column1.addAnnotationType("MARKER");
return ruler;
}
public String check_line(){
IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
IFileEditorInput input = (IFileEditorInput)editor.getEditorInput() ;
IFile file = input.getFile();
IResource res = (IResource) file;
try{
IMarker m = res.createMarker(IMarker.MARKER);
m.setAttribute(IMarker.LINE_NUMBER,2);
m.setAttribute(IMarker.MESSAGE, "lala");
m.setAttribute(IMarker.TEXT, "test");
m.setAttribute(IMarker.PRIORITY, IMarker.PRIORITY_HIGH);
m.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_INFO);
} catch (CoreException e) { ... }
return "marker created";
}
Run Code Online (Sandbox Code Playgroud)

您只需为 AnnotationRulerColumn 使用不同的构造函数:
AnnotationRulerColumn(int width, IAnnotationAccess annotationAccess)
Run Code Online (Sandbox Code Playgroud)
您可以使用DefaultMarkerAnnotationAccess参数IAnnotationAccess:
protected IVerticalRuler createVerticalRuler(){
IVerticalRuler ruler = super.createVerticalRuler();
CompositeRuler ruler2 = (CompositeRuler) ruler;
column1 = new AnnotationRulerColumn(100, new DefaultMarkerAnnotationAccess());
ruler2.addDecorator(0, column1);
ruler2.addDecorator(2, createLineNumberRulerColumn());
column1.addAnnotationType("MARKER");
return ruler;
}
Run Code Online (Sandbox Code Playgroud)
我假设您已经为标记定义了一个名为“MARKER”的注释类型。如果没有,请确保使用注释类型的名称,而不是标记类型column1.addAnnotationType("MARKER");。您可以定义自己的注释类型,并使用扩展点Annotation Types将其映射到标记类型。
然后,您的标记/注释应该显示在您自己的垂直标尺上。
| 归档时间: |
|
| 查看次数: |
2325 次 |
| 最近记录: |