gpt4 book ai didi

java - 如何为 ICompilationUnit 设置 IMarker 的行号?

转载 作者:行者123 更新时间:2023-11-30 03:40:13 25 4
gpt4 key购买 nike

我想在给定的行号处创建一个带有消息和彩色代码行的标记(如 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);

不幸的是,行号被忽略,标记被放置在第一行。

The Marker is at the first line not as expected on line 5

出了什么问题?我该如何解决这个问题?

最佳答案

CHAR_STARTCHAR_END 是距文档开头的偏移量,优先于 LINE_NUMBER 使用。如果没有指定 char start 和 end 属性,则位置显示代码仅使用行号。

如果您有 IDocument,则可以使用 IDocument.getLineOffset(line) 获取行偏移量。

如果您使用的是文本编辑器,则可以从中获取 IDocument,否则您可以构造 Document 类的实例。

注意:IDocument 中的行号从 0 开始,IMarker 中的行号从 1 开始。

关于java - 如何为 ICompilationUnit 设置 IMarker 的行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26980073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com