Analyzer package needs all the dependencies to be private assets, and it's output pushed to teh analyzers/dotnet/cs folder.
We don't want anything in the lib folder, so it also disables the auto build output and warnings that there are no files for the target framework in the lib folder
This is only for Android (hopefully) which has a system font that doesn't have standard width box drawing characters.
Other systems should still use their defaults.
If any task was not-started or finishes then everything stops rendering. I suspect this worked ok but wasn't noticed until we introduced the indeterminate progress task that starts off not-started which caused everything to bail early in the demos.
PNGs were ran through TinyPng. Table.gif was weighing in at over 1.7mb
on my machine. Converted to webm and it's down to 80kb which is pretty
nice for something on the home page. Other gifs didn't have that much of
an improvement so I just left them as GIFs.
If a user is propagating the exceptions we aren't going to automatically display them. They might still want to get this exception message and use it, so we'll make it publicly available.
Original intention was to register Settings automatically for DI. This ran into problem when the container verifies the configuration is valid for a settings using the constructor for initialization. It tries to resolve the parameters and fails.
This removes the automatic registration and falls back ActivatorCreateInstance when no Setting is registered.
Probably something that only bothers me, but I'm in a habit of running dotnet test at the solution level. It was discovering this project as a test project even though it isn't. This produces an error complaining about not having a testhost.dll. I'm pretty sure this comes in via a props when xunit is referenced.
This attribute in the csproj marks the project explicitly as not a test project
Wanted a command to break down how Spectre views the command model. This outputs all the relevant settings in a tree. You can get a short explanation for all the commands, or a detailed explanation for all commands (there is a flag to go vice versa on the detailed view if you want)
app cli explain
app cli explain myappcommand
app cli explain -d
The RegEx runtime perf was never anything noticeable - it was the startup time that was eating over a third of time during initialization.
This shaves 200ms off the startup time.
These methods don't require a string.format call so we'll directly call the Render method without a call to string.format.
Added bonus of a a couple fewer allocations too.
Makes the Report method an explicit implementation to allow for better interoperability with standard .NET progress functionality while keeping backwards compatibility with existing ProgressTask functionality.
Closes#285
Previous behavior was that the only way to get a task to a finished state was to artificially set the Value to MaxValue.
With this change StopTask() will also complete the task with the change that a task cannot be restarted.
In both of these loops context is captured preventing caching of the lambda. this results in a pretty significant amount of allocations especially with progress bars that constantly are remeasuring
R# and Rider have quite a bit of noise related to documentation in the testing projects so this disables those warnings.
In the main projects, R# and Rider complain loudly about the namespaces not matching the file structure. The DotSettings file disables that warning.
Once you get rid of that noise there are quite a few opportunities for trimming out redundant code that R# points out especially with the nullable support enabled, plus there are some bugs related to multiple enumerations worth looking into I think.