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.

AddInterpreter_1.0.png

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.

DebugWithoutParameters.png

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.

HandlingGlobals.png

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.

LocalFunctionHandling.png

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.

QuickTyping.png

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.

InnerFunctionParameters.png

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.

TypedVariable.png ModuleVariableDeclaration.png

Enhanced outline

The outline now contains new items such as global variables and functions. Also the type of outline elements is displayed if any.

OutlineElements.png

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.