packages feed

brick 0.71 → 0.71.1

raw patch · 4 files changed

+46/−38 lines, 4 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Brick.Widgets.FileBrowser: fileBrowserEntriesG :: forall n_a1q9L. SimpleGetter (FileBrowser n_a1q9L) (List n_a1q9L FileInfo)
+ Brick.Widgets.FileBrowser: fileBrowserEntriesG :: forall n_a1q8z. SimpleGetter (FileBrowser n_a1q8z) (List n_a1q8z FileInfo)
- Brick.Widgets.FileBrowser: fileBrowserEntryFilterG :: forall n_a1q9L. SimpleGetter (FileBrowser n_a1q9L) (Maybe (FileInfo -> Bool))
+ Brick.Widgets.FileBrowser: fileBrowserEntryFilterG :: forall n_a1q8z. SimpleGetter (FileBrowser n_a1q8z) (Maybe (FileInfo -> Bool))
- Brick.Widgets.FileBrowser: fileBrowserExceptionG :: forall n_a1q9L. SimpleGetter (FileBrowser n_a1q9L) (Maybe IOException)
+ Brick.Widgets.FileBrowser: fileBrowserExceptionG :: forall n_a1q8z. SimpleGetter (FileBrowser n_a1q8z) (Maybe IOException)
- Brick.Widgets.FileBrowser: fileBrowserLatestResultsG :: forall n_a1q9L. SimpleGetter (FileBrowser n_a1q9L) [FileInfo]
+ Brick.Widgets.FileBrowser: fileBrowserLatestResultsG :: forall n_a1q8z. SimpleGetter (FileBrowser n_a1q8z) [FileInfo]
- Brick.Widgets.FileBrowser: fileBrowserNameG :: forall n_a1q9L. SimpleGetter (FileBrowser n_a1q9L) n_a1q9L
+ Brick.Widgets.FileBrowser: fileBrowserNameG :: forall n_a1q8z. SimpleGetter (FileBrowser n_a1q8z) n_a1q8z
- Brick.Widgets.FileBrowser: fileBrowserSearchStringG :: forall n_a1q9L. SimpleGetter (FileBrowser n_a1q9L) (Maybe Text)
+ Brick.Widgets.FileBrowser: fileBrowserSearchStringG :: forall n_a1q8z. SimpleGetter (FileBrowser n_a1q8z) (Maybe Text)
- Brick.Widgets.FileBrowser: fileBrowserSelectableG :: forall n_a1q9L. SimpleGetter (FileBrowser n_a1q9L) (FileInfo -> Bool)
+ Brick.Widgets.FileBrowser: fileBrowserSelectableG :: forall n_a1q8z. SimpleGetter (FileBrowser n_a1q8z) (FileInfo -> Bool)
- Brick.Widgets.FileBrowser: fileBrowserSelectableL :: forall n_a1q9L. Lens' (FileBrowser n_a1q9L) (FileInfo -> Bool)
+ Brick.Widgets.FileBrowser: fileBrowserSelectableL :: forall n_a1q8z. Lens' (FileBrowser n_a1q8z) (FileInfo -> Bool)
- Brick.Widgets.FileBrowser: fileBrowserSelectedFilesG :: forall n_a1q9L. SimpleGetter (FileBrowser n_a1q9L) (Set String)
+ Brick.Widgets.FileBrowser: fileBrowserSelectedFilesG :: forall n_a1q8z. SimpleGetter (FileBrowser n_a1q8z) (Set String)
- Brick.Widgets.FileBrowser: fileBrowserWorkingDirectoryG :: forall n_a1q9L. SimpleGetter (FileBrowser n_a1q9L) FilePath
+ Brick.Widgets.FileBrowser: fileBrowserWorkingDirectoryG :: forall n_a1q8z. SimpleGetter (FileBrowser n_a1q8z) FilePath
- Brick.Widgets.List: listElementsL :: forall n_a1kXT t_a1kXU e_a1kXV t_a1lbZ e_a1lc0. Lens (GenericList n_a1kXT t_a1kXU e_a1kXV) (GenericList n_a1kXT t_a1lbZ e_a1lc0) (t_a1kXU e_a1kXV) (t_a1lbZ e_a1lc0)
+ Brick.Widgets.List: listElementsL :: forall n_a1kWH t_a1kWI e_a1kWJ t_a1laN e_a1laO. Lens (GenericList n_a1kWH t_a1kWI e_a1kWJ) (GenericList n_a1kWH t_a1laN e_a1laO) (t_a1kWI e_a1kWJ) (t_a1laN e_a1laO)
- Brick.Widgets.List: listItemHeightL :: forall n_a1kXT t_a1kXU e_a1kXV. Lens' (GenericList n_a1kXT t_a1kXU e_a1kXV) Int
+ Brick.Widgets.List: listItemHeightL :: forall n_a1kWH t_a1kWI e_a1kWJ. Lens' (GenericList n_a1kWH t_a1kWI e_a1kWJ) Int
- Brick.Widgets.List: listNameL :: forall n_a1kXT t_a1kXU e_a1kXV n_a1lc1. Lens (GenericList n_a1kXT t_a1kXU e_a1kXV) (GenericList n_a1lc1 t_a1kXU e_a1kXV) n_a1kXT n_a1lc1
+ Brick.Widgets.List: listNameL :: forall n_a1kWH t_a1kWI e_a1kWJ n_a1laP. Lens (GenericList n_a1kWH t_a1kWI e_a1kWJ) (GenericList n_a1laP t_a1kWI e_a1kWJ) n_a1kWH n_a1laP
- Brick.Widgets.List: listSelectedL :: forall n_a1kXT t_a1kXU e_a1kXV. Lens' (GenericList n_a1kXT t_a1kXU e_a1kXV) (Maybe Int)
+ Brick.Widgets.List: listSelectedL :: forall n_a1kWH t_a1kWI e_a1kWJ. Lens' (GenericList n_a1kWH t_a1kWI e_a1kWJ) (Maybe Int)

