@Override
  public void split(@Nullable String text, @NotNull TextRange range, Consumer<TextRange> consumer) {
    if (text == null || StringUtil.isEmpty(text)) {
      return;
    }
    final IdentifierSplitter splitter = IdentifierSplitter.getInstance();
    try {
      Matcher matcher = WORD.matcher(newBombedCharSequence(text, range));
      while (matcher.find()) {
        if (matcher.end() - matcher.start() < MIN_RANGE_LENGTH) {
          continue;
        }
        TextRange found = matcherRange(range, matcher);
        splitter.split(text, found, consumer);
      }
    }
    catch (ProcessCanceledException ignored) {
    }
  }
@Override
  public void split(@Nullable String text, @NotNull TextRange range, Consumer<TextRange> consumer)