summaryrefslogtreecommitdiff
path: root/lib/LintWriter.hs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* flipping the output map structurestuebinm2021-10-301-1/+8
| | | | | | | | 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.
* simple map-map link dependency checkingstuebinm2021-09-301-0/+12
| | | | | | | | 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-5/+11
| | | | | also, configurable log level, which only required relaxing the type system once!
* use PrettyPrinter morestuebinm2021-09-201-3/+9
|
* typechecking for path depths!stuebinm2021-09-201-8/+20
| | | | | | 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-51/+29
| | | | | 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-201-0/+1
|
* lint embedded tilesetsstuebinm2021-09-201-5/+2
|
* lint general map propertiesstuebinm2021-09-201-1/+12
|
* collecting map dependenciesstuebinm2021-09-181-2/+18
|
* moved types into Types.hsstuebinm2021-09-181-46/+2
| | | | it's almost as if there's some structure to this code!
* can collect dependencies!stuebinm2021-09-181-10/+37
| | | | | | | 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-181-2/+2
| | | | | | /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-181-4/+6
| | | | | | 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-171-4/+7
| | | | | | | | 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-161-12/+28
| | | | | | | 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 …).
* moving lots of code aroundstuebinm2021-09-161-0/+61
(also renaming things now that concepts seem a bit clearer)