yasi 0.2.0.1 → 0.2.0.2
raw patch · 7 files changed
+80/−53 lines, 7 filesdep +text-builder-lineardep ~basedep ~text-displayPVP ok
version bump matches the API change (PVP)
Dependencies added: text-builder-linear
Dependency ranges changed: base, text-display
API changes (from Hackage documentation)
Files
- CHANGELOG.md +5/−0
- src/Yasi.hs +6/−5
- src/Yasi/Internal.hs +16/−15
- src/Yasi/Util.hs +2/−2
- test/Interpolations.hs +4/−4
- test/Util.hs +3/−3
- yasi.cabal +44/−24
CHANGELOG.md view
@@ -1,5 +1,10 @@ # Revision history for yasi +## 0.2.0.2 -- 2024-01-05++ * Update to `text-display-1.0`+ * Drop support for GHC `<9.2`+ ## 0.2.0.1 -- 2022-03-13 * Update `text-display`, which makes an internal hack unnecessary
src/Yasi.hs view
@@ -18,16 +18,17 @@ where import Data.String (IsString (..))-import qualified Data.Text as T-import qualified Data.Text.Lazy as TL-import qualified Language.Haskell.TH.Quote as TH-import qualified Language.Haskell.TH.Syntax as TH+import Data.Text qualified as T+import Data.Text.Lazy qualified as TL+import Language.Haskell.TH.Quote qualified as TH+import Language.Haskell.TH.Syntax qualified as TH import Yasi.Internal -- $setup -- >>> import Yasi -- >>> import Data.Text (Text) -- >>> import qualified Data.Text.Lazy+-- >>> import Data.String (IsString) int :: (TH.Exp -> TH.Exp) -> TH.QuasiQuoter int = interpolator '$'@@ -59,7 +60,7 @@ -- @['iFS'|...|] = 'fromString' ['i'|...|]@ -- -- >>> :t [iFS|hi|]--- [iFS|hi|] :: Data.String.IsString a => a+-- [iFS|hi|] :: IsString a => a iFS :: TH.QuasiQuoter iFS = int $ TH.AppE (TH.VarE 'fromString)
src/Yasi/Internal.hs view
@@ -9,16 +9,17 @@ where import Control.Monad ((>=>))-import qualified Data.Char as C-import qualified Data.Text as T-import qualified Data.Text.Display as TD-import qualified Data.Text.Lazy as TL-import qualified Data.Text.Lazy.Builder as TLB+import Data.Char qualified as C+import Data.List (foldl')+import Data.Text qualified as T+import Data.Text.Builder.Linear qualified as TBL+import Data.Text.Display qualified as TD+import Data.Text.Lazy qualified as TL import GHC.Generics (Generic)-import qualified Language.Haskell.Meta.Parse as GhcHsMeta-import qualified Language.Haskell.TH.Lib as TH-import qualified Language.Haskell.TH.Quote as TH-import qualified Language.Haskell.TH.Syntax as TH+import Language.Haskell.Meta.Parse qualified as GhcHsMeta+import Language.Haskell.TH.Lib qualified as TH+import Language.Haskell.TH.Quote qualified as TH+import Language.Haskell.TH.Syntax qualified as TH data Segment = Lit String@@ -26,7 +27,7 @@ | Abs -- idea due to interpolate deriving (Show, Eq, Generic) -parseSegments :: MonadFail m => Char -> String -> m [Segment]+parseSegments :: (MonadFail m) => Char -> String -> m [Segment] parseSegments c = fmap (group []) . go where -- ugly, but simple enough™@@ -61,7 +62,7 @@ . lams . transform . TH.AppE (TH.VarE 'stringish)- . foldr (flip TH.UInfixE (TH.VarE '(<>))) (TH.VarE 'mempty)+ . foldl' (\a b -> TH.InfixE (Just a) (TH.VarE '(<>)) (Just b)) (TH.VarE 'mempty) $ ls where go = \case@@ -99,13 +100,13 @@ quoteDec = const $ fail "declaration context not supported" class Stringish a where- stringish :: TLB.Builder -> a+ stringish :: TBL.Builder -> a instance Stringish String where- stringish = TL.unpack . TLB.toLazyText+ stringish = T.unpack . TBL.runBuilder instance Stringish T.Text where- stringish = TL.toStrict . TLB.toLazyText+ stringish = TBL.runBuilder instance Stringish TL.Text where- stringish = TLB.toLazyText+ stringish = TL.fromStrict . TBL.runBuilder
src/Yasi/Util.hs view
@@ -4,9 +4,9 @@ ) where -import qualified Data.Char as C+import Data.Char qualified as C import Data.List (dropWhileEnd)-import qualified Data.Text as T+import Data.Text qualified as T -- $setup -- >>> import Yasi
test/Interpolations.hs view
@@ -1,12 +1,12 @@ module Interpolations where import Control.Applicative (Const (..))-import qualified Data.Text as T+import Data.Text qualified as T import Data.Text.Display (display)-import qualified Data.Text.Lazy as TL+import Data.Text.Lazy qualified as TL import Hedgehog-import qualified Hedgehog.Gen as Gen-import qualified Hedgehog.Range as Range+import Hedgehog.Gen qualified as Gen+import Hedgehog.Range qualified as Range import Test.Tasty import Test.Tasty.HUnit import Test.Tasty.Hedgehog
test/Util.hs view
@@ -1,9 +1,9 @@ module Util where -import qualified Data.Text as T+import Data.Text qualified as T import Hedgehog-import qualified Hedgehog.Gen as Gen-import qualified Hedgehog.Range as Range+import Hedgehog.Gen qualified as Gen+import Hedgehog.Range qualified as Range import Test.Tasty import Test.Tasty.HUnit import Test.Tasty.Hedgehog
yasi.cabal view
@@ -1,13 +1,12 @@ cabal-version: 2.4 name: yasi-version: 0.2.0.1-+version: 0.2.0.2 synopsis: Yet another string interpolator description: Yet another string interpolator, with a different set of tradeoffs-category: String, Text, QuasiQuotes +category: String, Text, QuasiQuotes homepage: https://github.com/amesgen/yasi bug-reports: https://github.com/amesgen/yasi/issues license: CC0-1.0@@ -22,10 +21,23 @@ type: git common commons- default-language: Haskell2010- ghc-options: -Wall -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -fno-warn-name-shadowing -Wunused-packages- default-extensions: BlockArguments DeriveGeneric FlexibleContexts FlexibleInstances LambdaCase MultiParamTypeClasses OverloadedStrings QuasiQuotes RecordWildCards ScopedTypeVariables TemplateHaskell TupleSections+ default-language: GHC2021+ ghc-options:+ -Wall+ -Wincomplete-record-updates+ -Wincomplete-uni-patterns+ -Wredundant-constraints+ -fno-warn-name-shadowing+ -Wunused-packages + default-extensions:+ BlockArguments+ LambdaCase+ OverloadedStrings+ QuasiQuotes+ RecordWildCards+ TemplateHaskell+ library import: commons ghc-options: -Wmissing-export-lists@@ -34,31 +46,39 @@ Yasi Yasi.Internal Yasi.Util+ build-depends:- base >= 4.14 && < 5- , template-haskell >= 2.16 && < 2.19- , text >= 1.2 && < 2.1- , text-display ^>= 0.0.2- , ghc-hs-meta ^>= 0.1+ base >=4.16 && <5,+ ghc-hs-meta ^>=0.1,+ template-haskell >=2.16 && <2.24,+ text >=1.2 && <2.2,+ text-builder-linear ^>=0.1,+ text-display ^>=1, test-suite tasty import: commons type: exitcode-stdio-1.0 main-is: Driver.hs hs-source-dirs: test- ghc-options: -threaded -rtsopts -with-rtsopts=-N+ ghc-options:+ -threaded+ -rtsopts+ -with-rtsopts=-N+ build-tool-depends:- tasty-discover:tasty-discover ^>= 4.2+ tasty-discover:tasty-discover ^>=4.2+ build-depends:- base- , yasi- , text- , text-display- , tasty >= 1.3 && < 1.5- , tasty-hunit ^>= 0.10- , tasty-hedgehog >= 1.0 && < 1.3- , hedgehog >= 1.0 && < 1.2+ base,+ hedgehog >=1.0 && <1.6,+ tasty >=1.3 && <1.6,+ tasty-hedgehog >=1.0 && <1.5,+ tasty-hunit ^>=0.10,+ text,+ text-display,+ yasi,+ other-modules:- Segments- Interpolations- Util+ Interpolations+ Segments+ Util