我想在给定的亚麻布上创建一个带有消息和彩色代码行(如EclEmma)的标记。我有一个ICompilationUnit
及其资源来创建这样的标记:
IMarker marker = resource.createMarker("org.epitest.mutationmarker");
marker.setAttribute(IMarker.MESSAGE, "statusDescription");
marker.setAttribute(IMarker.LINE_NUMBER, 5);
marker.setAttribute(IMarker.CHAR_START, 10);
marker.setAttribute(IMarker.CHAR_END, 20);
不幸的是,行号被忽略,标记放在第一行。
出了什么问题?我怎么解决这个问题?
答案 0 :(得分:2)
CHAR_START
和CHAR_END
是文档开头的偏移量,正在优先于LINE_NUMBER
使用。如果未指定char start和end属性,则位置显示代码仅使用行号。
如果您拥有IDocument.getLineOffset(line)
,则可以使用IDocument
获取行偏移量。
如果您使用的是文本编辑器,则可以从中获取IDocument
,否则您可以构建Document
类的实例。
注意:IDocument
中的行号为0,IMarker
中的行号为1。