A whole-project health report from the same analysis the editor uses — net message health, hook collisions, unknown globals and the files worth looking at.
Every other feature answers “what is wrong with this line”. None of them answer
“what shape is this codebase in”, and a Problems panel with four thousand
entries in it does not either.
glua doctor
p-city 932 files · 236,345 linesLayout────────────────── realms 246 client · 194 server · 492 shared classes 46 effects · 89 entities · 202 weaponsHealth────────────────── net messages ! 32 13 with no handler, 19 nothing sends hook clashes ! 13 same event and identifier, overlapping realms timer clashes ! 3 same name, one silently replaces the other unknown names ! 197 globals defined nowhere we can see findings 2,714 1793 unused-local, 350 undefined-global
Nothing here is new analysis. Every number comes from an index that already
existed to answer some per-line question; the report just asks a different one.
A single self-contained file with no scripts and no external requests, so it can
be committed, attached to a pull request, or opened by someone who does not have
the extension. It follows the reader’s light or dark preference.
Ranked by findings, then size. Where to start, rather than an alphabetical
wall.
The report reads every indexed file, so it costs about what a workspace-wide
lint does. Syntax trees are released as it goes, so memory stays flat on a
large project, and in the editor it yields between batches so nothing else
waits on it.
If you have pointed at a framework’s source, its
files are indexed but excluded from every total here. A hook only ULib fires, an
entity only DarkRP ships, or two of a dependency’s own registrations clashing
with each other are not this project’s, and putting them in a report about your
codebase would only be noise.Relationships that cross the line still resolve: a net message you send and a
dependency handles counts as handled.