* is copied into the provided position.
*/
private Annotation getNextAnnotation(final int offset, final int length,
final boolean forward, final Position annotationPosition) {
Annotation nextAnnotation = null;
Position nextAnnotationPosition = null;
Annotation containingAnnotation = null;
Position containingAnnotationPosition = null;
boolean currentAnnotation = false;
final IDocument document = editor.getDocumentProvider().getDocument(
editor.getEditorInput());
final int endOfDocument = document.getLength();
int distance = Integer.MAX_VALUE;
final IAnnotationModel model = editor.getDocumentProvider().getAnnotationModel(
editor.getEditorInput());
final Iterator<Annotation> e = new ErlangAnnotationIterator(model, true, true);
while (e.hasNext()) {
final Annotation a = e.next();
if (a instanceof IErlangAnnotation && ((IErlangAnnotation) a).hasOverlay()
|| !isNavigationTarget(a)) {
continue;
}