The RGP Lua Class Browser is a re-implementation in pure Lua of the Class Browser in JW Lua. It displays the available classes from embedded C++ frameworks, along with their methods and properties. As of version 0.70 of RGP Lua, the embedded C++ frameworks are:
finale
: the classes and constants in the PDK Framework for Finale.finenv
: the methods and properties in the finenv
namespace.tinyxml2
: the classes and constants in the tinyxml2 library.The Class Browser is included as rgpluaclassbrowser.lua
in the zip archive of RGP Lua Utilities available on the download
page for RGP Lua.
The rgpluaclassbrowser.lua
script requires version 0.56
or higher of RGP Lua. It also requires the
jwluatagfile.xml
from the zip file. Other than that it has
no dependencies. You may place the two files together anywhere on your
hard drive. Once you have configured the
.lua
file in RGP Lua, it will be available to run.
The edit boxes across the top allow you to filter classes, properties, and methods. The filter is case-insensitive and finds the filter text anywhere in the name. In the example you can see that a filter of “note” has found every class whose name includes the word “note”, ignoring case.
Starting with RGP Lua v.70, the class browser shows deprecation status and first available version for methods and properties. These are based on the PDK Framework documentation and are only as accurate as the documentation is. However, every effort is made to keep the documentation correct and current.
Class Documentation This button launches a browser to the page for the class on the PDK Framework website.
Doc. The Doc.
buttons launch a browser
to the specific method page that is selected in their respective
columns. The Doc.
button for properties launches the page
for the property getter method.
Copy The Copy
button copies the
currently selected item to the clipboard. Items in the
Classes
column are prepended with the namespace. Items in
the Class Methods
column are prepended with namespace and
class name. The goal is to be able to insert them directly into a script
without any additional typing. You can also use cmd+C
(macOS) or ctrl-C
(Windows) instead of pressing this
button.
Double clicking an item or pressing the Enter Key while an item is selected brings up the Details dialog box for that item.
The list boxes in the Class Browser respond to the standard OS keystrokes for navigation: up arrow, down arrow, home, end, etc. You can also type an initial letter and it jumps to the first item starting with that letter.
In addition, the Class Browser list boxes respond to the following keystrokes:
cmd+C
(macOS)
ctrl+C
(Windows)Enter
(brings up the Details dialog box.)You can run the any version of RGP Lua Class Browser with any version
of RGP Lua from 0.56 on. However, for best results you should
always run with the latest version of jwluatagfile.xml
. It
is the version that matches the links on the PDK Framework website.
The latest version (and the version that matches the PDK website) is always available at the download site in the RGP Lua Utilities zip file link.
The Details Dialog appears when you select an item in one of the list
boxes, either with the Enter
key or by double clicking. It
shows the same information as the column under the list box, but it is
wide enough to show the complete information for argument lists and
return types.
The editable text field is initialized with the same value that the Copy button would copy to the clipboard. You can edit it to anything you wish and then copy it from there.
The rest of the dialog shows static information about the class or
method. This information is gathered from the
jwluatagfile.xml
file as well as internal metadata that
RGP Lua provides to the Lua environment. In particular, RGP
Lua (starting with v0.70) provides the following metadata about
each method or property directly:
These values are manually maintained based on the PDK Framework documentation. Every
effort is made to keep them current and accurate, but they should be
treated as information only. Do not use these to control program flow as
there are more reliable approaches to determine the availability of a
particular method or property inside your scripts. (The most
straightforward is checking it for nil
.)