New & Noteworthy 1.0
Here are the new features available in Lua Development Tools 1.0, released on June 11th, 2013.
Support of Lua 5.2
LDT now provides a Lua 5.2 user experience directly shipped with the product. Which means LDT provide out of the box:
- Embedded Lua 5.2 Execution Environment which provide great user-assistance (content-assist, documentation,...)
- Lua 5.2 Debugger
- Built-in Lua 5.2 interpreter based on JNLua which enable running and debugging applications out of the box.
Note: The debugger need LuaSocket version 2.1.x to work on top of Lua 5.2, see the vm compatibility page.
Support of LuaJIT debug
LDT debugger is now compatible LuaJIT 2.0.x interpreter. LuaJIT is a Just-In-Time Compiler(JIT) for the Lua programming language.
Note: The debugger need LuaSocket version 2.1.x to work on top of LuaJIT, see the vm compatibility page.
Enhanced support of non-standard interpreters
It's now possible to define an interpreter which doesn't handle the -e
option, right from interpreter preferences page.
This option enables to execute a piece Lua before runtime. It was used by LDT to start all debugging sessions. Now it is possible to bootstrap a debug session without it, it makes LDT compatible with more kinds of interpreters, but be aware that in this case the user is responsible for launching the debugger by adding the following code as first statement of its application:
if os.getenv('DEBUG_MODE') then require "debugger"() end
Note: The DEBUG_MODE
environment variable is set only for debug, to avoid to start the debugger for a regular run.
Better user-assistance
Globals detection
LDT is now able to provide you support for globals. First of all, what is a global: when the first occurrence of an identifier in a file is an assignment LDT considers it as a global variable declaration. So globals are now available for completion, parameters are even available for functions.
Function detection
LDT was already detecting local variables, but there were no distinction between functions and other types, which was inconvenient for function parameters. They were not guessed from the code. It is over. Now local functions are handled in current file properly. They are shown in user assistance, with their parameters.
Explicit Variable Description & Typing
It's now possible to type and set a description for a variable by adding a comment before or after its declaration. Typing a variable allow to have auto-completion on it and explicit your code.
Function Parameters Typing
When function parameters are documented with a type using the Lua Documentation Language, they will be available for auto-completion in the function body.
Fluent Variable Type Association
Once a Lua Documentation Language tag such as @type
or @module
is immediately followed by a variable declaration, the declared type
or module type
is associated to the variable.
Enhanced outline
The outline now contains new items such as global variables and functions. Also the type of outline elements is displayed if any.
Integration of lastest Metalua version
Metalua is the key component that analyze the Lua code. LDT now uses the last version of Metalua which the enhance syntax error handling and fix some bugs.