Module:Sandbox/Aidan9382/CodeAnalysis/doc

From English Wikipedia @ Freddythechick


This function provides basic analysis of module code, pointing out any unused variables or unexpected globals. Note that just because this module points out certain behaviour does not neccessarily mean the behaviour is wrong nor needs correcting, but is rather a guide.

The code of this is mostly lifted from https://github.com/9382/Dump/tree/main/LuaObfuscator, which in turn lifts a lot of code from https://github.com/stravant/LuaMinify.

Usage

This module can be required and used from the Debug console, like the following: <syntaxhighlight lang=lua inline>require("Module:Sandbox/Aidan9382/CodeAnalysis").run()</syntaxhighlight>. The module will then log any behaviour it notices. The function can be provided a string argument to specify a target page other than the current page.

This module can also be used via templates using #invoke:, like the following: <syntaxhighlight lang=wikitext inline>

Basic code analysis for Module:Sandbox/Aidan9382/CodeAnalysis
Scope Message
Scope starting line 124 i is defined but never referenced
Entire script 9 local variables called _ were defined but never referenced, likely intentionally
Entire script Global variable print was referenced or defined, yet isn't a standard global

</syntaxhighlight>. The module will then produce a wikitable of anything it notes within the code. An argument can be provided to the first positional parameter to specify a certain page to analyse.

Examples

Basic code analysis for Module:Sandbox/Aidan9382/CodeAnalysis
Scope Message
Scope starting line 124 i is defined but never referenced
Entire script 9 local variables called _ were defined but never referenced, likely intentionally
Entire script Global variable print was referenced or defined, yet isn't a standard global
Basic code analysis for Module:Wikitext Parsing
Scope Message
Main scope startswith is defined but never referenced
Scope starting line 403 Variable _ is referenced, despite the name implying it is unused
Entire script 3 local variables called _ were defined but never referenced, likely intentionally
Basic code analysis for Module:Banner shell
Scope Message
Scope starting line 94 raw_args is defined but never referenced
Entire script 1 local variable called _ was defined but never referenced, likely intentionally