Get Functions Metadata in Scripts

The built-in function get_fn_metadata_list returns an array of object maps, each containing the metadata of one script-defined function in scope.

get_fn_metadata_list is defined in the LanguageCorePackage, which is excluded when using a raw Engine.

get_fn_metadata_list has a few versions taking different parameters:

get_fn_metadata_list()returns an array for all script-defined functions
get_fn_metadata_list(name)returns an array containing all script-defined functions matching a specified name
get_fn_metadata_list(name, params)returns an array containing all script-defined functions matching a specified name and accepting the specified number of parameters

Functions from the following sources are returned, in order:

  1. Encapsulated script environment (e.g. when loading a module from a script file),
  2. Current script,
  3. Modules registered via Engine::register_global_module (latest registrations first)
  4. Modules imported via the import statement (latest imports first),
  5. Modules added via Engine::register_static_module (latest registrations first)

The return value is an array of object maps (so get_fn_metadata_list is also not available under no_index or no_object), containing the following fields.

namespacestringyesthe module namespace if the function is defined within a module
accessstringno"public" if the function is public,
"private" if it is private
namestringnofunction name
paramsarray of stringsnoparameter names
this_typestringyesrestrict the type of this if the function is a method
is_anonymousboolnois this function an anonymous function?
commentsarray of stringsyesdoc-comments, if any, one per line