| Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
also, the recursive check layer function slowly approaches something
like readability!
|
|
(suggestions are shown only if they have a Damerau-Levenshtein distance
<= 4, which seems to yield reasonably good results)
|
|
|
|
|
|
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.
|
|
this includes a halfway-reasonable parsing of object layers, as well as
some monad plumbing to get them all in the right place.
|
|
also yet another typeclass™, because why not?
|
|
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.
|
|
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?)
|
|
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.
|
|
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.
|
|
also, configurable log level, which only required relaxing the type
system once!
|
|
|
|
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.
|
|
it is no longer an Either since that wasn't used anyways, but is now
also a Reader.
|
|
|
|
|
|
|
|
|
|
it's almost as if there's some structure to this code!
|
|
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)
|
|
/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
|
|
Adds a PrettyPrint typeclass which operates on Text and should replace
Show, since constantly converting strings from linked lists to arrays
seems somewhat silly.
|
|
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 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 …).
|
|
(also renaming things now that concepts seem a bit clearer)
|