void (@Nullable String text, @NotNull TextRange range, Consumer<TextRange> consumer) { if (text == null || range.getLength() <= 1) { return; } try { Matcher specialMatcher = SPECIAL.matcher(newBombedCharSequence(text)); specialMatcher.region(range.getStartOffset(), range.getEndOffset()); if (specialMatcher.find()) { TextRange found = new TextRange(specialMatcher.start(), specialMatcher.end()); addWord(consumer, true, found); } else { IdentifierSplitter.getInstance().split(text, range, consumer); } } catch (ProcessCanceledException ignored) { } }