@@ -6,59 +6,62 @@ library dartdoc.utils;
6
6
final RegExp leadingWhiteSpace = RegExp (r'^([ \t]*)[^ ]' );
7
7
8
8
Iterable <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;
11
12
12
- for (var line in lines) {
13
+ for (final line in lines) {
13
14
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;
18
19
}
19
20
}
20
21
}
21
22
}
22
23
minimumSeen ?? = 0 ;
23
- for (var line in lines) {
24
+ for (final line in lines) {
24
25
if (line.length >= minimumSeen) {
25
- yield '${ line .substring (minimumSeen )}' ;
26
+ yield line.substring (minimumSeen);
26
27
} else {
27
28
yield '' ;
28
29
}
29
30
}
30
31
}
31
32
32
33
String stripComments (String str) {
33
- var cStyle = false ;
34
+ // TODO(parlough): Once we migrate to null safety, prohibit null here
34
35
if (str == null ) return null ;
35
- var buf = StringBuffer ();
36
+ if (str.isEmpty) return '' ;
37
+ final buf = StringBuffer ();
36
38
37
39
if (str.startsWith ('///' )) {
38
- for (var line in stripCommonWhitespace (str)) {
40
+ for (final line in stripCommonWhitespace (str)) {
39
41
if (line.startsWith ('/// ' )) {
40
- buf.write ( '${ line .substring (4 )} \n ' );
42
+ buf.writeln ( line.substring (4 ));
41
43
} else if (line.startsWith ('///' )) {
42
- buf.write ( '${ line .substring (3 )} \n ' );
44
+ buf.writeln ( line.substring (3 ));
43
45
} else {
44
- buf.write ( '$ line \n ' );
46
+ buf.writeln ( line);
45
47
}
46
48
}
47
49
} else {
50
+ var cStyle = false ;
48
51
if (str.startsWith ('/**' )) {
49
52
str = str.substring (3 );
50
53
cStyle = true ;
51
54
}
52
55
if (str.endsWith ('*/' )) {
53
56
str = str.substring (0 , str.length - 2 );
54
57
}
55
- for (var line in stripCommonWhitespace (str)) {
58
+ for (final line in stripCommonWhitespace (str)) {
56
59
if (cStyle && line.startsWith ('* ' )) {
57
- buf.write ( '${ line .substring (2 )} \n ' );
60
+ buf.writeln ( line.substring (2 ));
58
61
} else if (cStyle && line.startsWith ('*' )) {
59
- buf.write ( '${ line .substring (1 )} \n ' );
62
+ buf.writeln ( line.substring (1 ));
60
63
} else {
61
- buf.write ( '$ line \n ' );
64
+ buf.writeln ( line);
62
65
}
63
66
}
64
67
}
0 commit comments