@trystan.org
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
n.
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.