Show / Hide Table of Contents

    FAQ and Known Issues

    • What sort of terminal support is required?
      • Single progress bar at a time: only carriage-return ('\r') is needed
      • Nested /Multi progress bars: require support for moving the cursor up/down in addition to carriage-return
    • What specific terminals actually work well with Yaap?
      • On Linux/Mac all terminal have full vt100 support, and should therefore work flawlessly
      • On windows, things should work well on any version of windows, except for Unicode support, which has its own page on how to make that ok-ish as well. Generally speaking, CMD.exe and ConEmu have been known to work well
    • Will Yapp enumerate through the IEnumerable<T> to get the total count?
      • Absolutely not! Yaap goes through every possible known way of getting the Count "value" of the IEnumerable<T> WITHOUT actually enumerating it. This means that when an ICollection/Array/IList object is passed to Yaap, it will actually read the Count / Length property instead. Finally, Yaap uses and undocumented internal .NET interface called IIListProvider which can, sometimes calculate the count value of the enumerable without consuming it. For more information on what works/doesn't, consult the specific unit tests. Finally, when all else fails, Yaap will throw an exception, explaining that the total progress value has to be provided by the user, for Yaap to work.
    • Can I write to the console while the progress bars are being updated?
      • Yes, but not directly though Console.Write*() but rather going through YaapConsole.Write*() wrapper functions, which keep everything nice and tidy
    • Does dynamic resizing work?
      • Kind of: When enlarging the width everything should be OK, when reducing the width, the screen could get momentarily garbled, but everything should look ok, "eventually"...
    • Improve this Doc
    Back to top © Copyright 2018 Dan Shechter