brick 0.16 → 0.17
raw patch · 17 files changed
+78/−79 lines, 17 filesdep −data-defaultdep ~stmdep ~vtyPVP ok
version bump matches the API change (PVP)
Dependencies removed: data-default
Dependency ranges changed: stm, vty
API changes (from Hackage documentation)
- Brick.AttrMap: instance Data.Default.Class.Default Brick.AttrMap.AttrMap
- Brick.AttrMap: instance Data.Default.Class.Default Brick.AttrMap.AttrName
- Brick.Widgets.Border.Style: instance Data.Default.Class.Default Brick.Widgets.Border.Style.BorderStyle
- Data.Text.Markup: instance Data.Default.Class.Default a => Data.String.IsString (Data.Text.Markup.Markup a)
+ Brick.Types: emptyResult :: Result n
+ Brick.Widgets.Border.Style: defaultBorderStyle :: BorderStyle
+ Data.Text.Markup: instance GHC.Base.Monoid a => Data.String.IsString (Data.Text.Markup.Markup a)
- Brick.Types: cursorLocationL :: forall n_axEv. Lens' (CursorLocation n_axEv) Location
+ Brick.Types: cursorLocationL :: forall n_apZc. Lens' (CursorLocation n_apZc) Location
- Brick.Types: cursorLocationNameL :: forall n_axEv n_ayij. Lens (CursorLocation n_axEv) (CursorLocation n_ayij) (Maybe n_axEv) (Maybe n_ayij)
+ Brick.Types: cursorLocationNameL :: forall n_apZc n_aqsE. Lens (CursorLocation n_apZc) (CursorLocation n_aqsE) (Maybe n_apZc) (Maybe n_aqsE)
- Brick.Types: cursorsL :: forall n_axBq. Lens' (Result n_axBq) [CursorLocation n_axBq]
+ Brick.Types: cursorsL :: forall n_apY7. Lens' (Result n_apY7) [CursorLocation n_apY7]
- Brick.Types: extentsL :: forall n_axBq. Lens' (Result n_axBq) [Extent n_axBq]
+ Brick.Types: extentsL :: forall n_apY7. Lens' (Result n_apY7) [Extent n_apY7]
- Brick.Types: imageL :: forall n_axBq. Lens' (Result n_axBq) Image
+ Brick.Types: imageL :: forall n_apY7. Lens' (Result n_apY7) Image
- Brick.Types: visibilityRequestsL :: forall n_axBq. Lens' (Result n_axBq) [VisibilityRequest]
+ Brick.Types: visibilityRequestsL :: forall n_apY7. Lens' (Result n_apY7) [VisibilityRequest]
- Brick.Widgets.Dialog: dialogButtonsL :: forall a_a1iEx a_a1iF7. Lens (Dialog a_a1iEx) (Dialog a_a1iF7) [(String, a_a1iEx)] [(String, a_a1iF7)]
+ Brick.Widgets.Dialog: dialogButtonsL :: forall a_a13de a_a13dO. Lens (Dialog a_a13de) (Dialog a_a13dO) [(String, a_a13de)] [(String, a_a13dO)]
- Brick.Widgets.Dialog: dialogSelectedIndexL :: forall a_a1iEx. Lens' (Dialog a_a1iEx) (Maybe Int)
+ Brick.Widgets.Dialog: dialogSelectedIndexL :: forall a_a13de. Lens' (Dialog a_a13de) (Maybe Int)
- Brick.Widgets.Dialog: dialogTitleL :: forall a_a1iEx. Lens' (Dialog a_a1iEx) (Maybe String)
+ Brick.Widgets.Dialog: dialogTitleL :: forall a_a13de. Lens' (Dialog a_a13de) (Maybe String)
- Brick.Widgets.Dialog: dialogWidthL :: forall a_a1iEx. Lens' (Dialog a_a1iEx) Int
+ Brick.Widgets.Dialog: dialogWidthL :: forall a_a13de. Lens' (Dialog a_a13de) Int
- Brick.Widgets.Edit: editContentsL :: forall t_a1kG1 n_a1kG2. Lens' (Editor t_a1kG1 n_a1kG2) (TextZipper t_a1kG1)
+ Brick.Widgets.Edit: editContentsL :: forall t_a14WV n_a14WW. Lens' (Editor t_a14WV n_a14WW) (TextZipper t_a14WV)
- Brick.Widgets.Edit: editDrawContentsL :: forall t_a1kG1 n_a1kG2. Lens' (Editor t_a1kG1 n_a1kG2) ([t_a1kG1] -> Widget n_a1kG2)
+ Brick.Widgets.Edit: editDrawContentsL :: forall t_a14WV n_a14WW. Lens' (Editor t_a14WV n_a14WW) ([t_a14WV] -> Widget n_a14WW)
- Brick.Widgets.List: listElementsL :: forall n_a1nFA e_a1nFB e_a1nOS. Lens (List n_a1nFA e_a1nFB) (List n_a1nFA e_a1nOS) (Vector e_a1nFB) (Vector e_a1nOS)
+ Brick.Widgets.List: listElementsL :: forall n_a16Py e_a16Pz e_a16Zs. Lens (List n_a16Py e_a16Pz) (List n_a16Py e_a16Zs) (Vector e_a16Pz) (Vector e_a16Zs)
- Brick.Widgets.List: listItemHeightL :: forall n_a1nFA e_a1nFB. Lens' (List n_a1nFA e_a1nFB) Int
+ Brick.Widgets.List: listItemHeightL :: forall n_a16Py e_a16Pz. Lens' (List n_a16Py e_a16Pz) Int
- Brick.Widgets.List: listNameL :: forall n_a1nFA e_a1nFB n_a1nOT. Lens (List n_a1nFA e_a1nFB) (List n_a1nOT e_a1nFB) n_a1nFA n_a1nOT
+ Brick.Widgets.List: listNameL :: forall n_a16Py e_a16Pz n_a16Zt. Lens (List n_a16Py e_a16Pz) (List n_a16Zt e_a16Pz) n_a16Py n_a16Zt
- Brick.Widgets.List: listSelectedL :: forall n_a1nFA e_a1nFB. Lens' (List n_a1nFA e_a1nFB) (Maybe Int)
+ Brick.Widgets.List: listSelectedL :: forall n_a16Py e_a16Pz. Lens' (List n_a16Py e_a16Pz) (Maybe Int)
- Data.Text.Markup: fromText :: (Default a) => Text -> Markup a
+ Data.Text.Markup: fromText :: (Monoid a) => Text -> Markup a
Files
- CHANGELOG.md +15/−1
- brick.cabal +18/−34
- docs/guide.rst +3/−1
- programs/CustomEventDemo.hs +5/−3
- programs/LayerDemo.hs +4/−2
- programs/PaddingDemo.hs +3/−3
- programs/SuspendAndResumeDemo.hs +4/−2
- programs/ViewportScrollDemo.hs +4/−2
- src/Brick/AttrMap.hs +0/−7
- src/Brick/Main.hs +4/−3
- src/Brick/Markup.hs +1/−2
- src/Brick/Types.hs +1/−0
- src/Brick/Types/Internal.hs +3/−3
- src/Brick/Widgets/Border/Style.hs +3/−4
- src/Brick/Widgets/Core.hs +5/−6
- src/Brick/Widgets/Internal.hs +2/−2
- src/Data/Text/Markup.hs +3/−4
CHANGELOG.md view
@@ -2,6 +2,20 @@ Brick changelog --------------- +0.17+----++Package changes:+* Updated to depend on Vty 5.15.+* Updated to remove dependency on data-default.+* Discontinued support for GHC versions prior to 7.10.1.++API changes:+* Removed Data.Default instances for AttrName, AttrMap, Result, and+ BorderStyle (use Monoid instances instead where possible).+* Added defaultBorderStyle :: BorderStyle.+* Added emptyResult :: Result n.+ 0.16 ---- @@ -16,7 +30,7 @@ element (thanks @diegospd) Performance improvements:-* hBox and vBox now use more efficient DList data structure when+* hBox and vBox now use the more efficient DList data structure when rendering to improve performance for boxes with many elements (thanks Mitsutoshi Aoe)
brick.cabal view
@@ -1,5 +1,5 @@ name: brick-version: 0.16+version: 0.17 synopsis: A declarative terminal user interface library description: Write terminal applications painlessly with 'brick'! You write an@@ -79,9 +79,8 @@ Brick.Widgets.Internal build-depends: base <= 5,- vty >= 5.12,+ vty >= 5.15, transformers,- data-default, dlist, containers, microlens >= 0.3.0.0,@@ -105,7 +104,7 @@ main-is: CacheDemo.hs build-depends: base, brick,- vty >= 5.12,+ vty >= 5.15, text, microlens >= 0.3.0.0, microlens-th@@ -119,8 +118,7 @@ main-is: VisibilityDemo.hs build-depends: base, brick,- vty >= 5.12,- data-default,+ vty >= 5.15, text, microlens >= 0.3.0.0, microlens-th@@ -135,8 +133,7 @@ main-is: ViewportScrollDemo.hs build-depends: base, brick,- vty >= 5.12,- data-default,+ vty >= 5.15, text, microlens @@ -149,8 +146,7 @@ main-is: DialogDemo.hs build-depends: base <= 5, brick,- vty >= 5.12,- data-default,+ vty >= 5.15, text, microlens @@ -163,8 +159,7 @@ main-is: MouseDemo.hs build-depends: base <= 5, brick,- vty >= 5.12,- data-default,+ vty >= 5.15, text, microlens >= 0.3.0.0, microlens-th,@@ -179,8 +174,7 @@ main-is: LayerDemo.hs build-depends: base <= 5, brick,- vty >= 5.12,- data-default,+ vty >= 5.15, text, microlens >= 0.3.0.0, microlens-th@@ -194,8 +188,7 @@ main-is: SuspendAndResumeDemo.hs build-depends: base <= 5, brick,- vty >= 5.12,- data-default,+ vty >= 5.15, text, microlens >= 0.3.0.0, microlens-th@@ -209,8 +202,7 @@ main-is: PaddingDemo.hs build-depends: base <= 5, brick,- vty >= 5.12,- data-default,+ vty >= 5.15, text, microlens @@ -223,8 +215,7 @@ main-is: AttrDemo.hs build-depends: base <= 5, brick,- vty >= 5.12,- data-default,+ vty >= 5.15, text, microlens @@ -237,8 +228,7 @@ main-is: MarkupDemo.hs build-depends: base <= 5, brick,- vty >= 5.12,- data-default,+ vty >= 5.15, text, microlens @@ -251,8 +241,7 @@ main-is: ListDemo.hs build-depends: base <= 5, brick,- vty >= 5.12,- data-default,+ vty >= 5.15, text, microlens >= 0.3.0.0, vector@@ -266,8 +255,7 @@ main-is: CustomEventDemo.hs build-depends: base <= 5, brick,- vty >= 5.12,- data-default,+ vty >= 5.15, text, microlens >= 0.3.0.0, microlens-th@@ -281,8 +269,7 @@ main-is: HelloWorldDemo.hs build-depends: base <= 5, brick,- vty >= 5.12,- data-default,+ vty >= 5.15, text, microlens @@ -295,8 +282,7 @@ main-is: EditDemo.hs build-depends: base <= 5, brick,- vty >= 5.12,- data-default,+ vty >= 5.15, text, vector, microlens >= 0.3.0.0,@@ -312,8 +298,7 @@ main-is: BorderDemo.hs build-depends: base <= 5, brick,- vty >= 5.12,- data-default,+ vty >= 5.15, text, microlens @@ -327,7 +312,6 @@ main-is: ProgressBarDemo.hs build-depends: base <= 5, brick,- vty >= 5.12,- data-default,+ vty >= 5.15, text, microlens
docs/guide.rst view
@@ -343,7 +343,9 @@ main :: IO () main = do eventChan <- Brick.BChan.newBChan 10- finalState <- customMain (Graphics.Vty.mkVty Data.Default.def) (Just eventChan) app initialState+ finalState <- customMain+ (Graphics.Vty.mkVty Data.Default.defaultConfig)+ (Just eventChan) app initialState -- Use finalState and exit The ``customMain`` function lets us have control over how the ``vty``
programs/CustomEventDemo.hs view
@@ -6,7 +6,6 @@ import Lens.Micro.TH (makeLenses) import Control.Monad (void, forever) import Control.Concurrent (threadDelay, forkIO)-import Data.Default import Data.Monoid import qualified Graphics.Vty as V @@ -18,6 +17,9 @@ , continue , halt )+import Brick.AttrMap+ ( attrMap+ ) import Brick.Types ( Widget , Next@@ -66,7 +68,7 @@ , appChooseCursor = showFirstCursor , appHandleEvent = appEvent , appStartEvent = return- , appAttrMap = def+ , appAttrMap = const $ attrMap V.defAttr [] } main :: IO ()@@ -77,4 +79,4 @@ writeBChan chan Counter threadDelay 1000000 - void $ customMain (V.mkVty def) (Just chan) theApp initialState+ void $ customMain (V.mkVty V.defaultConfig) (Just chan) theApp initialState
programs/LayerDemo.hs view
@@ -5,7 +5,6 @@ import Lens.Micro ((^.), (&), (%~)) import Lens.Micro.TH (makeLenses) import Control.Monad (void)-import Data.Default import qualified Graphics.Vty as V import qualified Brick.Types as T@@ -17,6 +16,9 @@ ( translateBy , str )+import Brick.AttrMap+ ( attrMap+ ) data St = St { _topLayerLocation :: T.Location@@ -70,7 +72,7 @@ M.App { M.appDraw = drawUi , M.appStartEvent = return , M.appHandleEvent = appEvent- , M.appAttrMap = const def+ , M.appAttrMap = const $ attrMap V.defAttr [] , M.appChooseCursor = M.neverShowCursor }
programs/PaddingDemo.hs view
@@ -1,8 +1,6 @@ {-# LANGUAGE OverloadedStrings #-} module Main where -import Data.Default- import Brick.Main (App(..), neverShowCursor, resizeOrQuit, defaultMain) import Brick.Types ( Widget@@ -22,6 +20,8 @@ ) import Brick.Widgets.Border as B import Brick.Widgets.Center as C+import Brick.AttrMap (attrMap)+import qualified Graphics.Vty as V ui :: Widget () ui =@@ -50,7 +50,7 @@ App { appDraw = const [ui] , appHandleEvent = resizeOrQuit , appStartEvent = return- , appAttrMap = const def+ , appAttrMap = const $ attrMap V.defAttr [] , appChooseCursor = neverShowCursor }
programs/SuspendAndResumeDemo.hs view
@@ -6,13 +6,15 @@ import Lens.Micro.TH (makeLenses) import Control.Monad (void) import Data.Monoid-import Data.Default import qualified Graphics.Vty as V import Brick.Main ( App(..), neverShowCursor, defaultMain , suspendAndResume, halt, continue )+import Brick.AttrMap+ ( attrMap+ ) import Brick.Types ( Widget , EventM@@ -59,7 +61,7 @@ , appChooseCursor = neverShowCursor , appHandleEvent = appEvent , appStartEvent = return- , appAttrMap = const def+ , appAttrMap = const $ attrMap V.defAttr [] } main :: IO ()
programs/ViewportScrollDemo.hs view
@@ -7,7 +7,6 @@ import Control.Monad (void) import Data.Monoid ((<>))-import Data.Default import qualified Graphics.Vty as V import qualified Brick.Types as T@@ -18,6 +17,9 @@ ( Widget , ViewportType(Horizontal, Vertical, Both) )+import Brick.AttrMap+ ( attrMap+ ) import Brick.Widgets.Core ( hLimit , vLimit@@ -75,7 +77,7 @@ M.App { M.appDraw = drawUi , M.appStartEvent = return , M.appHandleEvent = appEvent- , M.appAttrMap = const def+ , M.appAttrMap = const $ attrMap V.defAttr [] , M.appChooseCursor = M.neverShowCursor }
src/Brick/AttrMap.hs view
@@ -49,7 +49,6 @@ import Data.Maybe (catMaybes) import Data.List (inits) import Data.String (IsString(..))-import Data.Default (Default(..)) import Graphics.Vty (Attr(..), MaybeDefault(..)) @@ -68,9 +67,6 @@ data AttrName = AttrName [String] deriving (Show, Eq, Ord) -instance Default AttrName where- def = mempty- instance Monoid AttrName where mempty = AttrName [] mappend (AttrName as) (AttrName bs) = AttrName $ as `mappend` bs@@ -82,9 +78,6 @@ data AttrMap = AttrMap Attr (M.Map AttrName Attr) | ForceAttr Attr deriving Show--instance Default AttrMap where- def = AttrMap def mempty -- | Create an attribute name from a string. attrName :: String -> AttrName
src/Brick/Main.hs view
@@ -51,7 +51,6 @@ import Control.Applicative ((<$>)) import Data.Monoid (mempty) #endif-import Data.Default import Data.Maybe (listToMaybe) import qualified Data.Map as M import qualified Data.Set as S@@ -66,7 +65,9 @@ , shutdown , nextEvent , mkVty+ , defaultConfig )+import Graphics.Vty.Attributes (defAttr) import Brick.BChan (BChan, newBChan, readBChan, readBChan2, writeBChan) import Brick.Types (Widget, EventM(..))@@ -119,7 +120,7 @@ -- ^ The initial application state. -> IO s defaultMain app st = do- customMain (mkVty def) Nothing app st+ customMain (mkVty defaultConfig) Nothing app st -- | A simple main entry point which takes a widget and renders it. This -- event loop terminates when the user presses any key, but terminal@@ -132,7 +133,7 @@ let app = App { appDraw = const [w] , appHandleEvent = resizeOrQuit , appStartEvent = return- , appAttrMap = def+ , appAttrMap = const $ attrMap defAttr [] , appChooseCursor = neverShowCursor } in defaultMain app ()
src/Brick/Markup.hs view
@@ -15,7 +15,6 @@ import Control.Monad (forM) import qualified Data.Text as T import Data.Text.Markup-import Data.Default (def) import Graphics.Vty (Attr, vertCat, horizCat, string) @@ -54,4 +53,4 @@ return $ string a $ T.unpack t return $ horizCat is lineImgs <- mapM mkLine markupLines- return $ def & imageL .~ vertCat lineImgs+ return $ emptyResult & imageL .~ vertCat lineImgs
src/Brick/Types.hs view
@@ -43,6 +43,7 @@ -- ** Rendering results , Result(..)+ , emptyResult , lookupAttrName , Extent(..)
src/Brick/Types/Internal.hs view
@@ -38,6 +38,7 @@ , cursorsL , extentsL , visibilityRequestsL+ , emptyResult ) where @@ -51,7 +52,6 @@ import qualified Data.Set as S import qualified Data.Map as M import Graphics.Vty (Vty, Event, Button, Modifier, DisplayRegion, Image, emptyImage)-import Data.Default (Default(..)) import Brick.Types.TH import Brick.AttrMap (AttrName, AttrMap)@@ -194,8 +194,8 @@ suffixLenses ''Result -instance Default (Result n) where- def = Result emptyImage [] [] []+emptyResult :: Result n+emptyResult = Result emptyImage [] [] [] -- | The type of events. data BrickEvent n e = VtyEvent Event
src/Brick/Widgets/Border/Style.hs view
@@ -17,11 +17,10 @@ , unicode , unicodeBold , unicodeRounded+ , defaultBorderStyle ) where -import Data.Default- -- | A border style for use in any widget that needs to render borders -- in a consistent style. data BorderStyle =@@ -50,8 +49,8 @@ } deriving (Show, Read, Eq) -instance Default BorderStyle where- def = unicode+defaultBorderStyle :: BorderStyle+defaultBorderStyle = unicode -- | Make a border style using the specified character everywhere. borderStyleFromChar :: Char -> BorderStyle
src/Brick/Widgets/Core.hs view
@@ -92,7 +92,6 @@ import Control.Monad.Trans.Class (lift) import qualified Data.Foldable as F import qualified Data.Text as T-import Data.Default import qualified Data.DList as DL import qualified Data.Map as M import qualified Data.Set as S@@ -207,13 +206,13 @@ fixEmpty l = l dropUnused l = takeColumns (availWidth c) <$> take (availHeight c) l case force theLines of- [] -> return def- [one] -> return $ def & imageL .~ (V.string (c^.attrL) one)+ [] -> return emptyResult+ [one] -> return $ emptyResult & imageL .~ (V.string (c^.attrL) one) multiple -> let maxLength = maximum $ V.safeWcswidth <$> multiple lineImgs = lineImg <$> multiple lineImg lStr = V.string (c^.attrL) (lStr ++ replicate (maxLength - V.safeWcswidth lStr) ' ')- in return $ def & imageL .~ (V.vertCat lineImgs)+ in return $ emptyResult & imageL .~ (V.vertCat lineImgs) -- | Build a widget from a one-line 'T.Text' value. Behaves the same as -- 'str'.@@ -308,7 +307,7 @@ fill ch = Widget Greedy Greedy $ do c <- getContext- return $ def & imageL .~ (V.charFill (c^.attrL) ch (c^.availWidthL) (c^.availHeightL))+ return $ emptyResult & imageL .~ (V.charFill (c^.attrL) ch (c^.availWidthL) (c^.availHeightL)) -- | Vertical box layout: put the specified widgets one above the other -- in the specified order (uppermost first). Defers growth policies to@@ -550,7 +549,7 @@ -- | Build a widget directly from a raw Vty image. raw :: V.Image -> Widget n-raw img = Widget Fixed Fixed $ return $ def & imageL .~ img+raw img = Widget Fixed Fixed $ return $ emptyResult & imageL .~ img -- | Translate the specified widget by the specified offset amount. -- Defers to the translated widget for growth policy.
src/Brick/Widgets/Internal.hs view
@@ -13,13 +13,13 @@ import Lens.Micro ((^.), (&), (%~)) import Control.Monad.Trans.State.Lazy import Control.Monad.Trans.Reader-import Data.Default import Data.Maybe (catMaybes) import qualified Graphics.Vty as V import Brick.Types import Brick.Types.Internal import Brick.AttrMap+import Brick.Widgets.Border.Style renderFinal :: AttrMap -> [Widget n]@@ -32,7 +32,7 @@ (layerResults, !newRS) = flip runState rs $ sequence $ (\p -> runReaderT p ctx) <$> (render <$> cropToContext <$> layerRenders)- ctx = Context def (fst sz) (snd sz) def aMap+ ctx = Context mempty (fst sz) (snd sz) defaultBorderStyle aMap pic = V.picForLayers $ uncurry V.resize sz <$> (^.imageL) <$> layerResults -- picWithBg is a workaround for runaway attributes. -- See https://github.com/coreyoconnor/vty/issues/95
src/Data/Text/Markup.hs view
@@ -21,7 +21,6 @@ import Data.Monoid #endif -import Data.Default (Default, def) import Data.String (IsString(..)) import qualified Data.Text as T @@ -34,7 +33,7 @@ mappend (Markup t1) (Markup t2) = Markup (t1 `mappend` t2) -instance (Default a) => IsString (Markup a) where+instance (Monoid a) => IsString (Markup a) where fromString = fromText . T.pack -- | Build a piece of markup; assign the specified metadata to every@@ -43,8 +42,8 @@ t @@ val = Markup [(c, val) | c <- T.unpack t] -- | Build markup from text with the default metadata.-fromText :: (Default a) => T.Text -> Markup a-fromText = (@@ def)+fromText :: (Monoid a) => T.Text -> Markup a+fromText = (@@ mempty) -- | Extract the text from markup, discarding the markup metadata. toText :: (Eq a) => Markup a -> T.Text