@@ -251,35 +251,44 @@ public string GetCommentHelp(bool blockComment, bool snippet)
251
251
}
252
252
253
253
public override string ToString ( )
254
+ {
255
+ return ToString ( false ) ;
256
+ }
257
+
258
+ // todo remove code duplication
259
+ public string ToSnippetString ( ) {
260
+ return ToString ( true ) ;
261
+ }
262
+
263
+ private string ToString ( bool snippetify )
254
264
{
255
265
var sb = new StringBuilder ( ) ;
256
- sb . AppendLine ( synopsis . ToString ( ) ) . AppendLine ( ) ;
257
- sb . AppendLine ( description . ToString ( ) ) . AppendLine ( ) ;
266
+ var counter = new Counter ( snippetify ? ( int ? ) 1 : null ) ;
267
+ sb . AppendLine ( synopsis . ToString ( counter . Next ( ) ) ) . AppendLine ( ) ;
268
+ sb . AppendLine ( description . ToString ( counter . Next ( ) ) ) . AppendLine ( ) ;
258
269
foreach ( var parameter in parameters )
259
270
{
260
- sb . AppendLine ( parameter . ToString ( ) ) . AppendLine ( ) ;
271
+ sb . AppendLine ( parameter . ToString ( counter . Next ( ) ) ) . AppendLine ( ) ;
261
272
}
262
273
263
- sb . AppendLine ( example . ToString ( ) ) . AppendLine ( ) ;
264
- sb . Append ( notes . ToString ( ) ) ;
274
+ sb . AppendLine ( example . ToString ( counter . Next ( ) ) ) . AppendLine ( ) ;
275
+ sb . Append ( notes . ToString ( counter . Next ( ) ) ) ;
265
276
return sb . ToString ( ) ;
266
277
}
267
278
268
- // todo remove code duplication
269
- public string ToSnippetString ( ) {
270
- var sb = new StringBuilder ( ) ;
271
- int tabStop = 1 ;
272
- sb . AppendLine ( synopsis . ToString ( tabStop ++ ) ) . AppendLine ( ) ;
273
- sb . AppendLine ( description . ToString ( tabStop ++ ) ) . AppendLine ( ) ;
274
- foreach ( var parameter in parameters )
279
+ private class Counter {
280
+ int ? count ;
281
+
282
+ public Counter ( int ? start )
275
283
{
276
- sb . AppendLine ( parameter . ToString ( tabStop ++ ) ) . AppendLine ( ) ;
284
+ count = start ;
277
285
}
278
286
279
- sb . AppendLine ( example . ToString ( tabStop ++ ) ) . AppendLine ( ) ;
280
- sb . Append ( notes . ToString ( tabStop ++ ) ) ;
281
- return sb . ToString ( ) ;
287
+ public int ? Next ( ) {
288
+ return count . HasValue ? count ++ : null ;
289
+ }
282
290
}
291
+
283
292
private class CommentHelpNode
284
293
{
285
294
public CommentHelpNode ( string nodeName , string description )
@@ -293,27 +302,25 @@ public CommentHelpNode(string nodeName, string description)
293
302
294
303
public override string ToString ( )
295
304
{
296
- var sb = new StringBuilder ( ) ;
297
- sb . Append ( "." ) . AppendLine ( Name . ToUpper ( ) ) ;
298
- if ( ! String . IsNullOrWhiteSpace ( Description ) )
299
- {
300
- sb . Append ( Description ) ;
301
- }
302
-
303
- return sb . ToString ( ) ;
305
+ return ToString ( null ) ;
304
306
}
305
307
306
- public virtual string ToString ( int tabStop )
308
+ public virtual string ToString ( int ? tabStop )
307
309
{
308
310
var sb = new StringBuilder ( ) ;
309
311
sb . Append ( "." ) . AppendLine ( Name . ToUpper ( ) ) ;
310
312
if ( ! String . IsNullOrWhiteSpace ( Description ) )
311
313
{
312
- sb . Append ( $ "${{{ tabStop}: { Description } }}" ) ;
314
+ sb . Append ( Snippetify ( tabStop , Description ) ) ;
313
315
}
314
316
315
317
return sb . ToString ( ) ;
316
318
}
319
+
320
+ protected string Snippetify ( int ? tabStop , string defaultValue )
321
+ {
322
+ return tabStop == null ? defaultValue : $ "${{{tabStop}:{ defaultValue } }}";
323
+ }
317
324
}
318
325
319
326
private class ParameterHelpNode : CommentHelpNode
@@ -328,23 +335,16 @@ public ParameterHelpNode(string parameterName, string parameterDescription)
328
335
329
336
public override string ToString ( )
330
337
{
331
- var sb = new StringBuilder ( ) ;
332
- sb . Append ( "." ) . Append ( Name . ToUpper ( ) ) . Append ( " " ) . AppendLine ( ParameterName ) ;
333
- if ( ! String . IsNullOrWhiteSpace ( Description ) )
334
- {
335
- sb . Append ( Description ) ;
336
- }
337
-
338
- return sb . ToString ( ) ;
338
+ return ToString ( null ) ;
339
339
}
340
340
341
- public override string ToString ( int tabStop )
341
+ public override string ToString ( int ? tabStop )
342
342
{
343
343
var sb = new StringBuilder ( ) ;
344
344
sb . Append ( "." ) . Append ( Name . ToUpper ( ) ) . Append ( " " ) . AppendLine ( ParameterName ) ;
345
345
if ( ! String . IsNullOrWhiteSpace ( Description ) )
346
346
{
347
- sb . Append ( $ "${{{ tabStop}: { Description } }}" ) ;
347
+ sb . Append ( Snippetify ( tabStop , Description ) ) ;
348
348
}
349
349
350
350
return sb . ToString ( ) ;
0 commit comments