private @NotNull Splitter createExclusionAwareSplitter(List<TextRange> excludeRanges, int offset) {
    return new Splitter() {
      @Override
      public void split(@Nullable String text, @NotNull TextRange range, Consumer<TextRange> consumer) {
        mySplitter.split(text, range, tokenRange -> {
          if (ContainerUtil.all(excludeRanges, excludeRange -> !excludeRange.intersects(tokenRange.shiftRight(offset)))) {
            consumer.consume(tokenRange);
          }
        });
      }
    };
  }
private @NotNull Splitter createExclusionAwareSplitter(List<TextRange> excludeRanges, int offset)