Still plugging away at getting it fit for full usage and a release onto the interweb.

So far today, I’ve tidied up the error handling from the content pipeline plugin, so that any syntax in the Lua Source will come through Visual Studio like C# compile errors (source file, line number and error message). So you get a nice error in your Task List, double click and it takes you to the error. I SO want Lua syntax highlighting in VS, there is several plugins on the net (SimonB wrote a LuaLite (VS2003) while at JAM) but plugins for VS2005 only work with non Express version (at least with out a key from MS?) and of course GSE only works with Express…

Also been working (and will continue until I fall to sleep) on the CLR version of the base Lua libraries. So far today, I’ve got the real essentials, like pairs and ipairs, raw* and most of maths done (still got random and frexp to do, tho thinking of leaving frexp?). Hopefully get table done tonight, leaving string as the big one todo (others like io, i’m probably not going to support in the first release, not sure it makes much sense for a game scripting language so down my list of things todo).

I’m hoping to have first public release at the weekend, main things apart from the library functions, is to write some simple docs, make sure the licenses are okay (I’ll release under MIT I suspect but there are several Lua2IL and Lua5.0 to make sure its all compatible) and at least a sample. I think it will got done by the weekend, but as I’m actually in near a really important milestone at work on HS, its possible I won’t get enough free time.

Th C# API looks a bit like this… to register a C# function to Lua

public class Func : LuaFunction {

Func( LuaState globals) : base(globals) {}

void Execute( LuaState L ){ /* DO STUFF */ } } Globals[”newfunc”] = new Func(Globals);

There is also a method proxy system for auto argument marshaling so for example

Globals[”max”] = new MethodProxy(Globals, typeof(Math).GetMethod(”Max”, new Type[] { typeof(int), typeof(int) }));

Would register Math.Max C# function into lua global max function