summaryrefslogtreecommitdiff
path: root/lib/LintWriter.hs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* 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)