@@ -6,59 +6,62 @@ library dartdoc.utils;
66final RegExp leadingWhiteSpace = RegExp (r'^([ \t]*)[^ ]' );
77
88Iterable <String > stripCommonWhitespace (String str) sync * {
9- var lines = str.split ('\n ' );
10- int minimumSeen;
9+ if (str.isEmpty) return ;
10+ final lines = str.split ('\n ' );
11+ int /*?*/ minimumSeen;
1112
12- for (var line in lines) {
13+ for (final line in lines) {
1314 if (line.isNotEmpty) {
14- Match m = leadingWhiteSpace.firstMatch (line);
15- if (m != null ) {
16- if (minimumSeen == null || m .group (1 ).length < minimumSeen) {
17- minimumSeen = m .group (1 ).length;
15+ final match = leadingWhiteSpace.firstMatch (line);
16+ if (match != null ) {
17+ if (minimumSeen == null || match .group (1 ).length < minimumSeen) {
18+ minimumSeen = match .group (1 ).length;
1819 }
1920 }
2021 }
2122 }
2223 minimumSeen ?? = 0 ;
23- for (var line in lines) {
24+ for (final line in lines) {
2425 if (line.length >= minimumSeen) {
25- yield '${ line .substring (minimumSeen )}' ;
26+ yield line.substring (minimumSeen);
2627 } else {
2728 yield '' ;
2829 }
2930 }
3031}
3132
3233String stripComments (String str) {
33- var cStyle = false ;
34+ // TODO(parlough): Once we migrate to null safety, prohibit null here
3435 if (str == null ) return null ;
35- var buf = StringBuffer ();
36+ if (str.isEmpty) return '' ;
37+ final buf = StringBuffer ();
3638
3739 if (str.startsWith ('///' )) {
38- for (var line in stripCommonWhitespace (str)) {
40+ for (final line in stripCommonWhitespace (str)) {
3941 if (line.startsWith ('/// ' )) {
40- buf.write ( '${ line .substring (4 )} \n ' );
42+ buf.writeln ( line.substring (4 ));
4143 } else if (line.startsWith ('///' )) {
42- buf.write ( '${ line .substring (3 )} \n ' );
44+ buf.writeln ( line.substring (3 ));
4345 } else {
44- buf.write ( '$ line \n ' );
46+ buf.writeln ( line);
4547 }
4648 }
4749 } else {
50+ var cStyle = false ;
4851 if (str.startsWith ('/**' )) {
4952 str = str.substring (3 );
5053 cStyle = true ;
5154 }
5255 if (str.endsWith ('*/' )) {
5356 str = str.substring (0 , str.length - 2 );
5457 }
55- for (var line in stripCommonWhitespace (str)) {
58+ for (final line in stripCommonWhitespace (str)) {
5659 if (cStyle && line.startsWith ('* ' )) {
57- buf.write ( '${ line .substring (2 )} \n ' );
60+ buf.writeln ( line.substring (2 ));
5861 } else if (cStyle && line.startsWith ('*' )) {
59- buf.write ( '${ line .substring (1 )} \n ' );
62+ buf.writeln ( line.substring (1 ));
6063 } else {
61- buf.write ( '$ line \n ' );
64+ buf.writeln ( line);
6265 }
6366 }
6467 }
0 commit comments