byline 0.3.0.0 → 0.3.1.0
raw patch · 5 files changed
+54/−27 lines, 5 filesdep +semigroupsdep ~ansi-terminaldep ~exceptionsPVP ok
version bump matches the API change (PVP)
Dependencies added: semigroups
Dependency ranges changed: ansi-terminal, exceptions
API changes (from Hackage documentation)
+ System.Console.Byline.Stylized: instance Data.Semigroup.Semigroup System.Console.Byline.Stylized.Stylized
Files
- CHANGES.md +6/−0
- LICENSE +1/−1
- byline.cabal +9/−6
- src/System/Console/Byline/Internal/Types.hs +21/−8
- src/System/Console/Byline/Stylized.hs +17/−12
CHANGES.md view
@@ -1,5 +1,11 @@ # Version History +## 0.3.1.0 (March 20, 2018)++ - Update dependency bounds++ - Deal with the Semigroup Monoid Proposal+ ## 0.3.0.0 (December 1, 2017) - New style modifier: `swapFgBg` (Thanks to Sam Tay)
LICENSE view
@@ -1,4 +1,4 @@-Copyright (c) 2015-2017 Peter J. Jones <pjones@devalot.com>+Copyright (c) 2015-2018 Peter J. Jones <pjones@devalot.com> All rights reserved. Redistribution and use in source and binary forms, with or without
byline.cabal view
@@ -1,6 +1,6 @@ -------------------------------------------------------------------------------- name: byline-version: 0.3.0.0+version: 0.3.1.0 synopsis: Library for creating command-line interfaces (colors, menus, etc.) homepage: http://github.com/pjones/byline bug-reports: http://github.com/pjones/byline/issues@@ -8,12 +8,12 @@ license-file: LICENSE author: Peter Jones <pjones@devalot.com> maintainer: Peter Jones <pjones@devalot.com>-copyright: Copyright: (c) 2015-2017 Peter J. Jones+copyright: Copyright: (c) 2015-2018 Peter J. Jones category: System, User Interfaces build-type: Simple stability: experimental-tested-with: GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2-cabal-version: >=1.18+tested-with: GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.1+cabal-version: 1.18 description: Byline simplifies writing interactive terminal applications by building upon @ansi-terminal@ and @haskeline@. This makes it@@ -73,15 +73,18 @@ ghc-options: -Werror build-depends: base >= 4.7 && < 5.0- , ansi-terminal >= 0.6 && < 0.8+ , ansi-terminal >= 0.6 && < 0.9 , colour >= 2.3 && < 2.4 , containers >= 0.5 && < 0.6- , exceptions >= 0.8 && < 0.9+ , exceptions >= 0.8 && < 0.11 , haskeline >= 0.7 && < 0.8 , mtl >= 2.1 && < 2.3 , terminfo-hs >= 0.1 && < 0.3 , text >= 0.11 && < 1.3 , transformers >= 0.3 && < 0.6++ if !impl(ghc >= 8.0)+ build-depends: semigroups == 0.18.* -------------------------------------------------------------------------------- executable simple
src/System/Console/Byline/Internal/Types.hs view
@@ -22,6 +22,7 @@ -------------------------------------------------------------------------------- -- Library imports: import Data.Monoid+import qualified Data.Semigroup as Semi -------------------------------------------------------------------------------- -- Byline imports:@@ -32,22 +33,30 @@ data Status = On | Off --------------------------------------------------------------------------------+instance Semi.Semigroup Status where+ (<>) Off Off = Off+ (<>) Off On = On+ (<>) On On = On+ (<>) On Off = On++-------------------------------------------------------------------------------- instance Monoid Status where mempty = Off- mappend Off Off = Off- mappend Off On = On- mappend On On = On- mappend On Off = On+ mappend = (Semi.<>) -------------------------------------------------------------------------------- -- | Like @Maybe@, but with a different @Monoid@ instance. newtype OnlyOne a = OnlyOne {unOne :: Maybe a} --------------------------------------------------------------------------------+instance Semi.Semigroup (OnlyOne a) where+ (<>) _ b@(OnlyOne (Just _)) = b+ (<>) a _ = a++-------------------------------------------------------------------------------- instance Monoid (OnlyOne a) where mempty = OnlyOne Nothing- mappend _ b@(OnlyOne (Just _)) = b- mappend a _ = a+ mappend = (Semi.<>) -------------------------------------------------------------------------------- -- | Information about modifications made to stylized text.@@ -60,7 +69,11 @@ } --------------------------------------------------------------------------------+instance Semi.Semigroup Modifier where+ (<>) (Modifier a b c d e) (Modifier a' b' c' d' e') =+ Modifier (a <> a') (b <> b') (c <> c') (d <> d') (e <> e')++-------------------------------------------------------------------------------- instance Monoid Modifier where mempty = Modifier mempty mempty mempty mempty mempty- mappend (Modifier a b c d e) (Modifier a' b' c' d' e') =- Modifier (a <> a') (b <> b') (c <> c') (d <> d') (e <> e')+ mappend = (Semi.<>)
src/System/Console/Byline/Stylized.hs view
@@ -22,6 +22,7 @@ -------------------------------------------------------------------------------- -- Library imports: import Data.Monoid+import qualified Data.Semigroup as Semi import Data.String import Data.Text (Text) import qualified Data.Text as T@@ -64,23 +65,27 @@ modStylized = StylizedMod ---------------------------------------------------------------------------------instance Monoid Stylized where- mempty = StylizedText mempty mempty-+instance Semi.Semigroup Stylized where -- StylizedText on LHS.- mappend a@(StylizedText _ _) b@(StylizedText _ _) = StylizedList [a, b]- mappend (StylizedText t m) (StylizedMod m') = StylizedText t (m <> m')- mappend a@(StylizedText _ _) (StylizedList b) = StylizedList (a:b)+ (<>) a@(StylizedText _ _) b@(StylizedText _ _) = StylizedList [a, b]+ (<>) (StylizedText t m) (StylizedMod m') = StylizedText t (m <> m')+ (<>) a@(StylizedText _ _) (StylizedList b) = StylizedList (a:b) -- StylizedMod on LHS.- mappend (StylizedMod m) (StylizedText t m') = StylizedText t (m <> m')- mappend (StylizedMod m) (StylizedMod m') = StylizedMod (m <> m')- mappend m@(StylizedMod _) (StylizedList l) = StylizedList (map (m <>) l)+ (<>) (StylizedMod m) (StylizedText t m') = StylizedText t (m <> m')+ (<>) (StylizedMod m) (StylizedMod m') = StylizedMod (m <> m')+ (<>) m@(StylizedMod _) (StylizedList l) = StylizedList (map (m <>) l) -- StylizedList on LHS.- mappend (StylizedList l) t@(StylizedText _ _) = StylizedList (l <> [t])- mappend (StylizedList l) m@(StylizedMod _) = StylizedList (map (<> m) l)- mappend (StylizedList l) (StylizedList l') = StylizedList (l <> l')+ (<>) (StylizedList l) t@(StylizedText _ _) = StylizedList (l <> [t])+ (<>) (StylizedList l) m@(StylizedMod _) = StylizedList (map (<> m) l)+ (<>) (StylizedList l) (StylizedList l') = StylizedList (l <> l')+++--------------------------------------------------------------------------------+instance Monoid Stylized where+ mempty = StylizedText mempty mempty+ mappend = (Semi.<>) -------------------------------------------------------------------------------- instance IsString Stylized where