diff options
author | Remko Tronçon <git@el-tramo.be> | 2013-12-30 11:21:45 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2014-01-03 11:09:06 (GMT) |
commit | 26bb5aa9e2f520c3c943797e6143c32e5b16806b (patch) | |
tree | 0caa41938acf53da946847f8803c62e579525af9 /Sluift/Lua/FunctionRegistration.h | |
parent | 0b19dc7292b7672c9fbb711a411c392bc5b2bb34 (diff) | |
download | swift-26bb5aa9e2f520c3c943797e6143c32e5b16806b.zip swift-26bb5aa9e2f520c3c943797e6143c32e5b16806b.tar.bz2 |
Sluift: Add help support
Provide a 'help' function that takes a table/function, and prints help
for it. A structured representation can be retrieved through 'get_help'.
Change-Id: I2b3ce8992943ef30cee2604fba9200feed263fa5
Diffstat (limited to 'Sluift/Lua/FunctionRegistration.h')
-rw-r--r-- | Sluift/Lua/FunctionRegistration.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/Sluift/Lua/FunctionRegistration.h b/Sluift/Lua/FunctionRegistration.h index 0df1da1..74269e2 100644 --- a/Sluift/Lua/FunctionRegistration.h +++ b/Sluift/Lua/FunctionRegistration.h @@ -16,15 +16,19 @@ namespace Swift { namespace Lua { class FunctionRegistration { public: - FunctionRegistration(const std::string& name, lua_CFunction function, const std::string& type); + FunctionRegistration( + const std::string& name, lua_CFunction function, const std::string& type, + const std::string& helpDescription, const std::string& helpParameters, const std::string& helpOptions); ~FunctionRegistration(); }; } } -#define SLUIFT_LUA_FUNCTION(TYPE, NAME) \ + + +#define SLUIFT_LUA_FUNCTION_WITH_HELP(TYPE, NAME, HELP_DESCRIPTION, HELP_PARAMETERS, HELP_OPTIONS) \ static int TYPE##_##NAME(lua_State* L); \ static int TYPE##_##NAME##_wrapper(lua_State* L); \ - static ::Swift::Lua::FunctionRegistration TYPE##_##NAME##_registration( #NAME , TYPE##_##NAME##_wrapper, #TYPE); \ + static ::Swift::Lua::FunctionRegistration TYPE##_##NAME##_registration( #NAME , TYPE##_##NAME##_wrapper, #TYPE, HELP_DESCRIPTION, HELP_PARAMETERS, HELP_OPTIONS); \ static int TYPE##_##NAME##_wrapper(lua_State* L) { \ try { \ return TYPE ## _ ## NAME (L); \ @@ -34,3 +38,6 @@ namespace Swift { } \ } \ static int TYPE ## _ ## NAME (lua_State* L) + +#define SLUIFT_LUA_FUNCTION(TYPE, NAME) \ + SLUIFT_LUA_FUNCTION_WITH_HELP(TYPE, NAME, "", "", "") |