@@ -214,7 +214,7 @@ public string BuildOptionsMessage(CommandHelpDefinition definition)
214214 sb . Append ( opt . Description ) ;
215215
216216 if ( opt . IsFlag )
217- {
217+ {
218218 sb . Append ( $ " (Optional)") ;
219219 }
220220 else if ( opt . DefaultValue != null )
@@ -328,23 +328,36 @@ public CommandHelpDefinition CreateCommandHelpDefinition(MethodInfo method)
328328 var defaultValue = default ( string ) ;
329329 if ( item . HasDefaultValue )
330330 {
331- defaultValue = ( item . DefaultValue ? . ToString ( ) ?? "null" ) ;
331+ if ( option ? . DefaultValue != null )
332+ {
333+ defaultValue = option . DefaultValue ;
334+ }
335+ else
336+ {
337+ defaultValue = ( item . DefaultValue ? . ToString ( ) ?? "null" ) ;
338+ }
332339 if ( isFlag )
333- {
340+ {
334341 if ( item . DefaultValue is true )
335342 {
336343 // bool option with true default value is not flag.
337344 isFlag = false ;
338345 }
339- else if ( item . DefaultValue is false )
340- {
346+ else if ( item . DefaultValue is false )
347+ {
341348 // false default value should be omitted for flag.
342349 defaultValue = null ;
343- }
350+ }
344351 }
345352 }
346353
347- parameterDefinitions . Add ( new CommandOptionHelpDefinition ( options . Distinct ( ) . ToArray ( ) , description , item . ParameterType . Name , defaultValue , index , isFlag ) ) ;
354+ var paramTypeName = item . ParameterType . Name ;
355+ if ( item . ParameterType . IsGenericType && item . ParameterType . GetGenericTypeDefinition ( ) == typeof ( Nullable < > ) )
356+ {
357+ paramTypeName = item . ParameterType . GetGenericArguments ( ) [ 0 ] . Name + "?" ;
358+ }
359+
360+ parameterDefinitions . Add ( new CommandOptionHelpDefinition ( options . Distinct ( ) . ToArray ( ) , description , paramTypeName , defaultValue , index , isFlag ) ) ;
348361 }
349362
350363 return new CommandHelpDefinition (
0 commit comments