|
49 | 49 |
|
50 | 50 | my $COMMENT = ''; |
51 | 51 | my $COMMENT_PARAM_LIST = 0; |
52 | | -my $CODE_SNIPPET = 0; |
| 52 | +my $COMMENT_LAST_LINE_NOTE_WARNING = 0; |
| 53 | +my $COMMENT_CODE_SNIPPET = 0; |
53 | 54 | my $GLOB_IFDEF_NESTING_IDX = 0; |
54 | 55 | my @GLOB_BRACKET_NESTING_IDX = (0); |
55 | 56 | my $PRIVATE_SECTION_LINE = ''; |
@@ -129,18 +130,18 @@ sub processDoxygenLine { |
129 | 130 | if ( $line =~ m/\\code(\{\.(\w+)\})?/ ) { |
130 | 131 | my $codelang = ""; |
131 | 132 | $codelang = " $2" if (defined $2); |
132 | | - $CODE_SNIPPET = CODE_SNIPPET; |
133 | | - $CODE_SNIPPET = CODE_SNIPPET_CPP if ($codelang =~ m/cpp/ ); |
| 133 | + $COMMENT_CODE_SNIPPET = CODE_SNIPPET; |
| 134 | + $COMMENT_CODE_SNIPPET = CODE_SNIPPET_CPP if ($codelang =~ m/cpp/ ); |
134 | 135 | $codelang =~ s/py/python/; |
135 | | - return "\n" if ( $CODE_SNIPPET == CODE_SNIPPET_CPP ); |
| 136 | + return "\n" if ( $COMMENT_CODE_SNIPPET == CODE_SNIPPET_CPP ); |
136 | 137 | return ".. code-block::$codelang\n\n"; |
137 | 138 | } |
138 | 139 | if ( $line =~ m/\\endcode/ ) { |
139 | | - $CODE_SNIPPET = 0; |
| 140 | + $COMMENT_CODE_SNIPPET = 0; |
140 | 141 | return "\n"; |
141 | 142 | } |
142 | | - if ($CODE_SNIPPET != 0){ |
143 | | - if ( $CODE_SNIPPET == CODE_SNIPPET_CPP ){ |
| 143 | + if ($COMMENT_CODE_SNIPPET != 0){ |
| 144 | + if ( $COMMENT_CODE_SNIPPET == CODE_SNIPPET_CPP ){ |
144 | 145 | return ""; |
145 | 146 | } else { |
146 | 147 | if ( $line ne ''){ |
@@ -170,6 +171,7 @@ sub processDoxygenLine { |
170 | 171 | $line = "\n$line"; |
171 | 172 | } |
172 | 173 | $COMMENT_PARAM_LIST = 1; |
| 174 | + $COMMENT_LAST_LINE_NOTE_WARNING = 0; |
173 | 175 | } |
174 | 176 |
|
175 | 177 | if ( $line =~ m/^\s*[\\@]brief/){ |
@@ -229,12 +231,22 @@ sub processDoxygenLine { |
229 | 231 | } |
230 | 232 |
|
231 | 233 | if ( $line =~ m/[\\@]note (.*)/ ) { |
| 234 | + $COMMENT_LAST_LINE_NOTE_WARNING = 1; |
232 | 235 | return "\n.. note::\n\n $1\n"; |
233 | 236 | } |
234 | 237 | if ( $line =~ m/[\\@]warning (.*)/ ) { |
| 238 | + $COMMENT_LAST_LINE_NOTE_WARNING = 1; |
235 | 239 | return "\n.. warning::\n\n $1\n"; |
236 | 240 | } |
237 | 241 |
|
| 242 | + if ( $line !~ m/^\s*$/ ){ |
| 243 | + if ( $COMMENT_LAST_LINE_NOTE_WARNING == 1 ){ |
| 244 | + dbg_info("prepend spaces for multiline warning/note xx$line"); |
| 245 | + $line = " $line"; |
| 246 | + } |
| 247 | + } else { |
| 248 | + $COMMENT_LAST_LINE_NOTE_WARNING = 0; |
| 249 | + } |
238 | 250 | return "$line\n"; |
239 | 251 | } |
240 | 252 |
|
@@ -365,7 +377,8 @@ sub detect_comment_block{ |
365 | 377 | my %args = ( strict_mode => STRICT, @_ ); |
366 | 378 | # dbg_info("detect comment strict:" . $args{strict_mode} ); |
367 | 379 | $COMMENT_PARAM_LIST = 0; |
368 | | - $CODE_SNIPPET = 0; |
| 380 | + $COMMENT_CODE_SNIPPET = 0; |
| 381 | + $COMMENT_LAST_LINE_NOTE_WARNING = 0; |
369 | 382 | if ( $LINE =~ m/^\s*\/\*/ || $args{strict_mode} == UNSTRICT && $LINE =~ m/\/\*/ ){ |
370 | 383 | dbg_info("found comment block"); |
371 | 384 | do {no warnings 'uninitialized'; |
@@ -774,6 +787,7 @@ sub detect_non_method_member{ |
774 | 787 | if ( $LINE =~ m/^\s*\/\// ){ |
775 | 788 | if ($LINE =~ m/^\s*\/\/\!\s*(.*?)\n?$/){ |
776 | 789 | $COMMENT_PARAM_LIST = 0; |
| 790 | + $COMMENT_LAST_LINE_NOTE_WARNING = 0; |
777 | 791 | $COMMENT = processDoxygenLine( $1 ); |
778 | 792 | $COMMENT =~ s/\n+$//; |
779 | 793 | } |
|
0 commit comments