Lua is a small but expressive programming language developed at PUC-Rio in Brazil. It is foremost an imperative language but also provides functional programming facilities and implements the lambda calculus. With some effort, the language can even be extended to support object oriented features such as inheritance. It is fast, featuring a unique register based virtual machine, and small, the interpreter plus standard libraries are around 300KB. A number of 3rd party add-ons are beginning to emerge including some providing COM and .NET interoperability.

Update: 1-13-07

There has been some recent questions as to plans for intellisense features. Various intellisense features such as member completion on Lua tables are currently under implementation. Basic functionality is working. However, there are some complex issues that need to be solved before it's a practical and usable implementation. Many difficulties stem from the fact that Lua is dynamically typed. That is, given a chunk such as the example below, it's somtimes impossible to fully resolve a variable to display intellisense information.
local n
local S = {}
local T = { foo = 1 }
if x then n = S else n = T end
At the point the programmer types the '.' character, we want to display the named members of n. However, x may be impossible to resolve outside of the runtime. Therefore, the members of n are ambiguous. The current plan is to have n = T ∩ S or T U S. The conservative approach is the intersection of S and T. The downside is that foo would not show as a member given that implementation. If the union of S and T was used then foo would be shown but may result in a runtime error. I may end up trying both to see which is more usable in a practical setting rather than focusing on correctness. Ant any rate, that's the current status. Expect something within the next month.

VS 2005 Lua Language Integration Pack

This package implements a Lua lexer and parser that generate C# code to integrate with the Managed Package Framework. Currently, the package provides syntax highlighting, Lua project support, automatic code regions/code hiding, MSBuild integration.

All binaries, source code and documentation for this project are maintained at LuaForge.

Download Files

If you're interested in contributing to this project please e-mail me at trystan@trystan.org. This software is free software under the MIT license.