From 968038c403e71b98a8f55a4d79e64beca8349ab3 Mon Sep 17 00:00:00 2001 From: stuebinm Date: Mon, 20 Sep 2021 01:26:27 +0200 Subject: lint general map properties --- lib/CheckMap.hs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'lib/CheckMap.hs') diff --git a/lib/CheckMap.hs b/lib/CheckMap.hs index 9908fdd..08932b4 100644 --- a/lib/CheckMap.hs +++ b/lib/CheckMap.hs @@ -17,10 +17,12 @@ import qualified Data.Vector as V import GHC.Generics (Generic) import LintWriter (LintResult (..), LintWriter, - lintsToDeps) -import Properties (checkProperty) + lintsToDeps, resultToLints, + runLintWriter) +import Properties (checkLayerProperty, + checkMapProperty) import Tiled2 (Layer (layerName, layerProperties), - Tiledmap (tiledmapLayers), + Tiledmap (tiledmapLayers, tiledmapProperties), loadTiledmap) import Types (Dep, Level (..), Lint (..), hint, lintLevel) @@ -55,7 +57,7 @@ loadAndLintMap path = loadTiledmap path >>= pure . \case runLinter :: Tiledmap -> MapResult () runLinter tiledmap = MapResult { mapresultLayer = Just layerMap - , mapresultGeneral = [] -- no general lints for now + , mapresultGeneral = propertyLints -- no general lints for now , mapresultDepends = concatMap (lintsToDeps . snd) layer } where @@ -64,10 +66,15 @@ runLinter tiledmap = MapResult layer = V.toList . V.map runCheck $ tiledmapLayers tiledmap where runCheck l = (layerName l, LintResult $ runWriterT (checkLayer l)) + -- lints collected from properties + propertyLints = runLintWriter + $ mapM_ (checkMapProperty tiledmap) (tiledmapProperties tiledmap) + + -- | collect lints on a single map layer checkLayer :: Layer -> LintWriter () checkLayer layer = - mapM_ (checkProperty layer) (layerProperties layer) + mapM_ (checkLayerProperty layer) (layerProperties layer) -- human-readable lint output, e.g. for consoles instance PrettyPrint a => PrettyPrint (MapResult a) where @@ -79,7 +86,7 @@ instance PrettyPrint a => PrettyPrint (MapResult a) where (uncurry showResult) (maybe [] toList . mapresultLayer $ mapResult) prettyGeneral :: [Text] - prettyGeneral = prettyprint <$> mapresultGeneral mapResult + prettyGeneral = flip (<>) "\n" . prettyprint <$> mapresultGeneral mapResult -- TODO: possibly expand this to something more detailed? -- cgit v1.2.3