From edf0ac82fe262f36e25d322f09cbfaae6f2b5298 Mon Sep 17 00:00:00 2001 From: stuebinm Date: Sat, 30 Oct 2021 15:15:12 +0200 Subject: re-enable dependency checking --- lib/CheckMap.hs | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) (limited to 'lib/CheckMap.hs') diff --git a/lib/CheckMap.hs b/lib/CheckMap.hs index 9c869d9..53cd0c7 100644 --- a/lib/CheckMap.hs +++ b/lib/CheckMap.hs @@ -21,15 +21,14 @@ import GHC.Generics (Generic) import Data.Aeson.Types ((.=)) import LintWriter (LintWriter, askContext, filterLintLevel, - invertLintResult, lintToDep, resultToLints, - runLintWriter) + invertLintResult, lintToDep, resultToDeps, + resultToLints, resultToOffers, runLintWriter) import Properties (checkLayerProperty, checkMap, checkTileset) import Tiled2 (HasName (getName), - HasProperties (getProperties), - Layer (layerName, layerProperties), + HasProperties (getProperties), Layer, LoadResult (..), Tiledmap (tiledmapLayers, tiledmapTilesets), - Tileset (tilesetName), loadTiledmap) + Tileset, loadTiledmap) import Types (Dep, Hint (hintLevel, hintMsg), Level (..), Lint (..), hint) import Util (PrettyPrint (prettyprint), prettyprint) @@ -51,8 +50,8 @@ instance ToJSON MapResult where , "tileset" .= CollectedLints (fmap getName <$> mapresultTileset res) , "general" .= mapresultGeneral res -- TODO: not sure if these are necessary of even useful - , "depends" .= mapresultDepends res - , "provides" .= mapresultProvides res + --, "depends" .= mapresultDepends res + --, "provides" .= mapresultProvides res ] newtype CollectedLints = CollectedLints (Map Hint [Text]) @@ -85,23 +84,24 @@ loadAndLintMap path depth = loadTiledmap path >>= pure . \case -- | lint a loaded map runLinter :: Tiledmap -> Int -> MapResult runLinter tiledmap depth = MapResult - { mapresultLayer = layer' - , mapresultTileset = tileset'-- fromList tileset + { mapresultLayer = invertThing layer + , mapresultTileset = invertThing tileset , mapresultGeneral = generalLints - , mapresultDepends = --concatMap (resultToDeps . snd) layer - {-<>-} mapMaybe lintToDep generalLints - -- <> concatMap (resultToDeps . snd) tileset - , mapresultProvides = mempty --concatMap (resultToOffers . snd) layer + , mapresultDepends = mapMaybe lintToDep generalLints + <> concatMap resultToDeps layer + <> concatMap resultToDeps tileset + , mapresultProvides = concatMap resultToOffers layer } where - layer' = M.unionsWith (<>) $ fmap invertLintResult layer - tileset' = M.unionsWith (<>) $ fmap invertLintResult tileset + layer = checkThing tiledmapLayers checkLayer + tileset = checkThing tiledmapTilesets checkTileset - layer = V.toList . V.map runCheck $ tiledmapLayers tiledmap - where runCheck l = runLintWriter l depth checkLayer - tileset = V.toList . V.map runCheck $ tiledmapTilesets tiledmap - where runCheck l = runLintWriter l depth (checkTileset l) + checkThing getter checker = V.toList . V.map runCheck $ getter tiledmap + where runCheck thing = runLintWriter thing depth checker + -- | "inverts" a LintResult, i.e. groups it by lints instead of + -- layers / maps + invertThing thing = M.unionsWith (<>) $ fmap invertLintResult thing -- lints collected from properties generalLints = resultToLints $ runLintWriter tiledmap depth checkMap -- cgit v1.2.3