Resource Markers

org.eclipse.core.resources.markers

The workspace supports the notion of markers on arbitrary resources. A marker is a kind of metadata (similar to properties) which can be used to tag resources with user information. Markers are optionally persisted by the workspace whenever a workspace save or snapshot is done.

Users can define and query for markers of a given type. Marker types are defined in a hierarchy that supports multiple-inheritance. Marker type definitions also specify a number attributes which must or may be present on a marker of that type as well as whether or not markers of that type should be persisted.

The markers extension-point allows marker writers to register their marker types under a symbolic name that is then used from within the workspace to create and query markers. The symbolic name is the id of the marker extension. When defining a marker extension, users are encouraged to include a human-readable value for the "name" attribute which indentifies their marker and potentially may be presented to users.

<!ELEMENT extension (super* , persistent? , attribute*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT super EMPTY>

<!ATTLIST super

type CDATA #REQUIRED>


<!ELEMENT persistent EMPTY>

<!ATTLIST persistent

value (true | false) >


<!ELEMENT attribute EMPTY>

<!ATTLIST attribute

name CDATA #REQUIRED>


Following is an example of a marker configuration:

   

<extension id=

"com.xyz.coolMarker"

point=

"org.eclipse.core.resources.markers"

name=

"Cool Marker"

>

<persistent value=

"true"

/>

<super type=

"org.eclipse.core.resources.problemmarker"

/>

<super type=

"org.eclipse.core.resources.textmarker"

/>

<attribute name=

"owner"

/>

</extension>

All markers, regardless of their type, are instances of org.eclipse.core.resources.IMarker.

The platform itself has a number of pre-defined marker types. Particular product installs may include additional markers as required.