asDocumentationComments function
Iterable<String>
asDocumentationComments(
- Iterable<
String> comments, - DocumentCommentSpecification commentSpec, {
- List<
String> generatorComments = const <String>[],
Formats documentation comments and adds them to current Indent.
The comments
list is meant for comments written in the input dart file.
The generatorComments
list is meant for comments added by the generators.
Include white space for all tokens when called, no assumptions are made.
Implementation
Iterable<String> asDocumentationComments(
Iterable<String> comments,
DocumentCommentSpecification commentSpec, {
List<String> generatorComments = const <String>[],
}) sync* {
final List<String> allComments = <String>[
...comments,
if (comments.isNotEmpty && generatorComments.isNotEmpty) '',
...generatorComments,
];
String currentLineOpenToken = commentSpec.openCommentToken;
if (allComments.length > 1) {
if (commentSpec.closeCommentToken != '') {
yield commentSpec.openCommentToken;
currentLineOpenToken = commentSpec.blockContinuationToken;
}
for (String line in allComments) {
if (line.isNotEmpty && line[0] != ' ') {
line = ' $line';
}
yield '$currentLineOpenToken$line';
}
if (commentSpec.closeCommentToken != '') {
yield commentSpec.closeCommentToken;
}
} else if (allComments.length == 1) {
yield '$currentLineOpenToken${allComments.first}${commentSpec.closeCommentToken}';
}
}