rcp(插件开发)资源管理三

关于marker的使用

描述:在eclipse中marker是用来代码级别的各种状态信息的一个框架,使用marker可以轻松的浏览和定位文件中的错误或其他的一些信息。

1.定义marker,在eclipse中已经定义了一些marker,但是在我们使用的时候,也有可能需要定义自己marker。

如下是eclipse中已经存在的marker:

org.eclipse.core.resources.marker —— 记号层次结构的根。

org.eclipse.core.resources.problemmarker —— 表示问题或错误消息,出现在问题列表中。

org.eclipse.core.resources.taskmarker —— 表示待办事项,出现在任务列表中。

org.eclipse.core.resources.bookmark —— 表示文件,比如搜索结果。

org.eclipse.core.resources.textmarker —— 表示文件的位置,比如出现错误的位置。


  1. <extension  
  2.          id="my.marker"  
  3.          name="My Marker"  
  4.          point="org.eclipse.core.resources.markers">  
  5.       <persistent  
  6.             value="true">  
  7.       </persistent>  
  8.       <super  
  9.             type="org.eclipse.core.resources.problemmarker">  
  10.       </super>  
  11.    </extension>  

super:通过super进行继承已有的marker的能力。

persistent:为true的时候,marker信息被持久,下次打开的时候记录依然会出现

定义一个marker只是原则上这个这种marker类型存在了,但是还需要进行真正的使用

2.创建marker

1)marker是为了描述资源的,所以也应该是在IResource中进行增加marker

2)针对某一个文件,每一次重新加载marker的时候,先把旧的marker清理掉

3)marker里面有很多属性可以进行设置,都是通过setAttribute方式进行设置的。而具体有哪些属性可以参考IMarker,自己也可以创建自己的属性。

4)由于继承了problemmarker,所以marker会在problem视图中显示

  1. public static void addMarker(IResource resource, String message,  
  2.             int lineNumber, int severity, int priority) throws CoreException {  
  3.         if (resource != null) {  
  4.             IMarker marker = resource.createMarker(PROBLEMS_MARKER_ID);  
  5.             if (message != null)  
  6.                 marker.setAttribute(IMarker.MESSAGE, message);  
  7.             if (lineNumber >= 0)  
  8.                 marker.setAttribute(IMarker.LINE_NUMBER, lineNumber);  
  9.             marker.setAttribute(IMarker.SEVERITY, severity);  
  10.             marker.setAttribute(IMarker.PRIORITY, priority);  
  11.         }  
  12.     }  

3.删除marker

  1. ResourcesPlugin.getWorkspace().getRoot().deleteMarkers(  
  2.            MARKER_ID, false, IResource.DEPTH_INFINITE); (在工程上添加marker)  
  3. ifile.deleteMarkers( MARKER_ID, false, IResource.DEPTH_INFINITE); (在file上添加marker) 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值