summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* check if assets existstuebinm2021-09-301-8/+40
|
* remove unused Maybestuebinm2021-09-301-4/+4
|
* nicer json output which leaks less haskell namesstuebinm2021-09-305-41/+58
|
* simple map-map link dependency checkingstuebinm2021-09-306-21/+106
| | | | | | | | This is purely based on a set difference, i.e. it won't catch stupid things like a map linking to itself, a map link going only one-way, etc. Also, it only handles map links; it doesn't check if all ressource files referenced by a map actually exist.
* prettier pretty printing and stuffstuebinm2021-09-236-40/+77
| | | | | also, configurable log level, which only required relaxing the type system once!
* some documentationstuebinm2021-09-232-5/+20
|
* handle all maps in entire repositoriesstuebinm2021-09-235-73/+105
| | | | (+ checking that paths don't run outside of respositories)
* very naïve handling of directoriesstuebinm2021-09-237-27/+124
|
* use PrettyPrinter morestuebinm2021-09-204-29/+20
|
* typechecking for path depths!stuebinm2021-09-204-69/+127
| | | | | | This now checks if relative paths are still inside the repository, as a general safety mechanism to stop the linter from accidentally reading other things, as well as a nice hint for users.
* rebuilding the core LintWriter monadstuebinm2021-09-203-93/+68
| | | | | it is no longer an Either since that wasn't used anyways, but is now also a Reader.
* simple parsing of local dependency pathsstuebinm2021-09-204-21/+27
|
* moving code aroundstuebinm2021-09-201-57/+69
|
* lint embedded tilesetsstuebinm2021-09-204-11/+21
|
* lint map things that aren't custom propertiesstuebinm2021-09-202-12/+36
|
* lint general map propertiesstuebinm2021-09-204-72/+121
|
* some properties require non-empty layersstuebinm2021-09-194-46/+92
|
* support for properties that aren't stringsstuebinm2021-09-194-49/+88
| | | | apparently i couldn't read or something?
* collecting map dependenciesstuebinm2021-09-184-20/+70
|
* 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