void (@NotNull String text, @NotNull TextRange range, Consumer<TextRange> consumer) { final WordSplitter ws = WordSplitter.getInstance(); try { Matcher matcher = getExtendedWordAndSpecial().matcher(newBombedCharSequence(text)); matcher.region(range.getStartOffset(), range.getEndOffset()); while (matcher.find()) { TextRange found = new TextRange(matcher.start(), matcher.end()); ws.split(text, found, consumer); } } catch (ProcessCanceledException ignored) { } }