safe-coloured-text 0.2.0.0 → 0.2.0.1
raw patch · 5 files changed
+51/−8 lines, 5 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ Text.Colour: [chunkBlinking] :: Chunk -> !Maybe Blinking
+ Text.Colour: noBlinking :: Chunk -> Chunk
+ Text.Colour: noUnderline :: Chunk -> Chunk
+ Text.Colour: rapidBlinking :: Chunk -> Chunk
+ Text.Colour: slowBlinking :: Chunk -> Chunk
+ Text.Colour.Chunk: [chunkBlinking] :: Chunk -> !Maybe Blinking
+ Text.Colour.Chunk: noBlinking :: Chunk -> Chunk
+ Text.Colour.Chunk: noUnderline :: Chunk -> Chunk
+ Text.Colour.Chunk: rapidBlinking :: Chunk -> Chunk
+ Text.Colour.Chunk: slowBlinking :: Chunk -> Chunk
+ Text.Colour.Code: NoBlinking :: Blinking
+ Text.Colour.Code: RapidBlinking :: Blinking
+ Text.Colour.Code: SetBlinking :: !Blinking -> SGR
+ Text.Colour.Code: SlowBlinking :: Blinking
+ Text.Colour.Code: data Blinking
+ Text.Colour.Code: instance Data.Validity.Validity Text.Colour.Code.Blinking
+ Text.Colour.Code: instance GHC.Classes.Eq Text.Colour.Code.Blinking
+ Text.Colour.Code: instance GHC.Enum.Bounded Text.Colour.Code.Blinking
+ Text.Colour.Code: instance GHC.Enum.Enum Text.Colour.Code.Blinking
+ Text.Colour.Code: instance GHC.Generics.Generic Text.Colour.Code.Blinking
+ Text.Colour.Code: instance GHC.Show.Show Text.Colour.Code.Blinking
- Text.Colour: Chunk :: !Text -> !Maybe Bool -> !Maybe ConsoleIntensity -> !Maybe Underlining -> !Maybe Colour -> !Maybe Colour -> Chunk
+ Text.Colour: Chunk :: !Text -> !Maybe Bool -> !Maybe ConsoleIntensity -> !Maybe Underlining -> !Maybe Blinking -> !Maybe Colour -> !Maybe Colour -> Chunk
- Text.Colour.Chunk: Chunk :: !Text -> !Maybe Bool -> !Maybe ConsoleIntensity -> !Maybe Underlining -> !Maybe Colour -> !Maybe Colour -> Chunk
+ Text.Colour.Chunk: Chunk :: !Text -> !Maybe Bool -> !Maybe ConsoleIntensity -> !Maybe Underlining -> !Maybe Blinking -> !Maybe Colour -> !Maybe Colour -> Chunk
Files
- CHANGELOG.md +6/−0
- safe-coloured-text.cabal +1/−1
- src/Text/Colour.hs +4/−0
- src/Text/Colour/Chunk.hs +24/−7
- src/Text/Colour/Code.hs +16/−0
CHANGELOG.md view
@@ -1,5 +1,11 @@ # Changelog for safe-coloured-text +## [0.2.0.1] - 2022-06-29++### Added++* Support blinking text+ ## [0.2.0.0] - 2022-06-19 ### Changed
safe-coloured-text.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: safe-coloured-text-version: 0.2.0.0+version: 0.2.0.1 synopsis: Safely output coloured text category: User Interfaces homepage: https://github.com/NorfairKing/safe-coloured-text#readme
src/Text/Colour.hs view
@@ -26,6 +26,10 @@ italic, underline, doubleUnderline,+ noUnderline,+ slowBlinking,+ rapidBlinking,+ noBlinking, -- ** Colours Colour (..),
src/Text/Colour/Chunk.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE RecordWildCards #-}+{-# OPTIONS_GHC -Wno-unused-pattern-binds #-} module Text.Colour.Chunk where @@ -25,6 +26,7 @@ chunkItalic :: !(Maybe Bool), chunkConsoleIntensity :: !(Maybe ConsoleIntensity), chunkUnderlining :: !(Maybe Underlining),+ chunkBlinking :: !(Maybe Blinking), chunkForeground :: !(Maybe Colour), chunkBackground :: !(Maybe Colour) }@@ -37,13 +39,15 @@ plainChunk :: TerminalCapabilities -> Chunk -> Bool plainChunk tc Chunk {..} =- and- [ isNothing chunkItalic,- isNothing chunkConsoleIntensity,- isNothing chunkUnderlining,- maybe True (plainColour tc) chunkForeground,- maybe True (plainColour tc) chunkBackground- ]+ let Chunk _ _ _ _ _ _ _ = undefined+ in and+ [ isNothing chunkItalic,+ isNothing chunkConsoleIntensity,+ isNothing chunkUnderlining,+ isNothing chunkBlinking,+ maybe True (plainColour tc) chunkForeground,+ maybe True (plainColour tc) chunkBackground+ ] plainColour :: TerminalCapabilities -> Colour -> Bool plainColour tc = \case@@ -137,6 +141,7 @@ chunkItalic = Nothing, chunkConsoleIntensity = Nothing, chunkUnderlining = Nothing,+ chunkBlinking = Nothing, chunkForeground = Nothing, chunkBackground = Nothing }@@ -161,6 +166,18 @@ doubleUnderline :: Chunk -> Chunk doubleUnderline chu = chu {chunkUnderlining = Just DoubleUnderline}++noUnderline :: Chunk -> Chunk+noUnderline chu = chu {chunkUnderlining = Just NoUnderline}++slowBlinking :: Chunk -> Chunk+slowBlinking chu = chu {chunkBlinking = Just SlowBlinking}++rapidBlinking :: Chunk -> Chunk+rapidBlinking chu = chu {chunkBlinking = Just RapidBlinking}++noBlinking :: Chunk -> Chunk+noBlinking chu = chu {chunkBlinking = Just NoBlinking} -- TODO consider allowing an 8-colour alternative to a given 256-colour data Colour
src/Text/Colour/Code.hs view
@@ -72,6 +72,7 @@ = Reset | SetItalic !Bool | SetUnderlining !Underlining+ | SetBlinking !Blinking | SetConsoleIntensity !ConsoleIntensity | SetColour !ColourIntensity !ConsoleLayer !TerminalColour | Set8BitColour !ConsoleLayer !Word8@@ -102,6 +103,12 @@ DoubleUnderline -> 21 NoUnderline -> 24 ]+ SetBlinking b ->+ [ case b of+ SlowBlinking -> 5+ RapidBlinking -> 6+ NoBlinking -> 25+ ] SetConsoleIntensity ci -> [ case ci of BoldIntensity -> 1@@ -142,6 +149,15 @@ deriving (Show, Eq, Generic, Bounded, Enum) instance Validity Underlining++-- | ANSI text blinking+data Blinking+ = SlowBlinking+ | RapidBlinking+ | NoBlinking+ deriving (Show, Eq, Generic, Bounded, Enum)++instance Validity Blinking -- | ANSI general console intensity: usually treated as setting the font style -- (e.g. 'BoldIntensity' causes text to be bold)