From 498d676c1e06af966c814e01967fc3ece1fd9225 Mon Sep 17 00:00:00 2001 From: vijayphoenix Date: Sun, 26 Jan 2020 14:01:31 +0000 Subject: Switch to HsYAML library --- .gitignore | 1 + lib/Language/Haskell/Stylish/Config.hs | 10 +++++----- stack.yaml | 2 ++ stack.yaml.lock | 14 ++++++++++++++ stylish-haskell.cabal | 9 ++++++--- 5 files changed, 28 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 9072568..738ffe6 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ cabal.config cabal.sandbox.config cabal.sandbox.config dist +/dist-newstyle/ diff --git a/lib/Language/Haskell/Stylish/Config.hs b/lib/Language/Haskell/Stylish/Config.hs index bd15867..ba9cb31 100644 --- a/lib/Language/Haskell/Stylish/Config.hs +++ b/lib/Language/Haskell/Stylish/Config.hs @@ -16,6 +16,7 @@ import Data.Aeson (FromJSON (..) import qualified Data.Aeson as A import qualified Data.Aeson.Types as A import qualified Data.ByteString as B +import Data.ByteString.Lazy (fromStrict) import Data.Char (toLower) import qualified Data.FileEmbed as FileEmbed import Data.List (intercalate, @@ -23,8 +24,8 @@ import Data.List (intercalate, import Data.Map (Map) import qualified Data.Map as M import Data.Maybe (fromMaybe) -import Data.Yaml (decodeEither', - prettyPrintParseException) +import Data.YAML (prettyPosWithSource) +import Data.YAML.Aeson (decode1Strict) import System.Directory import System.FilePath (()) import qualified System.IO as IO (Newline (..), @@ -101,9 +102,8 @@ loadConfig verbose userSpecified = do mbFp <- configFilePath verbose userSpecified verbose $ "Loading configuration at " ++ fromMaybe "" mbFp bytes <- maybe (return defaultConfigBytes) B.readFile mbFp - case decodeEither' bytes of - Left err -> error $ - "Language.Haskell.Stylish.Config.loadConfig: " ++ prettyPrintParseException err + case decode1Strict bytes of + Left (pos, err) -> error $ prettyPosWithSource pos (fromStrict bytes) ("Language.Haskell.Stylish.Config.loadConfig: " ++ err) Right config -> do cabalLanguageExtensions <- if configCabal config then map show <$> Cabal.findLanguageExtensions verbose diff --git a/stack.yaml b/stack.yaml index 8d4c89b..b7c37af 100644 --- a/stack.yaml +++ b/stack.yaml @@ -5,3 +5,5 @@ packages: extra-deps: - 'Cabal-3.0.0.0' - 'haskell-src-exts-1.23.0' +- 'HsYAML-0.2.1.0' +- 'HsYAML-aeson-0.2.0.0' diff --git a/stack.yaml.lock b/stack.yaml.lock index 129406d..bc43b4e 100644 --- a/stack.yaml.lock +++ b/stack.yaml.lock @@ -18,6 +18,20 @@ packages: sha256: 8e5bc885533431db9bf75e9609f6b80b56ab0c289a903d701f8628e78322afd0 original: hackage: haskell-src-exts-1.23.0 +- completed: + hackage: HsYAML-0.2.1.0@sha256:e4677daeba57f7a1e9a709a1f3022fe937336c91513e893166bd1f023f530d68,5311 + pantry-tree: + size: 1340 + sha256: 21f61bf9cad31674126b106071dd9b852e408796aeffc90eec1792f784107eff + original: + hackage: HsYAML-0.2.1.0 +- completed: + hackage: HsYAML-aeson-0.2.0.0@sha256:04796abfc01cffded83f37a10e6edba4f0c0a15d45bef44fc5bb4313d9c87757,1791 + pantry-tree: + size: 234 + sha256: 67cc9ba17c79e71d3abdb465a3ee2825477856fff3b8b7d543cbbbefdae9a9d9 + original: + hackage: HsYAML-aeson-0.2.0.0 snapshots: - completed: size: 524154 diff --git a/stylish-haskell.cabal b/stylish-haskell.cabal index 0ec6bc3..ac16054 100644 --- a/stylish-haskell.cabal +++ b/stylish-haskell.cabal @@ -64,7 +64,8 @@ Library mtl >= 2.0 && < 2.3, semigroups >= 0.18 && < 0.20, syb >= 0.3 && < 0.8, - yaml >= 0.8.11 && < 0.12 + HsYAML-aeson >=0.2.0 && < 0.3, + HsYAML >=0.2.0 && < 0.3 Executable stylish-haskell Ghc-options: -Wall @@ -87,7 +88,8 @@ Executable stylish-haskell haskell-src-exts >= 1.18 && < 1.24, mtl >= 2.0 && < 2.3, syb >= 0.3 && < 0.8, - yaml >= 0.8.11 && < 0.12 + HsYAML-aeson >=0.2.0 && < 0.3, + HsYAML >=0.2.0 && < 0.3 Test-suite stylish-haskell-tests Ghc-options: -Wall @@ -146,7 +148,8 @@ Test-suite stylish-haskell-tests haskell-src-exts >= 1.18 && < 1.24, mtl >= 2.0 && < 2.3, syb >= 0.3 && < 0.8, - yaml >= 0.8.11 && < 0.12 + HsYAML-aeson >=0.2.0 && < 0.3, + HsYAML >=0.2.0 && < 0.3 Source-repository head Type: git -- cgit v1.2.3