JavadocLexer.java 文件源码

java
阅读 27 收藏 0 点赞 0 评论 0

项目:google-java-format 作者:
/**
 * Adjust indentation inside `<pre>{@code` blocks.
 *
 * <p>Also trim leading and trailing blank lines, and move the trailing `}` to its own line.
 */
private static ImmutableList<Token> deindentPreCodeBlocks(List<Token> input) {
  ImmutableList.Builder<Token> output = ImmutableList.builder();
  for (PeekingIterator<Token> tokens = peekingIterator(input.iterator()); tokens.hasNext(); ) {
    if (tokens.peek().getType() != PRE_OPEN_TAG) {
      output.add(tokens.next());
      continue;
    }

    output.add(tokens.next());
    List<Token> initialNewlines = new ArrayList<>();
    while (tokens.hasNext() && tokens.peek().getType() == FORCED_NEWLINE) {
      initialNewlines.add(tokens.next());
    }
    if (tokens.peek().getType() != LITERAL
        || !tokens.peek().getValue().matches("[ \t]*[{]@code")) {
      output.addAll(initialNewlines);
      output.add(tokens.next());
      continue;
    }

    deindentPreCodeBlock(output, tokens);
  }
  return output.build();
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号