vty-examples v4.0.0 Release Notes

  • API changes:

    • ๐Ÿšš "getSize" has been removed. Use "terminal vty >>= display_bounds" where "vty" is an instance of the Vty data structure.
    • โž• added a "terminal" field to the Vty data structure. Accesses the TerminalHandle associated with the Vty instance.
    • Graphics.Vty.Types has undergone a number of changes. Summary:
      • Partitioned into Graphics.Vty.Attributes for display attributes. Graphics.Vty.Image for image combinators. Graphics.Vty.Picture for final picture construction.
    • Graphics.Vty.Attributes:
      • "setFG" and "setBG" are now "with_fore_color" and "with_back_color"
      • All other "set.." equations similarly replaced.
      • "attr" is now "def_attr", short for "default display attributes" Also added a "current_attr" for "currently applied display attributes"
    • Graphics.Vty.Image:
      • "horzcat" is now "horiz_cat"
      • "vertcat" is now "vert_cat"
      • "renderBS" is now "utf8_bytestring"
      • "renderChar" is now "char"
      • "renderFill" is now "char_fill"
      • added a "utf8_string" and "string" (AKA "iso_10464_string") for UTF-8 encoded Strings and ISO-10464 encoded Strings. String literals in GHC have an ISO-10464 runtime representation.
    • Graphics.Vty.Picture:
      • exports Graphics.Vty.Image
      • "pic" is now "pic_for_image"
      • added API for setting background fill pattern.
    • Completely rewritten output backend.
      • Efficient, scanline style output span generator. Has not been fully optimized, but good enough.
      • The details required to display the desired picture on a terminal are well encapsulated.
      • Terminfo based display terminal implementation. With specialized derivitives for xterm, Terminal.app, and iTerm.app.
        • Attempts to robustly handle even terminals that don't support all display attributes.
        • I've tested the following terminals with success: iTerm.app, Terminal.app, xterm, rxvt, mlterm, Eterm, gnome-terminal, konsole, screen, linux vty. Hopefully you will be as successfull.
      • Improved unicode support. Double wide characters will display as expected.
    • ๐Ÿ‘€ 256 color support. See Graphics.Vty.Attributes.Color240. The actual output color is adjusted according to the number of colors the terminal supports.
    • The Graphics.Vty.Image combinators no longer require matching dimensions to arguments. Unspecified areas are filled in with a user-customizable background pattern. See Graphics.Vty.Picture.
    • output images are always cropped to display size.
    • โœ… Significant code coverage by QuickCheck tests. An interactive test for those final properties that couldn't be automatically verified.

    Issues resolved: