diff options
Diffstat (limited to '')
-rw-r--r-- | lib/CheckMap.hs | 19 |
1 files changed, 13 insertions, 6 deletions
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? |