diff options
author | stuebinm | 2021-09-20 01:26:27 +0200 |
---|---|---|
committer | stuebinm | 2021-09-20 01:26:27 +0200 |
commit | 968038c403e71b98a8f55a4d79e64beca8349ab3 (patch) | |
tree | 4a53190972b3f5a7c12a9a463856d7d4600fe75f /lib/CheckMap.hs | |
parent | 33d2b0c5da01c48c8106876665e646e1d2f560e9 (diff) |
lint general map properties
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? |