Based on the feedback from @bartonjs : - [x] #1892 - [x] #1893 - [x] #1894 - [x] #1895 - [x] #1896 - [x] #1897 - [x] #1898 - [x] #1899 - [x] #1900 - [x] #1901 - [x] #1902 - [x] #1903 - [x] #1904 - [x] #1905 - [x] #1906 - [x] #1907 - [x] #1908 - [x] #1909 - [x] #1910 - [x] #1911 - [x] #1912 - [x] #1913 - [ ] #1914 - [x] #1915 - [x] #1916 - [x] #1917 - [x] #1918 - [x] #1919 - [x] #1920 - [x] #1921 - [x] #1922 - [x] #1923 - [x] #1924 - [x] #1925 - [x] #1926 - [x] #1927 - [x] #1928 - [x] #1929 - [x] #1930 - [x] #1931 - [x] #1932 - [ ] #1933 - [x] #1934 - [x] #1935 - [x] #1936 - [x] #1937 - [ ] #1938 - [x] #1939 - [ ] #1940 - [ ] #1942 - [ ] #1943 - [x] #1944 - [x] #1945 Based on other feedback: - [x] #1963 - [x] #1965 - [x] #1971
Based on the feedback from @bartonjs :
Argument,Option, andCommandto disambiguate from other single-word types #1892getDefaultValueparameter todefaultValueFactory#1894ExistingOnly#1897FromAmongto include a verb #1899LegalFileNamesOnlyto include a verb #1900Parseextension methods to the appropriateSymboltypes #1901TreatUnmatchedTokensAsErrorsso that it'sfalseby default and clearer in intent #1902Command.AddOption,Command.AddCommand, andCommand.AddArgumentbecause they're redundant withAdd#1903Invoke*andParseextension methods to their extendedSymboltypes #1905CommandLineConfigurationto renamedSymboltypes, e.g.CliConfiguration#1906CommandLineConfigurationto be mutable and favor properties over constructors #1907ThrowIfInvalidto clarify the intent #1908CommandLineConfigurationException#1909CompletionSourceListextension methods toCompletionSourceList#1910CompletionSourceList#1911DirectiveCollection#1912overridemethods correctly. #1914Symbolto be less likely to collide and to be consistent with the renaming of its derived types. #1916Bindingnamespace. #1917BinderBase<T>,IValueSource, andIValueDescriptorare needed in the public API for usage beyondSetHandler#1918CommandLineBuilderinto the application framework layer #1920CancellationTokensupport be available inasync Main?) #1921CommandLineBuildermethods to properties onCommandLineConfiguration#1922RegisterWithDotnetSuggestto the application framework layer and consider making it internal, as it will ideally be replaced eventually by intrinsic SDK or runtime support #1923UseDefaultsis still needed #1924UseVersionOptiontoCommandLineConfigurationand renaming #1925UseTokenReplacertoCommandLineConfigurationand renaming #1926CompletionDelegatewithAction<CompletionContext>#1927ICompletionSourcecan be replaced with a delegate or class #1928*CompletionContextscenarios using fewer public types #1929HelpBuilderinto a separate package #1930HelpBuilder.Defaultas a nested class #1931HelpSectionDelegateand replace withAction<HelpContext>#1932TwoColumnHelpRow#1933CliActiondesign that doesn't require custom implementations to override bothInvokeandInvokeAsyncmethods #1934ArgumentResult.OnlyTakeso that the intent is clearer #1935Action<InvocationContext>and removingIInvocationResult#1936CommandLineStringSplitter#1937CommandLineStringSplitterincluding its importance in testing #1938ParseArgument<T>withFunc<ArgumentResult, T>#1939refforoutparameters. #1942ValidateSymbolResultdelegate withAction<T>#1944Symbol.Aliases#1945Based on other feedback: