Rename CHANGELOG, improve formatting

This commit is contained in:
Jonathan Daugherty 2017-01-21 20:13:46 -08:00
parent 33530be1b7
commit 77bcba3ad6
3 changed files with 194 additions and 153 deletions

View File

@ -19,4 +19,4 @@ library:
* Yoshikuni Jujo * Yoshikuni Jujo
* Dmitry Ivanov * Dmitry Ivanov
Plus others.. Check the git log and CHANGELOG for a full list. Plus others.. Check the git log and CHANGELOG.md for a full list.

View File

@ -8,8 +8,9 @@
possible to use 'str ""' as a non-empty image with height 1. possible to use 'str ""' as a non-empty image with height 1.
5.13 5.13
- Reverted changes in 5.12 due to disagreements between terminal emulators - Reverted changes in 5.12 due to disagreements between terminal
and utf8proc; for more details, please see the ticket discussion at emulators and utf8proc; for more details, please see the ticket
discussion at
https://github.com/coreyoconnor/vty/issues/115 https://github.com/coreyoconnor/vty/issues/115
5.12 5.12
@ -23,8 +24,8 @@
- Fix mouse event offsets in mouse-up events - Fix mouse event offsets in mouse-up events
5.11.2 5.11.2
- Mouse events were modified so that the upper-left corner of the window is - Mouse events were modified so that the upper-left corner of the
(0,0) rather than (1,1). window is (0,0) rather than (1,1).
5.11.1 5.11.1
- Add Generic instance for Image - Add Generic instance for Image
@ -62,8 +63,9 @@
(fixes #89) (fixes #89)
5.9 5.9
- Added new Output methods supportsBell and ringTerminalBell to find out - Added new Output methods supportsBell and ringTerminalBell to find
whether the output device has an audio bell and to ring it (see #102) out whether the output device has an audio bell and to ring it (see
#102)
5.8.1 5.8.1
- Fixed "refresh" to work as advertised (see #104) - Fixed "refresh" to work as advertised (see #104)
@ -74,15 +76,17 @@
how best to decode it how best to decode it
5.7.1 5.7.1
- ModeDemo: added an explicit Control.Applicative import for older GHCs - ModeDemo: added an explicit Control.Applicative import for older
GHCs
5.7 5.7
- Mouse and paste modes are now off by default. - Mouse and paste modes are now off by default.
- The Config type got new fields: mouseMode and bracketedPasteMode. These - The Config type got new fields: mouseMode and bracketedPasteMode.
determine whether these modes are enabled initially (for terminals These determine whether these modes are enabled initially (for
that support them). terminals that support them).
- Added a Mode type for modal terminal features (mouse events, bracketed - Added a Mode type for modal terminal features (mouse events,
paste mode) that is used with new Output interface functions: bracketed paste mode) that is used with new Output interface
functions:
* supportsMode :: Mode -> Bool tells whether the device supports a * supportsMode :: Mode -> Bool tells whether the device supports a
mode mode
* setMode :: Mode -> Bool -> IO () turns a mode on or off * setMode :: Mode -> Bool -> IO () turns a mode on or off
@ -101,14 +105,16 @@
XtermColor driver rather than just TerminfoBased XtermColor driver rather than just TerminfoBased
5.5.0 5.5.0
- Replaced lens dependency with microlens, microlens-mtl, microlens-th dependencies. Issue #90 - Replaced lens dependency with microlens, microlens-mtl, microlens-th
dependencies. Issue #90
- Thanks Jonathan Daugherty - Thanks Jonathan Daugherty
- Cabal corrections. - Cabal corrections.
- Thanks Lennart Spitzner - Thanks Lennart Spitzner
5.4.0 5.4.0
- Changed eventChannel of Graphics.Vty.Input from Chan to TChan. This enables clients to query if - Changed eventChannel of Graphics.Vty.Input from Chan to TChan.
there are no pending events. The Graphics.Vty interface nextEvent is unchanged. Clients that use This enables clients to query if there are no pending events. The
Graphics.Vty interface nextEvent is unchanged. Clients that use
eventChannel directly will require updating. eventChannel directly will require updating.
https://github.com/coreyoconnor/vty/issues/60 https://github.com/coreyoconnor/vty/issues/60
5.3.1 5.3.1
@ -117,19 +123,22 @@
5.3 5.3
- Upgraded QuickCheck dependency to 2.7 - Upgraded QuickCheck dependency to 2.7
- The standard IO Config (standardIOConfig) was overriding any provided application config. - The standard IO Config (standardIOConfig) was overriding any
In addition, the inputFd and outputFd could not be changed if mkVty was used. provided application config. In addition, the inputFd and outputFd
Fixed. could not be changed if mkVty was used. Fixed.
- Correct handling of display attributes at end of line. The output attributes are set to default - Correct handling of display attributes at end of line. The output
at the end of content for the line and at the start of a new line. Previously the current attributes are set to default at the end of content for the line and
attribute would extend to the next start of content. This was odd to reason about and was the at the start of a new line. Previously the current attribute would
cause of https://github.com/coreyoconnor/vty/issues/76 extend to the next start of content. This was odd to reason about
IIRC Yi requires the old behavior to display the selection region correctly. and was the cause of https://github.com/coreyoconnor/vty/issues/76
- shutdown of the input thread is now performed using killThread and synchronization on an MVar. IIRC Yi requires the old behavior to display the selection region
For correct handling of the terminal read vmin and vtime the read must be a blocking read on an correctly.
OS thread. This places a threadWaitRead, which will be interrupted by the killThread, prior to - shutdown of the input thread is now performed using killThread and
the uninterruptable read. An alternative would be to re-import the read foreign call as synchronization on an MVar. For correct handling of the terminal
interruptable. read vmin and vtime the read must be a blocking read on an OS
thread. This places a threadWaitRead, which will be interrupted by
the killThread, prior to the uninterruptable read. An alternative
would be to re-import the read foreign call as interruptable.
5.2.11 5.2.11
- deepseq bounds increased for tests. - deepseq bounds increased for tests.
@ -139,7 +148,8 @@
- Thanks Eric Mertens - Thanks Eric Mertens
5.2.10 5.2.10
- "str" now returns EmptyImage for empty strings to match behavior of other string-like Image constructors (fixes #74) - "str" now returns EmptyImage for empty strings to match behavior of
other string-like Image constructors (fixes #74)
- Thanks Jonathan Daugherty - Thanks Jonathan Daugherty
5.2.9 5.2.9
@ -179,7 +189,8 @@
- Thanks Fuuzetsu! - Thanks Fuuzetsu!
5.2.3 5.2.3
- evaluate/compile the input parsing table once instead of each keystroke. - evaluate/compile the input parsing table once instead of each
keystroke.
- https://github.com/coreyoconnor/vty/pull/59 - https://github.com/coreyoconnor/vty/pull/59
- Thanks ethercrow! - Thanks ethercrow!
@ -192,13 +203,15 @@
- Bump upper version bound for lens to 4.5. Thanks markus1189! - Bump upper version bound for lens to 4.5. Thanks markus1189!
5.2.0 5.2.0
- Config structure now specifies file descriptor to use. The default is stdInput and stdOutput - Config structure now specifies file descriptor to use. The default
file descriptors. Previously Vty used stdInput for input and the follow code for output: is stdInput and stdOutput file descriptors. Previously Vty used
- hDuplicate stdout >>= handleToFd >>= (`hSetBuffering` NoBuffering) stdInput for input and the follow code for output:
- the difference was required by Vty.Inline. Now, Vty.Inline uses the Config structure options - hDuplicate stdout >>= handleToFd >>= (`hSetBuffering`
to acheive the same effect. NoBuffering)
- removed: derivedVtime, derivedVmin, inputForCurrentTerminal, inputForNameAndIO, - the difference was required by Vty.Inline. Now, Vty.Inline uses
outputForCurrentTerminal, outputForNameAndIO the Config structure options to acheive the same effect.
- removed: derivedVtime, derivedVmin, inputForCurrentTerminal,
inputForNameAndIO, outputForCurrentTerminal, outputForNameAndIO
- added: inputForConfig, outputForConfig - added: inputForConfig, outputForConfig
- updates to vty-rogue from jtdaugherty. Thanks! - 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 tested to support vty is 7.6.2.
@ -212,78 +225,94 @@
- jtdaugherty resolved a number of compiler warnings. Thanks! - jtdaugherty resolved a number of compiler warnings. Thanks!
5.1.0 5.1.0
- vmin and vtime can be specified however the application requires. See Graphics.Vty.Config. - vmin and vtime can be specified however the application requires.
See Graphics.Vty.Config.
- fixed the processing of input when vmin is set > 1. - fixed the processing of input when vmin is set > 1.
5.0.0 5.0.0
- The naming convention now matches: - The naming convention now matches:
- http://www.haskell.org/haskellwiki/Programming_guidelines#Naming_Conventions - 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 - all projects using vty for input must be compiled with -threaded.
this is not acceptable. Please notify vty author if this is not acceptable.
- mkVtyEscDelay has been removed. Use "mkVty def". Which initialized vty with the default - mkVtyEscDelay has been removed. Use "mkVty def". Which initialized
configuration. vty with the default configuration.
- input handling changes - input handling changes
- KASCII is now KChar - KASCII is now KChar
- KPN5 is now KCenter - KPN5 is now KCenter
- tests exist. - tests exist.
- Applications can add to the input tables by setting inputMap of the Config. - Applications can add to the input tables by setting inputMap of
See Graphics.Vty.Config the Config. See Graphics.Vty.Config
- Users can define input table extensions that will apply to all vty applications. - Users can define input table extensions that will apply to all vty
See Graphics.Vty.Config applications. See Graphics.Vty.Config
- terminal timing is now handled by selecting an appropriate VTIME. Previously this was - terminal timing is now handled by selecting an appropriate VTIME.
implemented within Vty itself. This reduced complexity in vty but provides a different meta Previously this was implemented within Vty itself. This reduced
key behavior and implies a requirement on -threaded. complexity in vty but provides a different meta key behavior and
- The time vty will wait to verify an ESC byte means a single ESC key is the implies a requirement on -threaded.
singleEscPeriod of the Input Config structure. - The time vty will wait to verify an ESC byte means a single ESC
- removed the typeclass based terminal and display context interface in favor of a data key is the singleEscPeriod of the Input Config structure.
structure of properties interface. - removed the typeclass based terminal and display context interface
in favor of a data structure of properties interface.
- renamed the Terminal interface to Output - renamed the Terminal interface to Output
- The default picture for an image now uses the "clear" background. This background fills - The default picture for an image now uses the "clear" background.
background spans with spaces or just ends the line. This background fills background spans with spaces or just ends the
- Previously the background defaulted to the space character. This causes issues copying line.
text from a text editor. The text would end up with extra spaces at the end of 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 - Layer support
- Each layer is an image. - Each layer is an image.
- The layers for a picture are a list of images. - 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 first image is the top-most layer. The images are ordered from
- The transparent areas for a layer are the backgroundFill areas. backgroundFill is top to bottom.
added to pad images when images of different sizes are joined. - 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 the background is clear there is no background layer.
- If there is a background character then the bottom layer is the 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 - 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. - addToTop and addToBottom add a layer to the top and bottom of the
given Picture.
- compatibility improvements: - compatibility improvements:
- terminfo based terminals with no cursor support are silently accepted. The cursor - terminfo based terminals with no cursor support are silently
visibility changes in the Picture will have no effect. accepted. The cursor visibility changes in the Picture will have
- alternate (setf/setb) color maps supported. Though colors beyond the first 8 are just a no effect.
guess. - 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. - 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 - Both applications and users can add to the mapping used to
events. translate from input bytes to events.
- Additional information about input and output process can be appended to a debug log - 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 - Set environment variable VTY_DEBUG_LOG to path of debug log
- Or use "debugLog <path>" config directive - Or use "debugLog <path>" config directive
- Or set 'debugLog' property of the Config provided to mkVty. - Or set 'debugLog' property of the Config provided to mkVty.
- examples moved to vty-examples package. See test directory for cabal file. - examples moved to vty-examples package. See test directory for cabal
file.
- vty-interactive-terminal-test - vty-interactive-terminal-test
- interactive test. Useful for building a bug report for vty's author. - interactive test. Useful for building a bug report for vty's
author.
- test/interactive_terminal_test.hs - test/interactive_terminal_test.hs
- vty-event-echo - vty-event-echo
- view a input event log for vty. Example of interacting with user. - view a input event log for vty. Example of interacting with
user.
- test/EventEcho.hs - test/EventEcho.hs
- vty-rogue - vty-rogue
- The start of a rogue-like game. Example of layers and image build operations. - The start of a rogue-like game. Example of layers and image
build operations.
- test/Rogue.hs - test/Rogue.hs
- vty-benchmark - vty-benchmark
- benchmarks vty. A series of tests that push random pictures to the terminal. The - benchmarks vty. A series of tests that push random pictures to
random pictures are generated using QuickCheck. The same generators used in the the terminal. The random pictures are generated using
automated tests. QuickCheck. The same generators used in the automated tests.
- test/benchmark.hs - test/benchmark.hs
4.7.0.0 4.7.0.0
- API changes: - API changes:
- Added Graphics.Vty.Image.crop: Ensure an image is no larger than the specified size. - Added Graphics.Vty.Image.crop: Ensure an image is no larger
- Added Graphics.Vty.Image.pad: Ensure an image is no smaller than the specified size. 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. - Added Graphics.Vty.Image.translate: Offset an image.
- Thanks Ben Boeckel <MathStuf@gmail.com> for these features. - Thanks Ben Boeckel <MathStuf@gmail.com> for these features.
@ -295,73 +324,85 @@
- Attr record accessor back_color changed to attr_back_color - Attr record accessor back_color changed to attr_back_color
- Attr record accessor style changed to attr_style - Attr record accessor style changed to attr_style
- Added an "inline" display attribute changing DSL: - Added an "inline" display attribute changing DSL:
- put_attr_change applies a display attribute change immediately to a terminal - put_attr_change applies a display attribute change
- For instance, can be used to change the display attrbiutes of text output via putStrLn immediately to a terminal
and putStr. EX: "put_attr_change $ back_color red" will set the - For instance, can be used to change the display attrbiutes
background color to red. 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. - Changes do not apply to a Picture output via output_picture.
- See Graphics.Vty.Inline - See Graphics.Vty.Inline
- Moved all IO actions into any monad an instance of MonadIO - Moved all IO actions into any monad an instance of MonadIO
4.0.0.1 4.0.0.1
- binding for mk_wcswidth was incorrect. Most platforms just magically worked due to - binding for mk_wcswidth was incorrect. Most platforms just
coincidence. magically worked due to coincidence.
4.0.0 4.0.0
- API changes: - API changes:
- "getSize" has been removed. Use "terminal vty >>= display_bounds" where "vty" is an - "getSize" has been removed. Use "terminal vty >>= display_bounds"
instance of the Vty data structure. where "vty" is an instance of the Vty data structure.
- added a "terminal" field to the Vty data structure. Accesses the TerminalHandle associated - added a "terminal" field to the Vty data structure. Accesses the
with the Vty instance. TerminalHandle associated with the Vty instance.
- Graphics.Vty.Types has undergone a number of changes. Summary: - Graphics.Vty.Types has undergone a number of changes. Summary:
- Partitioned into Graphics.Vty.Attributes for display attributes. Graphics.Vty.Image for - Partitioned into Graphics.Vty.Attributes for display attributes.
image combinators. Graphics.Vty.Picture for final picture construction. Graphics.Vty.Image for image combinators. Graphics.Vty.Picture
for final picture construction.
- Graphics.Vty.Attributes: - Graphics.Vty.Attributes:
- "setFG" and "setBG" are now "with_fore_color" and "with_back_color" - "setFG" and "setBG" are now "with_fore_color" and
"with_back_color"
- All other "set.." equations similarly replaced. - All other "set.." equations similarly replaced.
- "attr" is now "def_attr", short for "default display attributes" Also added a - "attr" is now "def_attr", short for "default display attributes"
"current_attr" for "currently applied display attributes" Also added a "current_attr" for "currently applied display
attributes"
- Graphics.Vty.Image: - Graphics.Vty.Image:
- "horzcat" is now "horiz_cat" - "horzcat" is now "horiz_cat"
- "vertcat" is now "vert_cat" - "vertcat" is now "vert_cat"
- "renderBS" is now "utf8_bytestring" - "renderBS" is now "utf8_bytestring"
- "renderChar" is now "char" - "renderChar" is now "char"
- "renderFill" is now "char_fill" - "renderFill" is now "char_fill"
- added a "utf8_string" and "string" (AKA "iso_10464_string") for UTF-8 encoded Strings - added a "utf8_string" and "string" (AKA "iso_10464_string") for
and ISO-10464 encoded Strings. String literals in GHC have an ISO-10464 runtime UTF-8 encoded Strings and ISO-10464 encoded Strings. String
representation. literals in GHC have an ISO-10464 runtime representation.
- Graphics.Vty.Picture: - Graphics.Vty.Picture:
- exports Graphics.Vty.Image - exports Graphics.Vty.Image
- "pic" is now "pic_for_image" - "pic" is now "pic_for_image"
- added API for setting background fill pattern. - added API for setting background fill pattern.
- Completely rewritten output backend. - Completely rewritten output backend.
- Efficient, scanline style output span generator. Has not been fully optimized, but good - Efficient, scanline style output span generator. Has not been
enough. fully optimized, but good enough.
- The details required to display the desired picture on a terminal are well encapsulated. - The details required to display the desired picture on a
- Terminfo based display terminal implementation. With specialized derivitives for xterm, terminal are well encapsulated.
Terminal.app, and iTerm.app. - Terminfo based display terminal implementation. With specialized
- Attempts to robustly handle even terminals that don't support all display attributes. derivitives for xterm, Terminal.app, and iTerm.app.
- I've tested the following terminals with success: iTerm.app, Terminal.app, xterm, - Attempts to robustly handle even terminals that don't
rxvt, mlterm, Eterm, gnome-terminal, konsole, screen, linux vty. Hopefully you will be support all display attributes.
as successfull. - I've tested the following terminals with success: iTerm.app,
- Improved unicode support. Double wide characters will display as expected. Terminal.app, xterm, rxvt, mlterm, Eterm, gnome-terminal,
- 256 color support. See Graphics.Vty.Attributes.Color240. The actual output color is adjusted konsole, screen, linux vty. Hopefully you will be as
according to the number of colors the terminal supports. successfull.
- The Graphics.Vty.Image combinators no longer require matching dimensions to arguments. - Improved unicode support. Double wide characters will display as
Unspecified areas are filled in with a user-customizable background pattern. See expected.
Graphics.Vty.Picture. - 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. - output images are always cropped to display size.
- Significant code coverage by QuickCheck tests. An interactive test for those final properties - Significant code coverage by QuickCheck tests. An interactive test
that couldn't be automatically verified. for those final properties that couldn't be automatically verified.
issues resolved: Issues resolved:
- "gnome terminal displays non-basic attributes as strikethrough" - "gnome terminal displays non-basic attributes as strikethrough"
- http://trac.haskell.org/vty/ticket/14 - http://trac.haskell.org/vty/ticket/14
- "Multi-byte characters are not displayed correctly on update" - "Multi-byte characters are not displayed correctly on update"
- http://trac.haskell.org/vty/ticket/10 - http://trac.haskell.org/vty/ticket/10
- "Redraw does not handle rendering a line that extends beyond screen width characters" - "Redraw does not handle rendering a line that extends beyond screen
width characters"
- http://trac.haskell.org/vty/ticket/13 - http://trac.haskell.org/vty/ticket/13
- "The <|> and <-> combinators should be more forgiving of mismatched dimensions" - "The <|> and <-> combinators should be more forgiving of mismatched
dimensions"
- http://trac.haskell.org/vty/ticket/9 - http://trac.haskell.org/vty/ticket/9
- "256-color support" - "256-color support"
- http://trac.haskell.org/vty/ticket/19 - http://trac.haskell.org/vty/ticket/19

View File

@ -29,7 +29,7 @@ cabal-version: >= 1.18
build-type: Simple build-type: Simple
data-files: README.md, data-files: README.md,
AUTHORS, AUTHORS,
CHANGELOG, CHANGELOG.md,
LICENSE LICENSE
tested-with: GHC >= 7.6.2 tested-with: GHC >= 7.6.2