on feature/status-line help sign in
vty/CHANGELOG.md
530 lines 22 kB history raw
25.25.1
3 - Avoided a conflict with a Microlens 0.4.10 operator and added an
4 upper bound on Microlens of 0.4.11.
65.25
7 - The Vty type got a new field, isShutdown, that returns whether the
8 Vty handle has had its 'shutdown' function called (thanks Ian
9 Jeffries)
10 - Vty's shutdown function is now thread-safe.
125.24.1
13 - The "shutdown" method of Vty handles is now idempotent (#159)
155.24
16 - Add Generic and NFData instances for some types
17 - Image: remove custom Show instance, add derived Show and Read instances
18 - Updated Travis build settings (thanks Eric Mertens)
205.23.1
21 - Fixed a bug where italics did not combine properly with other
22 display modes (#155, thanks Eric Mertens)
245.23
25 - Added support for italicized output when terminfo supports it. This
26 takes the form of a new Style, "italic". Note that most terminfo
27 descriptors do not report capabilities for italics, so support for
28 this will be very spotty.
29 - Updateed text/string function documentation to indicate that escapes
30 are not permitted in their inputs.
325.22
33 - Added Graphics.Vty.Attributes.Color240.color240CodeToRGB function
34 (thanks Brent Carmer)
35 - Added nextEventNonblocking function (field) to Vty type (#87)
375.21
38 - Picture and Background now provide Eq instances (thanks Jaro Reinders)
39 - #145: vty builds with microlens 0.4.9 (thanks Daniel Wagner)
40 - #142: note requirement of threaded RTS
425.20
43API changes:
44 - Split up Monoid instances into Monoid and Semigroup for newer GHCs
45 (thanks Ryan Scott)
475.19.1
48API changes:
49 * Cursor now provides an Eq instance (thanks Jaro Reinders)
515.19
52API changes:
53 - URL hyperlinking (via 'withURL') is now optional and disabled by
54 default due to poor support on some common terminals. A new 'Mode'
55 constructor, 'Hyperlink', has been added to enable this feature. To
56 change the hyperlinking mode, use 'setMode' on the 'outputIface' of a
57 Vty handle.
595.18.1
60Bug fixes:
61 - Reset the hyperlink state on line endings to avoid run-on hyperlinks
635.18
64API changes:
65 - Added support for hyperlinking attributes (thanks Getty Ritter). This
66 change adds a new Attr field for containing the hyperlink to apply,
67 as per https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
695.17.1
70 - withStyle now ignores zero arguments, leaving attribute styles
71 untouched if the input style is the null style
735.17
74API changes:
75 - Add support for terminal focus events. This change adds a new mode
76 usable with setMode, Focus, that requests that the terminal send
77 events on focus lose/gain. This change also adds two new Event
78 constructors, EvLostFocus and EvGainedFocus.
79 - No longer enable UTF8 mouse event encoding. This encoding was not
80 working properly with Terminal.app, and using the other modes (SGR,
81 etc.) work.
82 - Graphics.Vty.Attributes: escape backticks in Haddock comment (fixes
83 #131)
855.16
86API changes:
87 - Added support for mouse wheel events while in mouse mode. The Button
88 type got two new constructors as a result: BScrollUp and BScrollDown.
89 Thanks to doublescale@tutanota.com for this contribution!
91Bug fixes:
92 - charFill now clamps negative arguments to zero (thanks Eric
93 Mertens!)
955.15.1
96Package changes:
97 - Documentation files are now marked accordingly (thanks Michal
98 Suchánek)
100Bug fixes:
101 - translateX/Y: fix negative translations
1035.15
104Package changes:
105 - Discontinued support for GHC versions prior to 7.10.1.
106 - Removed instructions and configuration for Stack builds since they
107 are no longer supported.
108 - Clarified README mention of (lack of) Windows support (contributors
109 wanted, though!)
110 - Removed dependency on data-default (see below).
112API changes:
113 - Moved color definitions from Attributes to Color module.
114 - In lieu of data-default (Default) instances for Attr and Config, use
115 'defAttr' and the new 'defaultConfig' (or 'mempty') instead of 'def'.
116 - Graphics.Vty.Output no longer re-exports
117 Graphics.Vty.Output.Interface.
118 - Removed Graphics.Vty.Prelude module and moved DisplayRegion and its
119 accessors to Graphics.Vty.Image.
120 - Graphics.Vty.Image no longer re-exports Graphics.Vty.Attributes.
121 - Graphics.Vty.Picture no longer re-exports Graphics.Vty.Image.
1235.14
124 - addMaybeClippedJoin: instead of raising an exception when the join
125 is totally clipped, just reduce the clip amount and continue
126 - addMaybeClipped: skip blit of joins when their primary dimension is
127 zero
128 - 'string' and related text functions no longer treat an empty string
129 as an empty image (thanks Chris Penner). This means that now it is
130 possible to use 'str ""' as a non-empty image with height 1.
1325.13
133 - Reverted changes in 5.12 due to disagreements between terminal
134 emulators and utf8proc; for more details, please see the ticket
135 discussion at
136 https://github.com/coreyoconnor/vty/issues/115
1385.12
139 - Replaced 'wcwidth' with a call to the utf8proc library's character
140 width function, which is much more up to date (by several Unicode
141 versions) and returns the right width for a much larger set of
142 characters.
143 - Added a bundled version of the utf8proc C library.
1455.11.3
146 - Fix mouse event offsets in mouse-up events
1485.11.2
149 - Mouse events were modified so that the upper-left corner of the
150 window is (0,0) rather than (1,1).
1525.11.1
153 - Add Generic instance for Image
154 - nextEvent: stop trying to refresh on a resize event (fixes segfault
155 on refresh with normal cursor positioning mode)
156 - Remove redundant clause from clipForCharWidth (thanks Eric Mertens)
157 - Update maintainer
1595.11
160 - Vty now raises a VtyConfigurationError exception when the TERM
161 evironment variable is missing (thanks Eric Mertens)
162 - Graphics.Vty.Config got an explicit export list to avoid accidentally
163 exporting internal types (thanks Eric Mertens)
1655.10
166 - Add absolute cursor positioning mode AbsoluteCursor to Cursor. This
167 mode provides greater control over cursor positioning by bypassing
168 the logical positioning provided by default. Rather than positioning
169 the cursor by looking at the widths of characters involved, this
170 constructor lets you provide a physical row and column instead. This
171 is useful in more sophisticated programs. (thanks Eric Mertens)
172 - Added a new Generic-derived config parser (thanks Eric Mertens)
173 - Fixed the MShift case in the configuration file parser (thanks Eric
174 Mertens)
175 - Fixed wcwidth import and matched safeWcswidth to its documented
176 behavior. Previously vty_mk_wcwidth was being imported with
177 the wrong type causing the -1 return value to be mapped to the
178 wrong Int value. Additionally safeWcswidth was using the unsafe
179 character width function and only ensuring that the final result was
180 non-negative. (thanks Eric Mertens)
1825.9.1
183 - Vty now only emits UTF8 charset sequences in terminals without a
184 preexisting UTF8 declaration to avoid emitting garbage sequences
185 (fixes #89)
1875.9
188 - Added new Output methods supportsBell and ringTerminalBell to find
189 out whether the output device has an audio bell and to ring it (see
190 #102)
1925.8.1
193 - Fixed "refresh" to work as advertised (see #104)
1955.8
196 - API change: EvPaste input event now provides paste data as a raw
197 ByteString rather than a String to allow the application to decode
198 how best to decode it
2005.7.1
201 - ModeDemo: added an explicit Control.Applicative import for older
202 GHCs
2045.7
205 - Mouse and paste modes are now off by default.
206 - The Config type got new fields: mouseMode and bracketedPasteMode.
207 These determine whether these modes are enabled initially (for
208 terminals that support them).
209 - Added a Mode type for modal terminal features (mouse events,
210 bracketed paste mode) that is used with new Output interface
211 functions:
212 * supportsMode :: Mode -> Bool tells whether the device supports a
213 mode
214 * setMode :: Mode -> Bool -> IO () turns a mode on or off
215 * getModeStatus :: Mode -> IO Bool tells you whether a mode is on or
216 off
217 - Added a new demo program, ModeDemo.hs, to demonstrate usage of modes
2195.6
220 - Added support for normal and extended mouse modes in Xterm-like
221 terminals via the MouseDown and MouseUp Event constructors
222 - Added support for bracketed paste mode in Xterm-like terminals via
223 the EvPaste event constructor
224 - Added derived Show instances for Event and Button (thanks Felix
225 Hirn)
226 - Now TERM values containing "screen" will automatically use the
227 XtermColor driver rather than just TerminfoBased
2295.5.0
230 - Replaced lens dependency with microlens, microlens-mtl, microlens-th
231 dependencies. Issue #90
232 - Thanks Jonathan Daugherty
233 - Cabal corrections.
234 - Thanks Lennart Spitzner
2365.4.0
237 - Changed eventChannel of Graphics.Vty.Input from Chan to TChan.
238 This enables clients to query if there are no pending events. The
239 Graphics.Vty interface nextEvent is unchanged. Clients that use
240 eventChannel directly will require updating.
241 https://github.com/coreyoconnor/vty/issues/60
2425.3.1
243 - Reverted cabal file to depend on Cabal >= 1.18 instead of 1.20 due
244 to possibly breaking this on reasonable GHC versions
2465.3
247 - Upgraded QuickCheck dependency to 2.7
248 - The standard IO Config (standardIOConfig) was overriding any
249 provided application config. In addition, the inputFd and outputFd
250 could not be changed if mkVty was used. Fixed.
251 - Correct handling of display attributes at end of line. The output
252 attributes are set to default at the end of content for the line and
253 at the start of a new line. Previously the current attribute would
254 extend to the next start of content. This was odd to reason about
255 and was the cause of https://github.com/coreyoconnor/vty/issues/76
256 IIRC Yi requires the old behavior to display the selection region
257 correctly.
258 - shutdown of the input thread is now performed using killThread and
259 synchronization on an MVar. For correct handling of the terminal
260 read vmin and vtime the read must be a blocking read on an OS
261 thread. This places a threadWaitRead, which will be interrupted by
262 the killThread, prior to the uninterruptable read. An alternative
263 would be to re-import the read foreign call as interruptable.
2655.2.11
266 - deepseq bounds increased for tests.
267 - Clean up warnings when compiling on 7.10
268 - Thanks Eric Mertens
269 - Avoid discarding input bytes after multi-byte encoded codepoint
270 - Thanks Eric Mertens
2725.2.10
273 - "str" now returns EmptyImage for empty strings to match behavior of
274 other string-like Image constructors (fixes #74)
275 - Thanks Jonathan Daugherty
2775.2.9
278 - dependency version bumps
279 - https://github.com/coreyoconnor/vty/pull/71
280 - https://github.com/coreyoconnor/vty/pull/70
281 - Correct/Simplify the example code
282 - Thanks glguy
283 - https://github.com/coreyoconnor/vty/pull/69
2855.2.8
286 - blaze-builder, lens, utf8-string version constraint bump
287 - Thanks glguy
288 - https://github.com/coreyoconnor/vty/pull/67
289 - Do not differentiate based on TERM_PROGRAM
290 - https://github.com/coreyoconnor/vty/issues/68
2925.2.7
293 - lens and deepseq constraint bump + misc
294 - Thanks ethercrow
295 - https://github.com/coreyoconnor/vty/pull/66
2975.2.6
298 - lens constraint bump
299 - Thanks alexander-b!
300 - https://github.com/coreyoconnor/vty/pull/64
3025.2.5
303 - lens and random version constraint bump.
304 - Thanks RyanGlScott!
305 - https://github.com/coreyoconnor/vty/pull/62
3075.2.4
308 - removed -fpic from cc-options. No longer required.
309 - https://github.com/coreyoconnor/vty/issues/61
310 - https://ghc.haskell.org/trac/ghc/ticket/9657
311 - Thanks Fuuzetsu!
3135.2.3
314 - evaluate/compile the input parsing table once instead of each
315 keystroke.
316 - https://github.com/coreyoconnor/vty/pull/59
317 - Thanks ethercrow!
3195.2.2
320 - When looking at input for an event, don't look too deep.
321 - https://github.com/coreyoconnor/vty/pull/57
322 - Thanks ethercrow!
3245.2.1
325 - Bump upper version bound for lens to 4.5. Thanks markus1189!
3275.2.0
328 - Config structure now specifies file descriptor to use. The default
329 is stdInput and stdOutput file descriptors. Previously Vty used
330 stdInput for input and the follow code for output:
331 - hDuplicate stdout >>= handleToFd >>= (`hSetBuffering`
332 NoBuffering)
333 - the difference was required by Vty.Inline. Now, Vty.Inline uses
334 the Config structure options to acheive the same effect.
335 - removed: derivedVtime, derivedVmin, inputForCurrentTerminal,
336 inputForNameAndIO, outputForCurrentTerminal, outputForNameAndIO
337 - added: inputForConfig, outputForConfig
338 - updates to vty-rogue from jtdaugherty. Thanks!
339 - the oldest version of GHC tested to support vty is 7.6.2.
340 - the oldest version of GHC that vty compiles under is 7.4.2
3425.1.4
343 - merged https://github.com/coreyoconnor/vty/pull/51 thanks trofi!
3455.1.1
346 - merged https://github.com/coreyoconnor/vty/pull/48 thanks sjmielke!
347 - jtdaugherty resolved a number of compiler warnings. Thanks!
3495.1.0
350 - vmin and vtime can be specified however the application requires.
351 See Graphics.Vty.Config.
352 - fixed the processing of input when vmin is set > 1.
3545.0.0
355 - The naming convention now matches:
356 - http://www.haskell.org/haskellwiki/Programming_guidelines#Naming_Conventions
357 - all projects using vty for input must be compiled with -threaded.
358 Please notify vty author if this is not acceptable.
359 - mkVtyEscDelay has been removed. Use "mkVty def". Which initialized
360 vty with the default configuration.
361 - input handling changes
362 - KASCII is now KChar
363 - KPN5 is now KCenter
364 - tests exist.
365 - Applications can add to the input tables by setting inputMap of
366 the Config. See Graphics.Vty.Config
367 - Users can define input table extensions that will apply to all vty
368 applications. See Graphics.Vty.Config
369 - terminal timing is now handled by selecting an appropriate VTIME.
370 Previously this was implemented within Vty itself. This reduced
371 complexity in vty but provides a different meta key behavior and
372 implies a requirement on -threaded.
373 - The time vty will wait to verify an ESC byte means a single ESC
374 key is the singleEscPeriod of the Input Config structure.
375 - removed the typeclass based terminal and display context interface
376 in favor of a data structure of properties interface.
377 - renamed the Terminal interface to Output
378 - The default picture for an image now uses the "clear" background.
379 This background fills background spans with spaces or just ends the
380 line.
381 - Previously the background defaulted to the space character. This
382 causes issues copying text from a text editor. The text would end
383 up with extra spaces at the end of the line.
384 - Layer support
385 - Each layer is an image.
386 - The layers for a picture are a list of images.
387 - The first image is the top-most layer. The images are ordered from
388 top to bottom.
389 - The transparent areas for a layer are the backgroundFill areas.
390 backgroundFill is added to pad images when images of different
391 sizes are joined.
392 - If the background is clear there is no background layer.
393 - If there is a background character then the bottom layer is the
394 background layer.
395 - emptyPicture is a Picture with no layers and no cursor
396 - addToTop and addToBottom add a layer to the top and bottom of the
397 given Picture.
398 - compatibility improvements:
399 - terminfo based terminals with no cursor support are silently
400 accepted. The cursor visibility changes in the Picture will have
401 no effect.
402 - alternate (setf/setb) color maps supported. Though colors beyond
403 the first 8 are just a guess.
404 - added "rgbColor" for easy support of RGB specified colors.
405 - Both applications and users can add to the mapping used to
406 translate from input bytes to events.
407 - Additional information about input and output process can be
408 appended to a debug log
409 - Set environment variable VTY_DEBUG_LOG to path of debug log
410 - Or use "debugLog <path>" config directive
411 - Or set 'debugLog' property of the Config provided to mkVty.
412 - examples moved to vty-examples package. See test directory for cabal
413 file.
414 - vty-interactive-terminal-test
415 - interactive test. Useful for building a bug report for vty's
416 author.
417 - test/interactive_terminal_test.hs
418 - vty-event-echo
419 - view a input event log for vty. Example of interacting with
420 user.
421 - test/EventEcho.hs
422 - vty-rogue
423 - The start of a rogue-like game. Example of layers and image
424 build operations.
425 - test/Rogue.hs
426 - vty-benchmark
427 - benchmarks vty. A series of tests that push random pictures to
428 the terminal. The random pictures are generated using
429 QuickCheck. The same generators used in the automated tests.
430 - test/benchmark.hs
4324.7.0.0
433 - API changes:
434 - Added Graphics.Vty.Image.crop: Ensure an image is no larger
435 than the specified size.
436 - Added Graphics.Vty.Image.pad: Ensure an image is no smaller
437 than the specified size.
438 - Added Graphics.Vty.Image.translate: Offset an image.
439 - Thanks Ben Boeckel <MathStuf@gmail.com> for these features.
4414.3.0.0
4434.2.1.0
444 - API changes:
445 - Attr record accessor fore_color changed to attr_fore_color
446 - Attr record accessor back_color changed to attr_back_color
447 - Attr record accessor style changed to attr_style
448 - Added an "inline" display attribute changing DSL:
449 - put_attr_change applies a display attribute change
450 immediately to a terminal
451 - For instance, can be used to change the display attrbiutes
452 of text output via putStrLn and putStr. EX:
453 "put_attr_change $ back_color red" will set the background
454 color to red.
455 - Changes do not apply to a Picture output via output_picture.
456 - See Graphics.Vty.Inline
457 - Moved all IO actions into any monad an instance of MonadIO
4594.0.0.1
460 - binding for mk_wcswidth was incorrect. Most platforms just
461 magically worked due to coincidence.
4634.0.0
464 - API changes:
465 - "getSize" has been removed. Use "terminal vty >>= display_bounds"
466 where "vty" is an instance of the Vty data structure.
467 - added a "terminal" field to the Vty data structure. Accesses the
468 TerminalHandle associated with the Vty instance.
469 - Graphics.Vty.Types has undergone a number of changes. Summary:
470 - Partitioned into Graphics.Vty.Attributes for display attributes.
471 Graphics.Vty.Image for image combinators. Graphics.Vty.Picture
472 for final picture construction.
473 - Graphics.Vty.Attributes:
474 - "setFG" and "setBG" are now "with_fore_color" and
475 "with_back_color"
476 - All other "set.." equations similarly replaced.
477 - "attr" is now "def_attr", short for "default display attributes"
478 Also added a "current_attr" for "currently applied display
479 attributes"
480 - Graphics.Vty.Image:
481 - "horzcat" is now "horiz_cat"
482 - "vertcat" is now "vert_cat"
483 - "renderBS" is now "utf8_bytestring"
484 - "renderChar" is now "char"
485 - "renderFill" is now "char_fill"
486 - added a "utf8_string" and "string" (AKA "iso_10464_string") for
487 UTF-8 encoded Strings and ISO-10464 encoded Strings. String
488 literals in GHC have an ISO-10464 runtime representation.
489 - Graphics.Vty.Picture:
490 - exports Graphics.Vty.Image
491 - "pic" is now "pic_for_image"
492 - added API for setting background fill pattern.
493 - Completely rewritten output backend.
494 - Efficient, scanline style output span generator. Has not been
495 fully optimized, but good enough.
496 - The details required to display the desired picture on a
497 terminal are well encapsulated.
498 - Terminfo based display terminal implementation. With specialized
499 derivitives for xterm, Terminal.app, and iTerm.app.
500 - Attempts to robustly handle even terminals that don't
501 support all display attributes.
502 - I've tested the following terminals with success: iTerm.app,
503 Terminal.app, xterm, rxvt, mlterm, Eterm, gnome-terminal,
504 konsole, screen, linux vty. Hopefully you will be as
505 successfull.
506 - Improved unicode support. Double wide characters will display as
507 expected.
508 - 256 color support. See Graphics.Vty.Attributes.Color240. The actual
509 output color is adjusted according to the number of colors the
510 terminal supports.
511 - The Graphics.Vty.Image combinators no longer require matching
512 dimensions to arguments. Unspecified areas are filled in with a
513 user-customizable background pattern. See Graphics.Vty.Picture.
514 - output images are always cropped to display size.
515 - Significant code coverage by QuickCheck tests. An interactive test
516 for those final properties that couldn't be automatically verified.
518Issues resolved:
519 - "gnome terminal displays non-basic attributes as strikethrough"
520 - http://trac.haskell.org/vty/ticket/14
521 - "Multi-byte characters are not displayed correctly on update"
522 - http://trac.haskell.org/vty/ticket/10
523 - "Redraw does not handle rendering a line that extends beyond screen
524 width characters"
525 - http://trac.haskell.org/vty/ticket/13
526 - "The <|> and <-> combinators should be more forgiving of mismatched
527 dimensions"
528 - http://trac.haskell.org/vty/ticket/9
529 - "256-color support"
530 - http://trac.haskell.org/vty/ticket/19