Package org.eclipse.debug.ui

# Interface IInstructionPointerPresentation

All Superinterfaces:
  `IBaseLabelProvider`, `IDebugModelPresentation`, `ILabelProvider`, `ISourcePresentation`

public interface IInstructionPointerPresentation extends IDebugModelPresentation
A debug model presentation may implement this interface to override standard annotations used to display instruction pointers for stack frames.

A client has several options when overriding default instruction pointer annotations, and the debug platform uses the following prioritized order when computing an annotation for a stack frame.

1. Specify the annotation object to use. This is done by returning a non-`null` value from `getInstructionPointerAnnotation(..)`.
2. Specify an `annotationType` extension to use. This is done by returning a non-`null` value from `getInstructionPointerAnnotationType(..)`. When specified, the annotation type controls the image displayed via its associated `markerAnnotationSpecification`.
3. Specify the image to use. This is done by returning a non-`null` value from `getInstructionPointerImage(..)`.

Additionally, when specifying an annotation type or image the text for the instruction pointer may be specified by returning a non-`null` value from `getInstructionPointerText(..)`.

These methods are called when the debugger has opened an editor to display source for the given stack frame. The image will be positioned based on stack frame line number and character ranges.

By default, the debug platform uses different annotations for top stack frames and non-top stack frames in a thread. The default platform annotations are contributed as `annotationType` extensions with the identifiers `IDebugUIConstants.ANNOTATION_INSTRUCTION_POINTER_CURRENT` and `IDebugUIConstants.ANNOTAION_INSTRUCTION_POINTER_SECONDARY`.

Clients implementing a debug model presentation may also implement this interface.

Since:
  3.2

## Field Summary

### Fields inherited from interface org.eclipse.debug.ui.IDebugModelPresentation

`DISPLAY_VARIABLE_TYPE_NAMES`

## Method Summary

Modifier and Type
Method
Description
`Annotation`
`getInstructionPointerAnnotation(IEditorPart editorPart, IStackFrame frame)`
Returns an annotation used for the specified stack frame in the specified editor, or `null` if a default annotation should be used.
`String`
`getInstructionPointerAnnotationType(IEditorPart editorPart, IStackFrame frame)`
Returns an identifier of a `org.eclipse.ui.editors.annotationTypes` extension used for the specified stack frame in the specified editor, or `null` if a default annotation should be used.
`Image`
`getInstructionPointerImage(IEditorPart editorPart, IStackFrame frame)`
Returns the instruction pointer image used for the specified stack frame in the specified editor, or `null` if a default image should be used.
`String`
`getInstructionPointerText(IEditorPart editorPart, IStackFrame frame)`
Returns the text to associate with the instruction pointer annotation used for the specified stack frame in the specified editor, or `null` if a default message should be used.

### Methods inherited from interface org.eclipse.jface.viewers.IBaseLabelProvider

`addListener, dispose, isLabelProperty, removeListener`

### Methods inherited from interface org.eclipse.debug.ui.IDebugModelPresentation

`computeDetail, getImage, getText, setAttribute`

### Methods inherited from interface org.eclipse.debug.ui.ISourcePresentation

`getEditorId, getEditorInput`

## Method Details

### getInstructionPointerAnnotation

Annotation getInstructionPointerAnnotation(IEditorPart editorPart, IStackFrame frame)
Returns an annotation used for the specified stack frame in the specified editor, or `null` if a default annotation should be used.

Parameters:
  `editorPart` - the editor the debugger has opened
  `frame` - the stack frame for which the debugger is displaying source
Returns:
  annotation or `null`

### getInstructionPointerAnnotationType

String getInstructionPointerAnnotationType(IEditorPart editorPart, IStackFrame frame)
Returns an identifier of a `org.eclipse.ui.editors.annotationTypes` extension used for the specified stack frame in the specified editor, or `null` if a default annotation should be used.

Parameters:
  `editorPart` - the editor the debugger has opened
  `frame` - the stack frame for which the debugger is displaying source
Returns:
  annotation type identifier or `null`

### getInstructionPointerImage

Image getInstructionPointerImage(IEditorPart editorPart, IStackFrame frame)
Returns the instruction pointer image used for the specified stack frame in the specified editor, or `null` if a default image should be used.

By default, the debug platform uses different images for top stack frames and non-top stack frames in a thread.

Parameters:
  `editorPart` - the editor the debugger has opened
  `frame` - the stack frame for which the debugger is displaying source
Returns:
  image or `null`

### getInstructionPointerText

String getInstructionPointerText(IEditorPart editorPart, IStackFrame frame)
Returns the text to associate with the instruction pointer annotation used for the specified stack frame in the specified editor, or `null` if a default message should be used.

By default, the debug platform uses different images for top stack frames and non-top stack frames in a thread.

Parameters:
  `editorPart` - the editor the debugger has opened
  `frame` - the stack frame for which the debugger is displaying source
Returns:
  message or `null`