// Copyright (c) 2003-2008 by Leif Frenzel - see http://leiffrenzel.de // This code is made available under the terms of the Eclipse Public License, // version 1.0 (EPL). See http://www.eclipse.org/legal/epl-v10.html package net.sf.eclipsefp.haskell.ui.internal.editors.haskell; import org.eclipse.core.resources.IMarker; import org.eclipse.core.resources.IResource; import org.eclipse.jface.text.Position; import org.eclipse.ui.texteditor.MarkerUtilities; import org.eclipse.ui.texteditor.ResourceMarkerAnnotationModel; public class HaskellAnnotationModel extends ResourceMarkerAnnotationModel { public HaskellAnnotationModel( final IResource resource ) { super( resource ); } @Override protected Position createPositionFromMarker( final IMarker marker ) { int start = MarkerUtilities.getCharStart( marker ); int end = MarkerUtilities.getCharEnd( marker ); int line = MarkerUtilities.getLineNumber( marker ); if( start > end || start == -1 || end == -1 || line == -1 ) { return super.createPositionFromMarker( marker ); } // try { if (fDocument!=null){ //final int offset = fDocument.getLineOffset( line - 1 ) + start; final int length = end - start + 1; return new Position( start, length ); } // } catch( BadLocationException ex ) { // HaskellUIPlugin.log( ex ); // } return null; } }