/**
* 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();
}
JavadocLexer.java 文件源码
java
阅读 27
收藏 0
点赞 0
评论 0
项目:google-java-format
作者:
评论列表
文章目录