@Override
  public RangeMarker getRangeGuard(int startOffset, int endOffset) {
    ProperTextRange injRange = new ProperTextRange(startOffset, endOffset);
    // include prefixes/suffixes in guarded ranges - they can't be edited
    TextRange editable = ObjectUtils.notNull(intersectWithEditable(injRange), TextRange.EMPTY_RANGE);
    if (!injRange.equals(editable)) {
      ProperTextRange guarded = injRange.cutOut(editable.shiftLeft(editable.getStartOffset() - injRange.getStartOffset()));
      return createRangeMarker(guarded);
    }

    ProperTextRange hostRange = injectedToHost(injRange);
    return myDelegate.getRangeGuard(hostRange.getStartOffset(), hostRange.getEndOffset());
  }
@Override
  public RangeMarker getRangeGuard(int startOffset, int endOffset)