ghc-brick/ghc-brick.changes

585 lines
21 KiB
Plaintext
Raw Normal View History

-------------------------------------------------------------------
Sun Jan 22 00:28:19 UTC 2023 - Peter Simons <psimons@suse.com>
- Update brick to version 1.6.
1.6
---
Package changes:
* Support `mtl` 2.3 (thanks Daniel Firth)
API changes:
* `Brick.Widgets.Table` got a new `alignColumns` function that can be
used to do column layout of a list of widgets using `ColumnAlignment`
values from the table API.
* `Brick.Widgets.Table` got a new low-level table-rendering API for use
in applications that want to use the table layout machinery without
using `Table` itself. This includes:
* `tableCellLayout` - does table cell layout using table configuration
settings,
* `addBorders` - adds row, column, and surrounding borders using table
border-drawing settings, and
* `RenderedTableCells` and `BorderConfiguration` - the low-level types
used for the new functions.
Other changes:
* Added a new `EditorLineNumbersDemo` demo program.
-------------------------------------------------------------------
Thu Nov 24 18:20:39 UTC 2022 - Peter Simons <psimons@suse.com>
- Update brick to version 1.5.
Upstream has edited the change log file since the last release in
a non-trivial way, i.e. they did more than just add a new entry
at the top. You can review the file at:
http://hackage.haskell.org/package/brick-1.5/src/CHANGELOG.md
-------------------------------------------------------------------
Fri Sep 30 02:57:19 UTC 2022 - Peter Simons <psimons@suse.com>
- Update brick to version 1.3.
1.3
---
Package changes:
* Removed dependency on `dlist`.
Performance improvements:
* Improved the performance of `vBox` and `hBox` (thanks Fraser Tweedale)
1.2
---
Package changes:
* Supports base 4.17 (GHC 9.4).
Bug fixes:
* `newFileBrowser` now normalizes its initial path (#387).
-------------------------------------------------------------------
Fri Aug 19 02:05:32 UTC 2022 - Peter Simons <psimons@suse.com>
- Update brick to version 1.1.
Upstream has edited the change log file since the last release in
a non-trivial way, i.e. they did more than just add a new entry
at the top. You can review the file at:
http://hackage.haskell.org/package/brick-1.1/src/CHANGELOG.md
-------------------------------------------------------------------
Mon Aug 8 22:37:09 UTC 2022 - Peter Simons <psimons@suse.com>
- Update brick to version 1.0.
1.0
---
Version 1.0 of `brick` comes with some improvements that will require
you to update your programs. This section details the list of API
changes in 1.0 that are likely to introduce breakage and how to deal
with each one. You can also consult the demonstration
programs to see orking examples of the new API. For those
interested in a bit of discussion on the changes, see [this
ticket](https://github.com/jtdaugherty/brick/issues/379).
* The event-handling monad `EventM` was improved and changed in some
substantial ways, all aimed at making `EventM` code cleaner, more
composable, and more amenable to lens updates to the application
state.
* The type has changed from `EventM n a` to `EventM n s a` and is now
an `mtl`-compatible state monad over `s`. Some consequences and
related changes are:
* Event handlers no longer take and return an explicit state value;
an event handler that formerly had the type `handler :: s ->
BrickEvent n e -> EventM n (Next s)` now has type `handler ::
BrickEvent n e -> EventM n s ()`. This also affected all of
Brick's built-in event handler functions for `List`, `Editor`,
etc.
* The `appHandleEvent` and `appStartEvent` fields of `App` changed
types to reflect the new structure of `EventM`. `appStartEvent`
will just be `return ()` rather than `return` for most
applications.
* `EventM` can be used with the `MonadState` API from `mtl` as well
as with the very nice lens combinators in `microlens-mtl`.
* The `Next` type was removed.
* State-specific event handlers like `handleListEvent` and
`handleEditorEvent` are now statically typed to be scoped to
just the states they manage, so `zoom` from `microlens-mtl` must
be used to invoke them. `Brick.Types` re-exports `zoom` for
convenience. `handleEventLensed` was removed from the API in lieu
of the new `zoom` behavior. Code that previously handled events
with `handleEventLensed s someLens someHandler e` is now just
written `zoom someLens $ someHandler e`.
* If an `EventM` block needs to operate on some state `s` that is
not accessible via a lens into the application state, the `EventM`
block can be set up with `Brick.Types.nestEventM`.
* Since `Next` was removed, control flow is now as follows:
* Without any explicit specification, an `EventM` block always
continues execution of the `brick` event loop when it finishes.
`continue` was removed from the API. What was previously `continue
$ s & someLens .~ value` will become `someLens .= value`.
* `halt` is still used to indicate that the event loop should halt
after the calling handler is finished, but `halt` no longer takes
an explicit state value argument.
* `suspendAndResume` is now immediate; previously,
`suspendAndResume` indicated that the specified action should run
once the event handler finished. Now, the event handler is paused
while the specified action is run. This allows `EventM` code to
continue to run after `suspendAndResume` is called and before
control is returned to `brick`.
* Brick now depends on `mtl` rather than `transformers`.
* The `IsString` instance for `AttrName` was removed.
* This change is motivated by the API wart that resulted from the
overloading of both `<>` and string literals (via
`OverloadedStrings`) that resulted in code such as `someAttrName
= "blah" <> "things"`. While that worked to create an `AttrName`
with two segments, it was far too easy to read as two strings
concatenated. The overloading hid what is really going on with the
segments of the attribute name. The way to write the above example
after this change is `someAttrName = attrName "blah" <> attrName
"things"`.
Other changes in this release:
* Brick now provides an optional API for user-defined keybindings
for applications! See the User Guide section "Customizable
Keybindings", the Haddock for `Brick.Keybindings.KeyDispatcher`,
and the new demo program `programs/CustomKeybindingDemo.hs` to get
started.
* `Brick.Widgets.List` got `listSelectedElementL`, a traversal for
accessing the currently selected element of a list. (Thanks Fraser
Tweedale)
-------------------------------------------------------------------
Sat Jul 9 16:24:17 UTC 2022 - Peter Simons <psimons@suse.com>
- Update brick to version 0.73.
0.73
----
API changes:
* Added `Brick.Widgets.Edit.getCursorPosition` (thanks
@TristanCacqueray)
0.72
----
Package changes:
* Increased lower bound on `text-zipper` to `0.12`.
API changes:
* `handleEditorEvent` now takes a `BrickEvent` rather than just a Vty
`Event`.
* Brick editors now handle mouse clicks to change their cursor
positions.
-------------------------------------------------------------------
Tue Jul 5 15:21:33 UTC 2022 - Peter Simons <psimons@suse.com>
- Update brick to version 0.71.1.
0.71.1
------
Bug fixes:
* Fixed an issue where `tests/Render.hs` did not gracefully exit in the
presence of an unknown terminal.
-------------------------------------------------------------------
Mon Jul 4 16:28:56 UTC 2022 - Peter Simons <psimons@suse.com>
- Update brick to version 0.71.
0.71
----
Package changes:
* Increased `vty` lower bound to `5.36`.
API changes:
* Added `tests/Render.hs` to provide a simple test of
`Brick.Main.renderWidget` (thanks @valyagolev)
* Added `Brick.Main.renderWidget` to help in golden testing contexts
(thanks @valyagolev)
Other changes:
* Various `table` documentation improvements.
-------------------------------------------------------------------
Sun Jun 19 20:13:57 UTC 2022 - Peter Simons <psimons@suse.com>
- Update brick to version 0.70.1.
0.70.1
------
Build fixes:
* Added a missing import for GHC 8.2.2.
0.70
----
Enhancements:
* The table widget now behaves much better when some or all cells are
empty.
Bug fixes:
* BorderMaps got fixed to ensure that smart borders connect even in the
presence of empty widgets (#370). Thanks to Daniel Wagner for this
fix!
0.69.1
------
Bug fixes:
* `table` can now deal properly with empty cells that are in left- and
top-aligned settings. Previously, empty cells in those settings would
break table rendering. (#369)
-------------------------------------------------------------------
Mon May 23 20:30:38 UTC 2022 - Peter Simons <psimons@suse.com>
- Update brick to version 0.69.
0.69
----
New features:
* `Brick.Widgets.Core`: added `relativeTo` to support relative
positioning across layers. This allows elements in higher layers
to be positioned relative to elements in lower layers as long as
those elements have had their extents reported with `reportExtent` or
`clickable`.
-------------------------------------------------------------------
Fri Apr 1 05:03:26 UTC 2022 - Peter Simons <psimons@suse.com>
- Update brick to version 0.68.1.
0.68.1
------
Bug fixes:
* Brick's internal book-keeping got a bug fix that caused mouse-click
coordinates to be wrong for clickable regions that were translated
partially off of the left or top edges of a rendered region.
-------------------------------------------------------------------
Mon Mar 7 16:33:29 UTC 2022 - Peter Simons <psimons@suse.com>
- Update brick to version 0.68.
0.68
----
API changes:
* Removed the "markup" feature, which included `Data.Text.Markup`,
`Brick.Markup`, and `brick-markup-demo`. This feature never performed
well and was awkward to use. I considered it experimental from the
initial release of this library. Some recent incompatibilities with
Vty changes made me realize that it was time to finally get rid of
this. If this affects you, please let me know and I am happy to work
with you to figure out an alternative. Granted, anyone is welcome to
dig up the previous code and re-use it in their own projects!
-------------------------------------------------------------------
Mon Jan 31 17:17:26 UTC 2022 - Peter Simons <psimons@suse.com>
- Update brick to version 0.67.
Upstream has edited the change log file since the last release in
a non-trivial way, i.e. they did more than just add a new entry
at the top. You can review the file at:
http://hackage.haskell.org/package/brick-0.67/src/CHANGELOG.md
-------------------------------------------------------------------
Sat Nov 20 17:30:51 UTC 2021 - psimons@suse.com
- Update brick to version 0.65.
0.65
----
New features and API changes:
* Viewports got support for built-in scroll bar rendering. This
includes additions of types and functions to manage the feature
behavior. These changes enable viewports to automatically get
scroll bars drawn next to them (on any side) with customizable
attributes and drawings. As part of this change, a new demo program,
`ViewportScrollbarsDemo.hs`, was added to show off these new
features. Here are the new types and functions that got added (mostly
to `Brick.Widgets.Core`):
* `withVScrollBars` - enable display of vertical scroll bars
* `withHScrollBars` - enable display of horizontal scroll bars
* `withClickableVScrollBars` - enable mouse click reporting on
vertical scroll bar elements
* `withClickableHScrollBars` - enable mouse click reporting on
horizontal scroll bar elements
* `ClickableScrollbarElement` - the type of elements of a scroll bar
that can be clicked on and provided to the application
* `withVScrollBarHandles` - enable vertical scroll bar handle drawing
* `withHScrollBarHandles` - enable horizontal scroll bar handle
drawing
* `withVScrollBarRenderer` - customize the renderer used for vertical
scroll bars
* `withHScrollBarRenderer` - customize the renderer used for
horizontal scroll bars
* `ScrollbarRenderer(..)` - the type of scroll bar renderer
implementations
* `verticalScrollbarRenderer` - the default renderer for vertical
scrollbars, customizable with `withVScrollBarRenderer`
* `horizontalScrollbarRenderer` - the default renderer for horizontal
scrollbars, customizable with `withHScrollBarRenderer`
* `scrollbarAttr` - the base attribute of scroll bars
* `scrollbarTroughAttr` - the attribute of scroll bar troughs
* `scrollbarHandleAttr` - the attribute of scroll bar handles
Package changes:
* Raised `base` bounds to allow building with GHC 9.2.1 (thanks Mario
Lang)
* Stopped supporting GHC 7.10.
-------------------------------------------------------------------
Mon Nov 1 08:22:10 UTC 2021 - psimons@suse.com
- Update brick to version 0.64.2.
0.64.2
------
Bug fixes:
* `Brick.Themes.saveTheme` now correctly saves background colors (#338)
* `Brick.Widgets.List.listMoveToEnd` now uses the correct destination
index (#337)
-------------------------------------------------------------------
Mon Sep 20 07:11:38 UTC 2021 - psimons@suse.com
- Update brick to version 0.64.1.
Upstream has edited the change log file since the last release in
a non-trivial way, i.e. they did more than just add a new entry
at the top. You can review the file at:
http://hackage.haskell.org/package/brick-0.64.1/src/CHANGELOG.md
-------------------------------------------------------------------
Wed Aug 25 10:24:53 UTC 2021 - psimons@suse.com
- Update brick to version 0.64.
Upstream has edited the change log file since the last release in
a non-trivial way, i.e. they did more than just add a new entry
at the top. You can review the file at:
http://hackage.haskell.org/package/brick-0.64/src/CHANGELOG.md
-------------------------------------------------------------------
Fri Apr 30 08:28:16 UTC 2021 - psimons@suse.com
- Update brick to version 0.62.
0.62
----
API changes:
* `Brick.Widgets.Core` got new functions
`crop{Left,Right,Bottom,Top}To`. Unlike the `crop...By` functions,
which crop on the specified side by a particular amount, these
`crop...To` functions crop on the specified side and take a desired
overall width of the final result and use that to determine how much
to crop. A widget `x` of width `w` could thus be cropped equivalently
with `cropLeftBy a x` and `cropLeftTo (w - a) x`.
Other changes:
* Added `programs/CroppingDemo.hs` to demonstrate the new (and
preexisting) cropping functions.
-------------------------------------------------------------------
Fri Apr 9 08:54:26 UTC 2021 - psimons@suse.com
- Update brick to version 0.61.
0.61
----
API changes:
* Brick.Forms got `editShowableFieldWithValidate`, a generalization
of `editShowableField` that allows the caller to specify an
additional validation function (thanks Ben Selfridge)
-------------------------------------------------------------------
Tue Apr 6 08:27:31 UTC 2021 - psimons@suse.com
- Update brick to version 0.60.2 revision 1.
Upstream has revised the Cabal build instructions on Hackage.
-------------------------------------------------------------------
Mon Feb 8 05:05:28 UTC 2021 - psimons@suse.com
- Update brick to version 0.60.2.
0.60.2
------
Bug fixes:
* Widgets reported as `clickable` are now reported as clickable even
when their renderings are cached with `cached` (#307; thanks Hari
Menon)
-------------------------------------------------------------------
Wed Feb 3 20:26:11 UTC 2021 - psimons@suse.com
- Update brick to version 0.60.1.
0.60.1
------
Bug fixes:
* `table []` no longer raises `TEUnequalRowSizes`.
0.60
----
New features:
* Added `Brick.Widgets.Table` to support drawing basic tables. See
`programs/TableDemo.hs` for a demonstration (`cabal new-run -f demos
brick-table-demo`).
-------------------------------------------------------------------
Fri Jan 29 10:26:08 UTC 2021 - psimons@suse.com
- Update brick to version 0.59.
0.59
----
API changes:
* `Brick.Widgets.List` got `listMoveToBeginning` and `listMoveToEnd`
functions
* `Extent`: removed the unused `extentOffset` field
Bug fixes:
* Fixed a crash in the border rewriting code that attempted to rewrite
empty images (#305) (thanks @dmwit)
-------------------------------------------------------------------
Tue Dec 29 21:16:36 UTC 2020 - psimons@suse.com
- Update brick to version 0.58.1.
0.58.1
------
Bug fixes:
* Removed a defunct failing test from the List test suite
-------------------------------------------------------------------
Tue Dec 22 12:57:43 UTC 2020 - psimons@suse.com
- Update brick to version 0.58.
0.58
----
Package changes:
* Updated dependency constraints to build on GHC 9.0.1 (thanks Ondřej
Súkup)
API changes:
* The FileBrowser module now exports individual functions for
each of the events that it handles. This allows end users to
trigger the behaviors directly rather than relying on the built-in
`handleFileBrowserEvent` function. The documentation has been updated
to indicate which functions are triggered by each key event. (Thanks
David B. Lamkins)
Other changes:
* The `List` module's `listFindBy` function now attempts to find a
match anywhere in the list rather than just somewhere between the
cursor and the end of the list.
* The `FileBrowser` now positions a cursor at the beginning of the
selected entry when the file browser is focused. (thanks Mario Lang)
* The user guide's viewport visibility example got an important
syntactic fix. (thanks Mario Lang)
-------------------------------------------------------------------
Thu Dec 17 12:20:00 UTC 2020 - Ondřej Súkup <mimi.vx@gmail.com>
- disable %{ix86} build
-------------------------------------------------------------------
Sun Nov 15 22:16:04 UTC 2020 - psimons@suse.com
- Update brick to version 0.57.1 revision 1.
Upstream has revised the Cabal build instructions on Hackage.
-------------------------------------------------------------------
Sun Nov 15 12:26:52 UTC 2020 - psimons@suse.com
- Update brick to version 0.57.1.
0.57.1
------
Bug fixes:
* Fixed a small space leak in the main rendering loop (#260)
* Get `TailDemo` building on more versions of GHC
-------------------------------------------------------------------
Tue Oct 6 08:56:57 UTC 2020 - psimons@suse.com
- Update brick to version 0.57.
0.57
----
Package changes:
* Raised lower bound on `vty` to 5.31 to get the new `strikethrough`
style.
New features:
* Added support for the `strikethrough` style in Brick theme
customization files.
-------------------------------------------------------------------
Sun Sep 27 02:01:03 UTC 2020 - psimons@suse.com
- Update brick to version 0.56.
0.56
----
Package changes:
* Increased upper bound for `base` to support GHC 8.10.2 (thanks Ryan
Scott)
API changes:
* Added `Brick.Forms.updateFormState` to update the state contained
within (and managed by) a Form. This function takes care of the
details of updating the form fields themselves to be consistent with
the change in underlying state.
* Added the overall window width (`windowWidth`) and height
(`windowHeight`) to `Context`, the rendering context type (thanks Tom
McLaughlin)
Other changes:
* Added `brick-tail-demo`, a demonstration program for writing a
`tail`-style output-following interface.
* Updated `Brick.Widgets.ProgressBar` so that it handles near-endpoint
cases more naturally (fixes #281)
-------------------------------------------------------------------
Mon Aug 31 09:34:36 UTC 2020 - psimons@suse.com
- Update brick to version 0.55 revision 1.
Upstream has revised the Cabal build instructions on Hackage.
-------------------------------------------------------------------
Tue Aug 18 10:44:11 UTC 2020 - Peter Simons <psimons@suse.com>
- Replace %setup -q with the more modern %autosetup macro.
-------------------------------------------------------------------
Tue Aug 18 09:11:20 UTC 2020 - Peter Simons <psimons@suse.com>
- Update Cabal file to accept latest base version.
-------------------------------------------------------------------
Fri Jul 10 02:00:27 UTC 2020 - psimons@suse.com
- Update brick to version 0.55.
0.55
----
Package changes:
* Increased lower bound on `vty` dependency to 5.29.
Bug fixes:
* `customMain` now restores the initial terminal input state on
shutdown. This means that changes to the input state flags in the last
`suspendAndResume` before program exit are no longer propagated to the
end user's terminal environment (which could lead to broken or garbled
terminal I/O).
-------------------------------------------------------------------
Tue Jun 9 09:26:18 UTC 2020 - psimons@suse.com
- Add brick at version 0.54.