-
Notifications
You must be signed in to change notification settings - Fork 1.7k
ArgsResult should have a way to determine if the user actual set the value #16227
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Added Area-Library, Library-Args, Triaged labels. |
Removed Area-Library label. |
This comment was originally written by @seaneagan Interesting. Dart used to have an equivalent feature for function arguments, until it was removed by popular demand (issue #9097). If the default value is calculated like that, then does it make sense to have an explicit default value? Seems like it might make more sense to just explain the default calculation in the |
This comment was originally written by Erik.Gri...@gmail.com I like having default values for a nice out of the box experience. I ended creating a settings object that takes a map as a source and provides the default values if they're not in the map. Then I merge Platform.environment and ArgResults[] into the map provided to the settings object. There's a bit of friction as ArgResults doesn't implement Map or provide an accessor to a Map view, so I have to loop through the options rather than just using Map.addAll. Any thoughts on why ArgResults doesn't implement map or provide an accessor to a Map view? I think having ArgResults implement Map or provide an accessor to a Map view might make merging configuration sources cleaner. |
Removed Library-Args label. |
Agreed. In particular, default values are shown in the usage information.
Args is super old so I think the map type was still in flux when I first wrote it. I'll follow up on the other bug for this. Set owner to @munificent. |
I just pushed arg 0.12.0, which adds a .wasParsed() method to ArgResults. Added Fixed label. |
This comment was originally written by Erik.Gr...@gmail.com Excellent. Thank you! |
This issue has been moved to dart-lang/core#126. |
This issue was originally filed by Erik.G...@gmail.com
Currently there is no way to differentiate between the user specifying the default value and the user not specifying anything, both result in the default value being in ArgResults. This causes a problem when you have default values and multiple sources of configuration information that you'd like to merge. For example if you would like to have a default configuration that you to allow be overridden by environment variables and command line arguments, with command line arguments having the highest priority.
The text was updated successfully, but these errors were encountered: