ribosome-0.3.0.0: lib/Ribosome/Msgpack/Error.hs
{-# LANGUAGE TemplateHaskell #-}
module Ribosome.Msgpack.Error where
import Data.DeepPrisms (deepPrisms)
import System.Log.Logger (Priority(ERROR))
import Data.Text.Prettyprint.Doc (defaultLayoutOptions, layoutPretty)
import Data.Text.Prettyprint.Doc.Render.Text (renderStrict)
import Ribosome.Data.ErrorReport (ErrorReport(ErrorReport))
import Ribosome.Error.Report.Class (ReportError(..))
import Ribosome.Msgpack.Util (Err)
newtype DecodeError =
Failed Err
deriving Show
deepPrisms ''DecodeError
instance ReportError DecodeError where
errorReport (Failed err) =
ErrorReport "error decoding response from neovim" ["DecodeError:", rendered] ERROR
where
rendered = renderStrict $ layoutPretty defaultLayoutOptions err