Luacheck is a static analyzer and a linter for Lua. Luacheck detects
various issues such as usage of undefined global variables, unused
variables and values, accessing uninitialized variables, unreachable
code and more. Most aspects of checking are configurable: there are
options for defining custom project-related globals, for selecting set
of standard globals (version of Lua standard library), for filtering
warnings by type and name of related variable, etc. The options can be
used on the command line, put into a config or directly into checked
files as Lua comments.

Luacheck supports checking Lua files using syntax of Lua 5.1, Lua 5.2,
Lua 5.3 and LuaJIT 2.0. Luacheck itself is written in Lua and runs on
all of mentioned Lua versions.