Files

CHANGELOG.md view
@@ -2,6 +2,13 @@ Brick changelog --------------- +0.71.1+------++Bug fixes:+ * Fixed an issue where `tests/Render.hs` did not gracefully exit in the+   presence of an unknown terminal.+ 0.71 ---- 
brick.cabal view
@@ -1,5 +1,5 @@ name:                brick-version:             0.71+version:             0.71.1 synopsis:            A declarative terminal user interface library description:   Write terminal user interfaces (TUIs) painlessly with 'brick'! You
src/Brick/Main.hs view
@@ -59,6 +59,7 @@ import Control.Monad.Trans.Reader import Control.Concurrent (forkIO, killThread) import qualified Data.Foldable as F+import Data.List (find) import Data.Maybe (listToMaybe) import qualified Data.Map as M import qualified Data.Set as S@@ -309,9 +310,9 @@        -> Bool        -> IO (Next s, RenderState n, [Extent n]) runVty vty readEvent app appState rs prevExtents draw = do-    (firstRS, exts) <- case draw of-        True -> renderApp vty app appState rs-        False -> return (rs, prevExtents)+    (firstRS, exts) <- if draw+                       then renderApp vty app appState rs+                       else return (rs, prevExtents)      e <- readEvent @@ -330,23 +331,23 @@                     -- If the clicked extent was registered as                     -- clickable, send a click event. Otherwise, just                     -- send the raw mouse event-                    case n `elem` firstRS^.clickableNamesL of-                        True -> do-                            let localCoords = Location (lc, lr)-                                lc = c - ec-                                lr = r - er+                    if n `elem` firstRS^.clickableNamesL+                    then do+                        let localCoords = Location (lc, lr)+                            lc = c - ec+                            lr = r - er -                                -- If the clicked extent was a viewport,-                                -- adjust the local coordinates by-                                -- adding the viewport upper-left corner-                                -- offset.-                                newCoords = case M.lookup n (viewportMap firstRS) of-                                  Nothing -> localCoords-                                  Just vp -> localCoords & _1 %~ (+ (vp^.vpLeft))-                                                         & _2 %~ (+ (vp^.vpTop))+                            -- If the clicked extent was a viewport,+                            -- adjust the local coordinates by+                            -- adding the viewport upper-left corner+                            -- offset.+                            newCoords = case M.lookup n (viewportMap firstRS) of+                              Nothing -> localCoords+                              Just vp -> localCoords & _1 %~ (+ (vp^.vpLeft))+                                                     & _2 %~ (+ (vp^.vpTop)) -                            return (MouseDown n button mods newCoords, firstRS, exts)-                        False -> return (e, firstRS, exts)+                        return (MouseDown n button mods newCoords, firstRS, exts)+                    else return (e, firstRS, exts)                 _ -> return (e, firstRS, exts)         VtyEvent (EvMouseUp c r button) -> do             let matching = findClickedExtents_ (c, r) exts@@ -355,21 +356,21 @@                     -- If the clicked extent was registered as                     -- clickable, send a click event. Otherwise, just                     -- send the raw mouse event-                    case n `elem` firstRS^.clickableNamesL of-                        True -> do-                            let localCoords = Location (lc, lr)-                                lc = c - ec-                                lr = r - er-                                -- If the clicked extent was a viewport,-                                -- adjust the local coordinates by-                                -- adding the viewport upper-left corner-                                -- offset.-                                newCoords = case M.lookup n (viewportMap firstRS) of-                                  Nothing -> localCoords-                                  Just vp -> localCoords & _1 %~ (+ (vp^.vpLeft))-                                                         & _2 %~ (+ (vp^.vpTop))-                            return (MouseUp n button newCoords, firstRS, exts)-                        False -> return (e, firstRS, exts)+                    if n `elem` firstRS^.clickableNamesL+                    then do+                        let localCoords = Location (lc, lr)+                            lc = c - ec+                            lr = r - er+                            -- If the clicked extent was a viewport,+                            -- adjust the local coordinates by+                            -- adding the viewport upper-left corner+                            -- offset.+                            newCoords = case M.lookup n (viewportMap firstRS) of+                              Nothing -> localCoords+                              Just vp -> localCoords & _1 %~ (+ (vp^.vpLeft))+                                                     & _2 %~ (+ (vp^.vpTop))+                        return (MouseUp n button newCoords, firstRS, exts)+                    else return (e, firstRS, exts)                 _ -> return (e, firstRS, exts)         _ -> return (e, firstRS, exts) @@ -422,7 +423,7 @@ -- | Given a resource name, get the most recent rendering extent for the -- name (if any). lookupExtent :: (Eq n) => n -> EventM n (Maybe (Extent n))-lookupExtent n = EventM $ asks (listToMaybe . filter f . latestExtents)+lookupExtent n = EventM $ asks (find f . latestExtents)     where         f (Extent n' _ _) = n == n' @@ -500,7 +501,7 @@ showCursorNamed :: (Eq n) => n -> [CursorLocation n] -> Maybe (CursorLocation n) showCursorNamed name locs =     let matches l = l^.cursorLocationNameL == Just name-    in listToMaybe $ filter matches locs+    in find matches locs  -- | A viewport scrolling handle for managing the scroll state of -- viewports.
tests/Render.hs view
@@ -12,7 +12,7 @@ #endif import qualified Graphics.Vty as V import Brick.Widgets.Border (hBorder)-import Control.Exception (try)+import Control.Exception (SomeException, try)  region :: V.DisplayRegion region = (30, 10)@@ -34,7 +34,7 @@  main :: IO Bool main = do-    result <- try (renderDisplay [myWidget]) :: IO (Either V.VtyConfigurationError ())+    result <- try (renderDisplay [myWidget]) :: IO (Either SomeException ())     case result of         Left _ -> do             putStrLn "Terminal is not available, skipping test"