private void draw(GC gc, int offset) {
		int length = 1;
		if (gc != null) {

			gc.setBackground(fColor);

			Rectangle bounds= fTextWidget.getTextBounds(offset, offset + length - 1);
			int height= fTextWidget.getCaret().getSize().y;
			String theText = fTextWidget.getText(offset, offset + length - 1);

			// Draw background
			gc.fillRectangle(bounds.x, bounds.y + bounds.height - height, bounds.width - 1, height - 1);
			gc.drawText(theText, bounds.x, bounds.y);
			// draw box around line segment ?
			//gc.drawRectangle(bounds.x, bounds.y + bounds.height - height, bounds.width - 1, height - 1);
		} else {
			fTextWidget.redrawRange(offset, length, true);
		}
	}
Highlights the given widget region.

@param gc the GC to draw into or <code>null</code> to send a redraw request
@param offset the offset of the widget region
plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLMatchingCharacterPainter.java