【问题标题】:Implement marker in eclipse source view editor?在 Eclipse 源视图编辑器中实现标记?
【发布时间】:2021-05-30 23:08:08
【问题描述】:

如何在Eclipse源码视图编辑器中实现蓝色标记(marker annotation)?

【问题讨论】:

  • 您自己的编辑器还是现有的编辑器?对于现有的编辑器,您必须查看它提供的 API 和扩展点,看看这是否可行。
  • 现有的编辑器我找不到任何合适的解决方案。
  • 您不会为现有的编辑器执行此操作。它是唯一可以决定特定范围指示应该是什么的人,这可能就是为什么它不是常规注释的原因。在垂直标尺中没有其他东西可以像这样跨越多条线。
  • 是否可以修补 CDT 插件并覆盖当前标记?

标签: eclipse eclipse-plugin eclipse-rcp jface


【解决方案1】:

标记存在于磁盘上,这是一个注释(一些注释是基于标记创建的)。那就是所谓的范围指标。它的特殊之处在于您无需在注释模型中添加和删除它,您只需使用org.eclipse.jface.text.source#ISourceViewer.setRangeIndication(int, int, boolean) 将其与选择更改保持同步。

【讨论】:

  • 我正在尝试像蓝色标记一样实现自定义红色标记,对于源文件中的所有方法,这可以使用标记注释来实现吗?有什么合适的推荐吗?
【解决方案2】:
public static final String MARKER_ID = "com.test.marker";

@param res=file full path line= line number in file you want to show the marker

public static IMarker createMarker(IResource res, int line) throws CoreException {

    IMarker marker = null;
    // note: you use the id that is defined in your plugin.xml

    if (res != null) {
        marker = res.createMarker(MARKER_ID);
        marker.setAttribute(IMarker.PRIORITY, IMarker.PRIORITY_HIGH);
        marker.setAttribute(IMarker.MESSAGE, 
        marker.setAttribute(IMarker.LINE_NUMBER, line);
        marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
    }
    return marker;

}

插件.xml

使用这个扩展点

<extension
     point="org.eclipse.ui.editors.annotationTypes">
  <type
        markerType="com.ashling.comrv.marker"
        name="com.test.marker">
  </type>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    相关资源
    最近更新 更多