Luacheck module

Use local luacheck = require "luacheck" to import luacheck module. It contains the following functions:

  • luacheck.get_report(source): Given source string, returns analysis data (a table).

  • luacheck.process_reports(reports, options): Processes array of analysis reports and applies options. reports[i] uses options, options[i], options[i][1], options[i][2], … as options, overriding each other in that order. Options table is a table with fields similar to config options; see Config options. Analysis reports with field fatal are ignored. process_reports returns final report, see Report format.

  • luacheck.check_strings(sources, options): Checks array of sources using options, returns final report. Tables with field fatal within sources array are ignored.

  • luacheck.check_files(files, options): Checks array of files using options, returns final report. Open file handles can passed instead of filenames, in which case they will be read till EOF and closed.

  • luacheck.get_message(issue): Returns a string message for an issue, see Report format.

luacheck._VERSION contains Luacheck version as a string in MAJOR.MINOR.PATCH format.

Using luacheck as a function is equivalent to calling luacheck.check_files.

Report format

A final report is an array of file reports plus fields warnings, errors and fatals containing total number of warnings, errors and fatal errors, correspondingly.

A file report is an array of issues (warnings or errors). If a fatal error occurred while checking a file, its report will have fatal field containing error type and msg field containing error message.

An issue is a table with field code indicating its type (see List of warnings), and fields line, column and end_column pointing to the source of the warning. name field may contain name of related variable. Issues of some types can also have additional fields:

Codes

Additional fields

011

msg field contains syntax error message.

111

module field indicates that assignment is to a non-module global variable.

122, 142, 143

indirect field indicates that the global field was accessed using a local alias.

122, 142, 143

field field contains string representation of related global field.

211

func field indicates that unused variable is a function.

211

recursive field indicates that unused function is recursive.

211

mutually_recursive field is set for unused mutually recursive functions.

314

field field contains string representation of ununsed field or index.

4..

prev_line and prev_column fields contain location of the overwritten definition.

521

label field contains label name.

631

line_ending field contains "comment" or "string" if line ending is within a comment or a string.

631

max_length field contains maximum allowed line length.

Other fields may be present for internal reasons.