void (@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) { } }