- ~ fixed missing DefaultValue support in bound inference
-
- added support for inferring binding information for flags and options from the public constant fields of static classes (to support DRY, and transparency)
- ~ merge of various branch fixes
-
- now takes ValuesString from a bound type's fields (if they have BoundValueAttribute or BoundValuesAttribute)
- ~ some preparatory mods
-
- ensuring that XML documentation required for all libraries
- ~ moved ValidValues from Specification to OptionSpecification
- ~ refactored the exception hierarchy
-
- added
UsageUtil.ShowBoundUsageAndQuit()method (overloads)
- added
-
- added
Invoker.ExecuteAroundArguments()method
- added
- ~ adjusted response to
BoundTypeAttributerecognisingAttributeOptionsHavePrecedenceonly for properties specified, rather than all defaults -
- added CLASP.Examples.Common, containing common code for several examples
-
- added examples Example.ParseAndBind.cat, Example.ShowBoundUsage
-
- now supports binding of
structas well asclasstypes
- now supports binding of
-
- now a bound type's attributes can contain
Alias,HelpSection, andHelpDescription, which may be merged with theSpecification[]list for parsing and for showing usage
- now a bound type's attributes can contain
-
- added
Invoker.ParseAndInvokeMain<T>()overloads, which now merges a bound type's attributes into the given specifications before parsing
- added
-
- added
UsageUtil.ShowBoundUsage<>, which invokes help in respect of a bound structure, and merges a bound type's attributes into the given specifications before displaying usage
- added
-
- added
Specification.Alias()method, which defines aliases for flags or options
- added
-
- added SolutionInfo.cs
- ~ fix to unit-test
-
- added Clasp.Util assembly (formerly SynesisSoftware.SystemTools.Util)
-
- added
Arguments.RequireValue()method (overloads)
- added
-
- added
Arguments.RequireOption()method (overloads)
- added
- [BREAKING CHANGE] ~ namespace
SynesisSoftware.SystemTools.Clasp=>Clasp - ~ change
AliastoSpecification - ~ rename
FlagtoFlagSpecification,OptiontoOptionSpecification
- ~ fixed missing range enforcement for floating-point fields
-
- added support for
SingleandDoublefloating-point fields
- added support for
-
- added
BoundNumberConstraintsenumeration
- added
-
- added
NumberTruncateenumeration
- added
-
- added
OptionValueOutOfRangeExceptionexception class
- added
- ~ changed internal logic of
BoundOptionAttributeto make defaults sensible -
Invokernow enforces integer range constraints
-
- added tests for above
-
- added
BoundEnumerationAttributeandBoundEnumeratorAttributeclasses, supporting binding of command-line flags with enumerator values
- added
-
- added Example.BoundValues.cat
- ~ full and proper handling of ArgumentBindingOptions.IgnoreMissingValues
-
- added
ArgumentBindingOptions.IgnoreMissingValuesand associated tests
- added
- ~ full and proper handling of ArgumentBindingOptions.IgnoreMissingValues
- ~ clearing up some corner cases in default value support
-
- now supports option default values
-
- added
DefaultValueattribute for option specification
- added
-
- added
DefaultIndicatorfield forUsageUtil.UsageParamsstructure
- added
- ~ enhanced Usage_tester.cs adding cases testing default value behaviour
- ~ fixed some subtle specification-finding defects
- ~ substantial improvements to
ShowUsage()(andShowVersion())
- ~ now works with string[] for values
-
- bunch more testing to validate bound parsing of flags and options (in preparation for fixing of known defect in bound parsing of values)
-
- added IArgument.Used property and IArgument.Use() method
- ~ changed (almost) all Argument properties to be backed by private readonly field
-
- added IArgument.Specification property
- ~ fixed default interpretation of "-" to be Flag, rather than Option
-
- added missing response to ParseOptions.TreatSinglehyphenAsValue
- ~ more preparatory refactoring
- ~ corrected Argument.ToString() for flags, options, values (and unknown)
- ~ significant preparatory refactoring, changing parameter names and documentation, along with internal fields and methods, in readiness for breaking change to rename *Alias types/attributes/methods to *Specification
-
- ShowUsage() now lists an option's values (if specified)
- ~ fixed erroneous processing of alias to option-with-value
T.B.C.