protected @NotNull List<T> parse(String str, int offset) {

    final List<T> references = new ArrayList<>();
    int current = -1;
    int index = 0;
    int next;
    do {
      next = findNextSeparator(str, current);
      final TextRange range = new TextRange(offset + current + 1, offset + (next >= 0 ? next : str.length()));
      if (!range.isEmpty() || !Character.isWhitespace(mySeparator)) {
        references.addAll(createReferences(range, index ++));
      }
    } while ((current = next) >= 0);

    return references;
  }
protected @NotNull List<T> parse(String str, int offset)