if (current != null) {
highlighter.removeHighlight(current);
highlighter.addHighlight(current.getStartOffset(), current.getEndOffset(), matchPainter);
}
highlighter.removeHighlight(previous);
highlighter.addHighlight(previous.getStartOffset(), previous.getEndOffset(), selectionPainter);
center(previous);
} catch (BadLocationException ble) {
// impossible
}
pos = previous.getStartOffset();