summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* moved types into Types.hsstuebinm2021-09-185-51/+67
| | | | it's almost as if there's some structure to this code!
* can collect dependencies!stuebinm2021-09-184-25/+56
| | | | | | | There's now a Lint type, which may be either a "true lint" (which is a Hint, which contains some message and level of severity), or a Depends, which indicates that this map depends on some ressource or other (and is otherwise treated as a special info Hint in all other cases)
* type check propertiesstuebinm2021-09-183-56/+42
| | | | | | /finally/ figured out that all properties just look like {name, value, type} so now that's abstracted away and Properties.hs doesn't look like javascript anymore
* tame the stringsstuebinm2021-09-185-49/+62
| | | | | | Adds a PrettyPrint typeclass which operates on Text and should replace Show, since constantly converting strings from linked lists to arrays seems somewhat silly.
* (somewhat) reasonable representation of parse errorsstuebinm2021-09-173-23/+44
| | | | | | | | This makes map loading (and parsing) part of the linter, and also makes it return "general lints" and nothing else in case that failed. Possibly a sum type would be nicer here, but I guess it's not really important since everything ends up as json anyways?
* input options, output jsonstuebinm2021-09-165-63/+152
| | | | | | | input options are mostly dummies for now, but some work (e.g. --inpath and --json). Lints can now be optionally printed as json to be reasonably machine-readable (and the json can be pretty-printed to make it human-readable again …).
* some unused codestuebinm2021-09-161-5/+2
|
* moving lots of code aroundstuebinm2021-09-167-169/+260
| | | | (also renaming things now that concepts seem a bit clearer)
* small updatestuebinm2021-09-161-5/+6
|
* simple proof of conceptstuebinm2021-09-056-0/+41904
Lots of monads everywhere, hurray! (unfortunately, workadventure maps don't quite form a category; they lack composition …) Credits: - the example.json file is by TabascoEye (with some modifications for testing purposes) - the Tiled module is forked from aeson-tiled on hackage, since that package didn't handle custom layer properties correctly