package org.rubypeople.rdt.internal.ui.rubyeditor;
import org.eclipse.core.resources.IMarker;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.Position;
import org.eclipse.ui.texteditor.IMarkerUpdater;
import org.eclipse.ui.texteditor.MarkerUtilities;
public class RubyBreakpointMarkerUpdater implements IMarkerUpdater {
private final static String[] ATTRIBUTES = { IMarker.LINE_NUMBER };
public String getMarkerType() {
return "org.rubypeople.rdt.debug.core.RubyBreakpointMarker";
}
public String[] getAttribute() {
return ATTRIBUTES;
}
public boolean updateMarker(IMarker marker, IDocument document, Position position) {
if (position == null) {
return true;
}
if (position.isDeleted()) {
return false;
}
try {
// marker line numbers are 1-based
MarkerUtilities.setLineNumber(marker, document.getLineOfOffset(position.getOffset()) + 1);
} catch (BadLocationException x) {
}
return true;
}
}