@NotNull
 @Override
 public VisualPosition build(@NotNull EditorPosition position) {
   int diff = myTargetLogical.column - position.logicalColumn;
   position.logicalColumn += diff;
   position.visualColumn += diff;
   position.offset += diff;
   return position.buildVisualPosition();
 }
  @Override
  protected VisualPosition buildIfExceeds(EditorPosition context, TabData tabData) {
    if (context.logicalLine < myTargetLogical.line) {
      return null;
    }

    int diff = myTargetLogical.column - context.logicalColumn;
    if (diff >= tabData.widthInColumns) {
      return null;
    }

    context.logicalColumn += diff;
    context.visualColumn += diff;

    return context.buildVisualPosition();
  }