packages feed

here 1.2.1 → 1.2.2

raw patch · 2 files changed

+21/−22 lines, 2 filesdep −lensPVP ok

version bump matches the API change (PVP)

Dependencies removed: lens

API changes (from Hackage documentation)

Files

here.cabal view
@@ -1,5 +1,5 @@ name: here-version: 1.2.1+version: 1.2.2 synopsis: Here docs & interpolated strings via quasiquotation description: Here docs & interpolated strings via quasiquotation license: BSD3@@ -27,7 +27,6 @@   build-depends:     base >= 4.5 && < 4.7,     haskell-src-meta ==0.6.*,-    lens >= 3.8 && < 3.10,     mtl ==2.1.*,     parsec ==3.1.*,     template-haskell
src/Data/String/Here/Interpolated.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE RecordWildCards, TemplateHaskell #-}+{-# LANGUAGE NamedFieldPuns, RecordWildCards, TemplateHaskell #-} {-# OPTIONS_GHC -fno-warn-missing-fields #-}  -- | Interpolated here docs@@ -6,7 +6,6 @@  import Control.Applicative hiding ((<|>)) import Control.Monad.State-import Control.Lens hiding (parts)  import Data.Maybe import Data.Monoid@@ -24,17 +23,15 @@  data StringPart = Lit String | Esc Char | Anti (Q Exp) -data HsChompState = HsChompState { _quoteState :: QuoteState-                                 , _braceCt :: Int-                                 , _consumed :: String+data HsChompState = HsChompState { quoteState :: QuoteState+                                 , braceCt :: Int+                                 , consumed :: String                                  }  data QuoteState = None | Single Escaped | Double Escaped  type Escaped = Bool -makeLenses ''HsChompState- -- | Quote a here doc with embedded antiquoted expressions -- -- Any expression occurring between @${@ and @}@ (for which the type must have@@ -106,31 +103,34 @@   where     go = do       c <- lift anyChar-      consumed %= (c:)+      modify $ \st@HsChompState {consumed} -> st {consumed = c:consumed}       HsChompState {..} <- get-      case _quoteState of+      case quoteState of         None -> case c of-          '{' -> braceCt += 1 >> go-          '}' | _braceCt > 0 -> braceCt -= 1 >> go-              | otherwise -> stepBack >> return (reverse $ tail _consumed)-          '\'' -> quoteState .= Single False >> go-          '"' -> quoteState .= Double False >> go+          '{' -> incBraceCt 1 >> go+          '}' | braceCt > 0 -> incBraceCt (-1) >> go+              | otherwise -> stepBack >> return (reverse $ tail consumed)+          '\'' -> setQuoteState (Single False) >> go+          '"' -> setQuoteState (Double False) >> go           _ -> go-        Single False -> do case c of '\\' -> quoteState .= Single True-                                     '\'' -> quoteState .= None+        Single False -> do case c of '\\' -> setQuoteState (Single True)+                                     '\'' -> setQuoteState None                                      _ -> return ()                            go-        Single True -> quoteState .= Single False >> go-        Double False -> do case c of '\\' -> quoteState .= Double True-                                     '"' -> quoteState .= None+        Single True -> setQuoteState (Single False) >> go+        Double False -> do case c of '\\' -> setQuoteState (Double True)+                                     '"' -> setQuoteState None                                      _ -> return ()                            go-        Double True -> quoteState .= Double False >> go+        Double True -> setQuoteState (Double False) >> go     stepBack = lift $       updateParserState         (\s@State {..} -> s {statePos = incSourceColumn statePos (-1)})         >> getInput         >>= setInput . ('}':)+    incBraceCt n = modify $ \st@HsChompState {braceCt} ->+      st {braceCt = braceCt + n}+    setQuoteState qs = modify $ \st -> st {quoteState = qs}  p_esc :: Parser StringPart p_esc = Esc <$> (char '\\' *> anyChar)