summaryrefslogtreecommitdiff
path: root/lib/CheckMap.hs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* unbreak a very, very long rebasestuebinm2022-03-191-3/+3
|
* remove leftover rc3 things & some new stuffstuebinm2022-03-191-5/+8
| | | | | | | | | | | | | this removes: - the bbb properties - all explicit mentions of rc3 - the weird script domain hacks (done via a substitution now) - some (few) of the weirder code choices it also adds some more type level witchery to deal with configs, which for some reason seems to be the hardest problem of this entire program … also the server now does inter-assembly dependency checking!
* make tiled stricter (and organise some imports)stuebinm2022-03-191-10/+7
|
* separate tiled modules out into own packagestuebinm2022-03-191-1/+1
|
* switch to universum preludestuebinm2022-03-191-23/+36
| | | | also don't keep adjusted maps around if not necessary
* sprinkle some NFData everywherestuebinm2022-03-191-1/+2
| | | | (also some evaluateNF, leading to slightly less memory usage)
* maps, maps, and yet more mapsstuebinm2021-12-291-4/+14
| | | | | | | don't add maps to the result if their lint result looks the same as that of another list, just say it happened several times instead (this leads to a rather confusing Eq instance for MapResult which implements a very simple surface-level equality — perhaps change that later)
* the lobby lacks reflexivitystuebinm2021-12-291-1/+2
|
* Update CheckMap.hs to make missing back link to lobby an ERRORtabascoeye2021-12-281-1/+1
|
* warn if main.json does not link back to lobbystuebinm2021-12-271-6/+13
|
* whoops, forgot to delete an output field and now it's in the hubstuebinm2021-12-251-1/+0
|
* don't print doubled lints twicestuebinm2021-12-251-8/+7
|
* smaller changesstuebinm2021-12-241-3/+2
|
* correct recognision of entrypoints in sublayersstuebinm2021-12-231-16/+21
| | | | | also, the recursive check layer function slowly approaches something like readability!
* limit output for frequent lintsstuebinm2021-12-231-1/+4
| | | | it's now limited to just the first ten contexts, then an ellipsis
* fixed some warnings (and disabled others)stuebinm2021-12-161-1/+1
| | | | | | | | | So far i've never found an instance of -Wname-shadowing telling me anything useful, so it's disabled now, and most of the other trivial ones are fixed. (I assume this means I'll need -Wname-shadowing in about a day or two to find some bug ...)
* fixed & removed a bunch of old TODOsstuebinm2021-12-161-3/+0
|
* lots of code reorganising and some deduplicationstuebinm2021-12-041-5/+4
| | | | | | | it was kinda getting messy in places. Also found some accidental isomorphisms between types, so these are now only one type because the consequences were getting silly.
* collect badges from object layersstuebinm2021-12-021-6/+11
| | | | | this includes a halfway-reasonable parsing of object layers, as well as some monad plumbing to get them all in the right place.
* various fixes to bugsstuebinm2021-11-281-6/+5
| | | | | | | | | | Among them - always set correct exit codes - refuse to write out files if the out path already exists - calculate the overall severity correctly - slightly changed the json output schema - also output the text output format in json - make the default config.json suitable for a production environment
* fix group layer handlingstuebinm2021-11-191-9/+22
| | | | we don't want to accidentally copy maps, whoopsie
* deal with group layersstuebinm2021-11-191-4/+37
| | | | | I have no idea why these even exist, but apparently they do, so here's some code to deal with them in a hopefully useful manner …
* Functional jitsiRoomAdminTag adjustmentstuebinm2021-11-141-7/+8
| | | | also yet another typeclass™, because why not?
* extra module for repository writeoutstuebinm2021-11-101-1/+1
|
* remove dead codestuebinm2021-11-101-5/+2
| | | | | | | | (also fix some hlints) This removes some code that was apparently dead and I never noticed. I only noticed now since it wouldn't work with the newer versions of Aeson anymore.
* little code cleanupstuebinm2021-11-101-7/+5
|
* first example of a map adjustmentstuebinm2021-11-091-14/+23
| | | | | | | | | 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.
* turns out records are just sugarstuebinm2021-10-301-8/+2
| | | | | (and one that contains almost only mempty can be written much shorter than I thought it could)
* yet more tiled propertiesstuebinm2021-10-301-1/+1
|
* re-enable dependency checkingstuebinm2021-10-301-19/+19
|
* also flipping tileset lint output structurestuebinm2021-10-301-26/+34
|
* readable prettyprint for inverted lint outputstuebinm2021-10-301-1/+2
| | | | the previous state was a hacky mess
* flipping the output map structurestuebinm2021-10-301-13/+28
| | | | | | | | for now, just with layers. Instead of listing by layer (and giving lints multiple times), list by lint type (and list all layers in which this lint was applicable). This is a bit wonky for now, but readability of output is much better.
* make aeson instances agree with themselvesstuebinm2021-10-301-2/+3
| | | | | | | | | | | | | | | | 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 …
* add tileset property lintingstuebinm2021-10-301-7/+18
| | | | | | 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 ...
* rename to walintstuebinm2021-10-011-1/+1
|
* remove unused Maybestuebinm2021-09-301-4/+4
|
* nicer json output which leaks less haskell namesstuebinm2021-09-301-21/+32
|
* simple map-map link dependency checkingstuebinm2021-09-301-4/+7
| | | | | | | | 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-231-22/+26
| | | | | also, configurable log level, which only required relaxing the type system once!
* handle all maps in entire repositoriesstuebinm2021-09-231-22/+26
| | | | (+ checking that paths don't run outside of respositories)
* very naïve handling of directoriesstuebinm2021-09-231-6/+6
|
* use PrettyPrinter morestuebinm2021-09-201-21/+3
|
* typechecking for path depths!stuebinm2021-09-201-8/+9
| | | | | | 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-201-31/+28
| | | | | it is no longer an Either since that wasn't used anyways, but is now also a Reader.
* lint embedded tilesetsstuebinm2021-09-201-2/+4
|
* lint map things that aren't custom propertiesstuebinm2021-09-201-8/+5
|
* lint general map propertiesstuebinm2021-09-201-6/+13
|
* collecting map dependenciesstuebinm2021-09-181-5/+10
|
* moved types into Types.hsstuebinm2021-09-181-3/+4
| | | | it's almost as if there's some structure to this code!