vty/CHANGELOG

239 lines
11 KiB
Plaintext

5.2.12
- unreleased
5.2.11
- deepseq bounds increased for tests.
- Clean up warnings when compiling on 7.10
- Thanks Eric Mertens
- Avoid discarding input bytes after multi-byte encoded codepoint
- Thanks Eric Mertens
5.2.10
- "str" now returns EmptyImage for empty strings to match behavior of other string-like Image constructors (fixes #74)
- Thanks Jonathan Daugherty
5.2.9
- dependency version bumps
- https://github.com/coreyoconnor/vty/pull/71
- https://github.com/coreyoconnor/vty/pull/70
- Correct/Simplify the example code
- Thanks glguy
- https://github.com/coreyoconnor/vty/pull/69
5.2.8
- blaze-builder, lens, utf8-string version constraint bump
- Thanks glguy
- https://github.com/coreyoconnor/vty/pull/67
- Do not differentiate based on TERM_PROGRAM
- https://github.com/coreyoconnor/vty/issues/68
5.2.7
- lens and deepseq constraint bump + misc
- Thanks ethercrow
- https://github.com/coreyoconnor/vty/pull/66
5.2.6
- lens constraint bump
- Thanks alexander-b!
- https://github.com/coreyoconnor/vty/pull/64
5.2.5
- lens and random version constraint bump.
- Thanks RyanGlScott!
- https://github.com/coreyoconnor/vty/pull/62
5.2.4
- removed -fpic from cc-options. No longer required.
- https://github.com/coreyoconnor/vty/issues/61
- https://ghc.haskell.org/trac/ghc/ticket/9657
- Thanks Fuuzetsu!
5.2.3
- evaluate/compile the input parsing table once instead of each keystroke.
- https://github.com/coreyoconnor/vty/pull/59
- Thanks ethercrow!
5.2.2
- When looking at input for an event, don't look too deep.
- https://github.com/coreyoconnor/vty/pull/57
- Thanks ethercrow!
5.2.1
- Bump upper version bound for lens to 4.5. Thanks markus1189!
5.2.0
- Config structure now specifies file descriptor to use. The default is stdInput and stdOutput
file descriptors. Previously Vty used stdInput for input and the follow code for output:
- hDuplicate stdout >>= handleToFd >>= (`hSetBuffering` NoBuffering)
- the difference was required by Vty.Inline. Now, Vty.Inline uses the Config structure options
to acheive the same effect.
- removed: derivedVtime, derivedVmin, inputForCurrentTerminal, inputForNameAndIO,
outputForCurrentTerminal, outputForNameAndIO
- added: inputForConfig, outputForConfig
- updates to vty-rogue from jtdaugherty. Thanks!
- the oldest version of GHC tested to support vty is 7.6.2.
- the oldest version of GHC that vty compiles under is 7.4.2
5.1.4
- merged https://github.com/coreyoconnor/vty/pull/51 thanks trofi!
5.1.1
- merged https://github.com/coreyoconnor/vty/pull/48 thanks sjmielke!
- jtdaugherty resolved a number of compiler warnings. Thanks!
5.1.0
- vmin and vtime can be specified however the application requires. See Graphics.Vty.Config.
- fixed the processing of input when vmin is set > 1.
5.0.0
- The naming convention now matches:
- http://www.haskell.org/haskellwiki/Programming_guidelines#Naming_Conventions
- all projects using vty for input must be compiled with -threaded. Please notify vty author if
this is not acceptable.
- mkVtyEscDelay has been removed. Use "mkVty def". Which initialized vty with the default
configuration.
- input handling changes
- KASCII is now KChar
- KPN5 is now KCenter
- tests exist.
- Applications can add to the input tables by setting inputMap of the Config.
See Graphics.Vty.Config
- Users can define input table extensions that will apply to all vty applications.
See Graphics.Vty.Config
- terminal timing is now handled by selecting an appropriate VTIME. Previously this was
implemented within Vty itself. This reduced complexity in vty but provides a different meta
key behavior and implies a requirement on -threaded.
- The time vty will wait to verify an ESC byte means a single ESC key is the
singleEscPeriod of the Input Config structure.
- removed the typeclass based terminal and display context interface in favor of a data
structure of properties interface.
- renamed the Terminal interface to Output
- The default picture for an image now uses the "clear" background. This background fills
background spans with spaces or just ends the line.
- Previously the background defaulted to the space character. This causes issues copying
text from a text editor. The text would end up with extra spaces at the end of the line.
- Layer support
- Each layer is an image.
- The layers for a picture are a list of images.
- The first image is the top-most layer. The images are ordered from top to bottom.
- The transparent areas for a layer are the backgroundFill areas. backgroundFill is
added to pad images when images of different sizes are joined.
- If the background is clear there is no background layer.
- If there is a background character then the bottom layer is the background layer.
- emptyPicture is a Picture with no layers and no cursor
- addToTop and addToBottom add a layer to the top and bottom of the given Picture.
- compatibility improvements:
- terminfo based terminals with no cursor support are silently accepted. The cursor
visibility changes in the Picture will have no effect.
- alternate (setf/setb) color maps supported. Though colors beyond the first 8 are just a
guess.
- added "rgbColor" for easy support of RGB specified colors.
- Both applications and users can add to the mapping used to translate from input bytes to
events.
- Additional information about input and output process can be appended to a debug log
- Set environment variable VTY_DEBUG_LOG to path of debug log
- Or use "debugLog <path>" config directive
- Or set 'debugLog' property of the Config provided to mkVty.
- examples moved to vty-examples package. See test directory for cabal file.
- vty-interactive-terminal-test
- interactive test. Useful for building a bug report for vty's author.
- test/interactive_terminal_test.hs
- vty-event-echo
- view a input event log for vty. Example of interacting with user.
- test/EventEcho.hs
- vty-rogue
- The start of a rogue-like game. Example of layers and image build operations.
- test/Rogue.hs
- vty-benchmark
- benchmarks vty. A series of tests that push random pictures to the terminal. The
random pictures are generated using QuickCheck. The same generators used in the
automated tests.
- test/benchmark.hs
4.7.0.0
- API changes:
- Added Graphics.Vty.Image.crop: Ensure an image is no larger than the specified size.
- Added Graphics.Vty.Image.pad: Ensure an image is no smaller than the specified size.
- Added Graphics.Vty.Image.translate: Offset an image.
- Thanks Ben Boeckel <MathStuf@gmail.com> for these features.
4.3.0.0
4.2.1.0
- API changes:
- Attr record accessor fore_color changed to attr_fore_color
- Attr record accessor back_color changed to attr_back_color
- Attr record accessor style changed to attr_style
- Added an "inline" display attribute changing DSL:
- put_attr_change applies a display attribute change immediately to a terminal
- For instance, can be used to change the display attrbiutes of text output via putStrLn
and putStr. EX: "put_attr_change $ back_color red" will set the
background color to red.
- Changes do not apply to a Picture output via output_picture.
- See Graphics.Vty.Inline
- Moved all IO actions into any monad an instance of MonadIO
4.0.0.1
- binding for mk_wcswidth was incorrect. Most platforms just magically worked due to
coincidence.
4.0.0
- 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:
- "gnome terminal displays non-basic attributes as strikethrough"
- http://trac.haskell.org/vty/ticket/14
- "Multi-byte characters are not displayed correctly on update"
- http://trac.haskell.org/vty/ticket/10
- "Redraw does not handle rendering a line that extends beyond screen width characters"
- http://trac.haskell.org/vty/ticket/13
- "The <|> and <-> combinators should be more forgiving of mismatched dimensions"
- http://trac.haskell.org/vty/ticket/9
- "256-color support"
- http://trac.haskell.org/vty/ticket/19