code: public static Collector<CodeBlock, ?, CodeBlock> joining(
        String separator, String prefix, String suffix) {
      Builder builder = builder().add("$N", prefix);
      return Collector.of(
          () -> new CodeBlockJoiner(separator, builder),
          CodeBlockJoiner::add,
          CodeBlockJoiner::merge,
          joiner -> {
              builder.add(CodeBlock.of("$N", suffix));
              return joiner.join();
          });
    }
docs: A {@link Collector} implementation that joins {@link CodeBlock} instances together into one
  separated by {@code separator}. For example, joining {@code String s}, {@code Object o} and
  {@code int i} using {@code ", "} would produce {@code String s, Object o, int i}.