summaryrefslogtreecommitdiff
path: root/lib/Properties.hs (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-11-17make map parser work with more mapsstuebinm1-2/+14
I found yet more properties that weren't really documented or weren't marked as optional, hurray!
2021-11-16reject map urls starting with /_/stuebinm1-3/+6
2021-11-16add adjustment: add prefix for openWebsitestuebinm1-2/+5
2021-11-14config options: implement script-related optionsstuebinm1-2/+13
2021-11-14Functional jitsiRoomAdminTag adjustmentstuebinm1-6/+11
also yet another typeclass™, because why not?
2021-11-10little code cleanupstuebinm1-1/+1
2021-11-09first example of a map adjustmentstuebinm1-10/+21
this also includes some more monad plumbing, and an option for the linter to actually write things out again. Some of the previous commit was reverted a bit since it turned out to be stupid, but overall it was suprisingly easy once I got around to it, so yay! i guess Also includes a fairly silly example of how to use it.
2021-11-02monad plumbing to let the linter modify thingsstuebinm1-1/+1
I'm not sure if this is the right approach tbh — it lets the LintWriter monad modify its own context, but maybe we might run into cases where lints and modifications depend on each other across longer "distances" than just the context of the linter (i.e. just across a property?)
2021-10-30better lint messagesstuebinm1-10/+10
2021-10-30re-enable dependency checkingstuebinm1-2/+3
2021-10-30make aeson instances agree with themselvesstuebinm1-14/+7
This cleans up all the old rubble that came from the Tiled package I originally took from hackage. It now uses generics instead of implementing all the ToJSON and FromJSON instances by hand, and (deserialize . serialise) will now actually return a (semantically) equivalent json. It'll now also reject keys that it doesn't know, which required adding some in several places which the tiled package didn't know about (or which were introduced after it was originally written, dunno). Several more Maybes are required now, to represent the difference between e.g. empty lists and on set value, which does make the code slightly weirder in other places …
2021-10-30more sensible msg for "property required by"-lintsstuebinm1-1/+8
the previous state appears to have been an oversight and made no sense at all.
2021-10-30add tileset property lintingstuebinm1-6/+23
this reorganised the whole linting for tilesets somewhat; it's now very similar to that linting layers, and it may be possible to abstract some of the code away ...
2021-10-30add warning for very large tileset imagesstuebinm1-2/+3
2021-09-30simple map-map link dependency checkingstuebinm1-1/+4
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.
2021-09-23very naïve handling of directoriesstuebinm1-1/+1
2021-09-20use PrettyPrinter morestuebinm1-4/+3
2021-09-20typechecking for path depths!stuebinm1-53/+67
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.
2021-09-20rebuilding the core LintWriter monadstuebinm1-11/+11
it is no longer an Either since that wasn't used anyways, but is now also a Reader.
2021-09-20simple parsing of local dependency pathsstuebinm1-11/+16
2021-09-20moving code aroundstuebinm1-57/+69
2021-09-20lint embedded tilesetsstuebinm1-2/+13
2021-09-20lint map things that aren't custom propertiesstuebinm1-4/+31
2021-09-20lint general map propertiesstuebinm1-63/+94
2021-09-19some properties require non-empty layersstuebinm1-41/+78
2021-09-19support for properties that aren't stringsstuebinm1-36/+52
apparently i couldn't read or something?
2021-09-18collecting map dependenciesstuebinm1-8/+22
2021-09-18can collect dependencies!stuebinm1-6/+8
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)
2021-09-18type check propertiesstuebinm1-53/+15
/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
2021-09-18tame the stringsstuebinm1-8/+9
Adds a PrettyPrint typeclass which operates on Text and should replace Show, since constantly converting strings from linked lists to arrays seems somewhat silly.
2021-09-16some unused codestuebinm1-5/+2
2021-09-16moving lots of code aroundstuebinm1-0/+116
(also renaming things now that concepts seem a bit clearer)