diff options
Diffstat (limited to '')
-rw-r--r-- | lib/LintWriter.hs | 48 |
1 files changed, 2 insertions, 46 deletions
diff --git a/lib/LintWriter.hs b/lib/LintWriter.hs index bfe543e..66f16f1 100644 --- a/lib/LintWriter.hs +++ b/lib/LintWriter.hs @@ -9,54 +9,10 @@ module LintWriter where import Control.Monad.Trans.Maybe () import Control.Monad.Writer (MonadTrans (lift), MonadWriter (tell), WriterT) -import Data.Aeson (ToJSON (toJSON), (.=)) +import Data.Aeson (ToJSON (toJSON)) import Data.Text (Text) -import GHC.Generics (Generic) -import qualified Data.Aeson as A -import Util (PrettyPrint (..), showText) - --- | Levels of errors and warnings, collectively called --- "Hints" until I can think of some better name -data Level = Warning | Suggestion | Info | Forbidden | Error | Fatal - deriving (Show, Generic, ToJSON) - --- | a hint comes with an explanation (and a level), or is a dependency --- (in which case it'll be otherwise treated as an info hint) -data Lint = Depends Dep | Lint Hint - -data Hint = Hint - { hintLevel :: Level - , hintMsg :: Text - } deriving (Generic, ToJSON) - -lintLevel :: Lint -> Level -lintLevel (Lint h) = hintLevel h -lintLevel (Depends dep) = Info - -instance PrettyPrint Lint where - prettyprint (Lint Hint { hintMsg, hintLevel } ) = - showText hintLevel <> ": " <> hintMsg - prettyprint (Depends dep) = - "Info: found dependency: " <> prettyprint dep - -instance ToJSON Lint where - toJSON (Lint l) = toJSON l - toJSON (Depends dep) = A.object - [ "hintMsg" .= prettyprint dep - , "hintLevel" .= A.String "Dependency Info" ] - - --- shorter constructor -hint :: Level -> Text -> Lint -hint level msg = Lint Hint { hintLevel = level, hintMsg = msg } - --- | TODO: add a reasonable representation of possible urls -newtype Dep = Dep Text - deriving (Generic, ToJSON) - -instance PrettyPrint Dep where - prettyprint (Dep txt) = txt +import Types -- | a monad to collect hints. If it yields Left, then the -- map is flawed in some fundamental way which prevented us |