Plugin API: Global objects
Globally available objects
Object Script
Methods
| Method |
Returns |
Description |
| RegisterAction(Category, Caption, Shortcut, Function) |
none |
Register new item under Plugins menu, under additional submenu if
Category is not empty.
Shortcut must be empty or specified
in format [Shift+][Ctrl+][Alt+]Key (at least one of Shift/Ctrl/Alt must be specified).
Example shortcut: Ctrl+Alt+B.
Function is reference to function with a single parameter that will be called
when user clicks the menu item: Function(Sender).
Note that users will be allowed by menu and toolbar customization
to place this action in any other menu or toolbar and reconfigure shortcuts. |
| RegisterDocumentAction(Category, Caption, Shortcut, Function) |
none |
The same as RegisterAction, but this action is only enabled if any
document is open. |
| ConnectSignal(Signal, Function) |
none |
Connects function that needs to be called when specified signal is received. See signals reference. |
| ReadSetting(Name, DefaultVal) |
string |
Reads specified setting from properties.ini. |
| WriteSetting(Name, Value) |
none |
Writes specified setting to properties.ini. |
| CreateScriptableWebKit(Parent, Url, OnCreated) |
ScriptableChromium |
Creates WebKit control. OnCreated is reference to function(Sender,
Browser). See WebKit form example. |
| CreateScriptableJsExecuter(DefaultUrl) |
ScriptableJsExecuter |
Creates JavaScript background executer. See ScriptableJsExecuter example. |
| Message(string) |
none |
Output message to Messages pane. |
| ClearMessages |
none |
Clear Messages pane. |
| HTTPGet(Url, OnComplete) |
ScriptableDownloadThr |
Downloads specified Url and calls referenced function OnComplete when
download is finished: OnComplete(Downloaded_Data). |
| TimeOut(MilliSeconds, OnTimer) |
ScriptableTimer |
Calls referenced function OnTimer after specified time: OnTimer(). |
Properties
| Property |
Type |
Description |
| Settings |
EditorSettings |
Access editor settings. |
| Status |
string |
Get/set application status bar message. |
| Path |
string |
Get plugin's folder path. |
| ProjectSettings |
ProjectSettings |
Get current project settings. |
| DpiScale |
float |
Get Windows DPI scale (1 = 100% Text Zoom). Use to scale any graphical elements created by plugin according to DPI scale. |
| IsDarkTheme |
bool |
Returns true if dark theme used for all GUI. |
Object Editor, class ScriptableEditor
Object Editor represents currently active editor area. Editor areas in other
document windows can be accessed via ScriptableDocumentWindow class.
Methods
| Method |
Returns |
Description |
| SelectAll |
none |
Select all text. |
| BeginEditing |
none |
Enclose multiple text manipulation operations in BeginEditing...EndEditing
to create a single unified Undo action. |
| EndEditing |
none |
See BeginEditing. |
| IsEditing |
bool |
Returns true if inside BeginEditing...EndEditing block. |
| Focus |
none |
Sets keyboard focus to editor. |
| TextPosToCursorPos(TextPos, &X, &Y) |
none |
Converts position in text (where Tab character is considered a single symbol)
to cursor position (where Tab character can be any size as set in settings). |
| CursorPosToTextPos(X, Y, &TextPos) |
none |
Converts cursor position (where Tab character can be any size as set in settings)
to position in text (where Tab character is considered a single symbol). |
| IsLineCollapsed(Y) |
bool |
Returns true if specified line is collapsible and is collapsed. |
| IsLineExpanded(Y) |
bool |
Returns true if specified line is collapsible and is expanded. |
| ToggleLineCollapse(Y) |
none |
Collapses or expands specified line, if the line is collapsible. |
| GetSelectionForUnixNewlines(&SelStart, &SelLen) |
none |
Returns what selection info for editor text would be if Unix style newlines (1 character) were used instead of Windows newlines (2 bytes). |
| ExecAutoCompleteNow(CharStr: string) |
none |
Trigger auto complete. CharStr allows specifying trigger character. Leave CharStr empty for emulating Ctrl+Space. |
Properties
| Property |
Type |
Description |
| Selection |
ScriptableEditorSelection |
Access editor's selection. See ScriptableEditorSelection reference. |
| SelText |
string |
Get/set selection text value. |
| Text |
string |
Get/set editor text. |
| LineCount |
integer |
Get number of text lines. |
| Modified |
bool |
Get/set whether editor text is modified (unsaved). |
| TopLine |
integer |
Get/set top visible editor's line. Changing this property will scroll editor. |
| LinesAsDisplayed[Y] |
string |
Get/set text line. When reading line, Tabs are converted to spaces. |
| Lines[Y] |
string |
Get/set text line. |
Object Document, class ScriptableDocumentWindow
Object Document represents currently active document window (tab).
Other document windows can be accessed via ScriptableDocumentWindows class.
Methods
| Method |
Returns |
Description |
| Activate |
none |
Activate this document window. |
| Save(FileName) |
none |
If FileName is not empty then save as FileName, otherwise default save. |
| Close(NoSaving) |
none |
if NoSaving is true then close document without asking to save if modified,
otherwise default close. |
Properties
| Property |
Type |
Description |
| Editor |
ScriptableEditor |
Access editor area of document window. |
| FileName |
string |
Get/set file name of document. |
| FtpFileName |
string |
Get/set file name of document if file is opened from FTP. |
| IsActive |
bool |
Returns true if document window is active. |
| PreviewTabIndex |
integer |
Get/set index of preview tab (Code Editor/Preview/Horizontal Split/Vertical Split). |
| DocType |
enum |
Get document type. Possible values: dtDefault, dtHTML, dtXML, dtCSS, dtJScript, dtVBScript, dtPerl, dtText, dtWML, dtPHP, dtASP, dtSQL, dtRuby, dtERuby, dtASPX, dtCS, dtSmarty, dtPython, dtApache, dtSass, dtLess. |
| CurrentCodeType |
enum |
Get current code type according to cursor position (e.g. in HTML files there can be multiple code types: HTML, CSS and JavaScript all in single file). Possible values: ltDefault, ltHTML, ltXML, ltCSS, ltJScript, ltWML, ltPHP, ltASP, ltRuby, ltSmarty, ltCS. |
| Encoding |
enum |
Get/set document encoding. Possible values: enAnsi, enUtf8, enUtf8NoBom, enUcs2. |
Object Documents, class ScriptableDocumentWindows
Methods
| Method |
Returns |
Description |
| NewDocument(Extension) |
none |
Create new tab with specified file extension (html, php, js etc). |
| OpenDocument(FileName) |
none |
Open specified file. If FileName is empty then Open Dialog is displayed. |
| TabByFileName(FileName) |
ScriptableDocumentWindow |
Returns reference to document window that contains specified file. |
Properties
| Property |
Type |
Description |
| Count |
integer |
Get number of open document windows (tabs). |
| Tab[i] |
ScriptableDocumentWindow |
Get i-th document window. |
Class ScriptableEditorSelection
To manipulate selection you need to obtain current selection, change it and
then assign changed selection back to editor. Sample:
var Sel = Editor.Selection; //obtain current selection
Sel.SelLength = 0; //change selection properties
Editor.Selection = Sel; //set selection to changed
There are a few gotchas. All selections obtained from a single editor reference
the same object and changing one of them will change all of them. When changing
selection you must manipulate either Line/Column properties or SelStart/Length
properties. You can't mix them, e.g., setting SelStartLine and then SelLength
won't work as expected.
| Properties |
Type |
Description |
| SelStartLine |
integer |
Get/set line in which selection starts. |
| SelStartCol |
integer |
Get/set column in which selection starts. Note that it can be outside the text. |
| SelEndLine |
integer |
Get/set line in which selection ends. |
| SelEndCol |
integer |
Get/set column in which selection ends. Note that it can be outside the text. |
| SelStartColReal |
integer |
Get/set column in which selection starts in text units. Tabs are treated as
a single position unit. Returned position is adjusted to not be outside the text. |
| SelEndColReal |
integer |
Get/set column in which selection starts in text units. See SelStartColReal
for notes. |
| SelStart |
integer |
Get/set position of text in which selection starts in text units. Tabs are treated
as a single position unit, Newlines are treated as two position units. |
| SelLength |
integer |
Get/set selection length in text units. |
Class EditorSettings
| Properties |
Type |
Description |
| TabSize |
integer |
Get Tab size setting. |
| TabsToSpaces |
bool |
Get whether Convert Tabs to spaces is ON. |
| BlockIndent |
integer |
Get Indent size setting. |
| TabIndent |
bool |
Get whether Use TAB key for indenting is ON. |
| AutoIndent |
bool |
Get whether Auto indent is ON. |
| CursorTraverse |
bool |
Get whether Constratin cursor to text if OFF. |
| LeaveTrailSpaces |
bool |
Get whether Remove trailing spaces and tabs if OFF. |
Class ProjectSettings
| Properties |
Type |
Description |
| SelectedProjectName |
string |
Get name of current project. |
| SelectedProjectRoot |
string |
Get root folder of current project. |
| SelectedProjectFileTypes |
string |
Get included file types of current project. |
| SelectedProjectExcludeFilters |
string |
Get exclude filters of current project as multi-line string. |
| SelectedProjectAssetsBrowseDir |
string |
Get folder to use as initial directory for file browse dialogs while this project is active. |
Object Actions, class ScriptableActions
Provides access to all Rapid PHP actions that are triggered from menus, toolbars
and keyboard shortcuts. These actions can be triggered from the script.
Methods
| Method |
Returns |
Description |
| List |
array of string |
Obtain list of Rapid PHP actions. Returns internal action names that serve
as parameters for other methods of this class. |
| GetCaption(Actn) |
string |
Get caption of action. |
| IsChecked(Actn) |
bool |
Get checked state of action. |
| SetChecked(Actn, Value) |
none |
Set checked state for action. |
| IsEnabled(Actn) |
bool |
Get enabled state of action. |
| SetEnabled(Actn, Value) |
none |
Set enabled state for action. |
| Execute(Actn) |
none |
Trigger action. |
| SetIcon(Actn, Icon) |
none |
Set default icon for action. Icon is TBitmap. |
Object WeBuilder
| Properties |
Type |
Description |
| Caption |
string |
Get/set title of main window of IDE. |
| BuildNumber |
integer |
Get IDE's version build number. |
| Version |
string |
Get IDE's version as text. |
Class ScriptableDownloadThr
Do not delete objects of this type manually.
Class ScriptableTimer
Do not delete objects of this type manually. Use Kill method for that.
Methods
| Method |
Returns |
Description |
| Kill |
none |
Stops the timer and deletes this object. |
Class AutoCompleteLibrary
Used to customize PHP frameworks from plugins.
Methods
| Method |
Returns |
Description |
| DeleteLibrary(LibraryName) |
none |
Delete framework. |
| AddPHPLibrary(LibraryName) |
none |
Add new PHP framework. |
| AddPHPEntry(LibraryName, ItemType, Name, Description, Inheritance, Scope, IsStatic, Arguments, ClassName, Returns) |
none |
Add auto-complete item (class, function, property etc) to PHP framework. |
Object AutoComplete, Class ScriptableAutoComplete
Used to interact with auto-complete lists and hints. Generally this class is used when handling auto_complete signal. See examples.
Methods
| Method |
Returns |
Description |
| Clear(Strings) |
none |
Clears auto-complete list. |
| AddItem(Strings, CodeWord, Txt) |
integer |
Add new entry to auto-complete list. |
| GetWordBeforeCursor(AdditionalChars) |
string |
Get word in editor just before text cursor. Word is considered anything consisting from aplhanumeric chars, but additional symbols can be specified in parameter. |
| Count(Strings) |
integer |
Get auto-complete list item count. |
| GetCodeWord(idx) |
string |
Get code word of auto-complete item by index. |
| GetFunctionData(LookupType, &Name, &ObjName, &ObjClass, &ObjSignature, &Param, &Start) |
none |
Parse and return information about code related to current cursor position. LookupType can be "JS", "PHP" or "RUBY". |
| FormatActiveParam(s, ParamNum) |
string |
Process function definition and make specified parameter bold for auto-complete hint. |
Class ScriptableChromium
Methods
| Method |
Returns |
Description |
| Subscribe(ChannelName, Method) |
none |
Referenced Method will be called when JavaScript sends data with
specified channel name to IDE: Method(ChannelName, Data).
Data can be sent from WebKit source with following
JavaScript code: WeBuilderData.Send(ChannelName, Data). Data
returned by Method can be received by JavaScript caller. |
| Unsubscribe(ChannelName) |
none |
Unsubscribe from channel. |
| Send(Title, Data) |
none |
Send data to JavaScript. Data will be received if JavaScript has created
global function WeBuilder_OnData as function(title, data) |
| SendWithCallback(Title, Data, Callback) |
none |
Same as Send() but Callback function will be executed after JavaScript has received the data. Callback is function(data) where data contains return value of WeBuilder_OnData function. |
| ExecuteJavaScript(js) |
none |
Evaluate JavaScript code in browser. |
| GetSource(Callback) |
none |
Request source code from browser and execute Callback function when source received. Callback is function(source). |
Properties
| Property |
Type |
Description |
| OnLoadEnd |
function |
Get/set OnLoadEnd event function. Property type is reference to function(Sender, Browser, Frame, HttpStatusCode, &Result). |
| OnStatusMessage |
function |
Get/set OnStatusMessage event function. Property type is reference to function(Sender, Browser, Value, StatusType, &Result). |
| OnConsoleMessage |
function |
Get/set OnConsoleMessage event function. Property type is reference to function(Sender, Browser, Message, Source, Line, &Result). |
| WebKit |
Chromium |
Get reference to Chromium object. |
| Status |
string |
Get last status message. |
| Url |
string |
Get/set URL. |
Class ScriptableJsExecuter
Methods
| Method |
Returns |
Description |
| ExecuteJavaScriptRequest(JavaScript, Channelname, Params, Callback) |
none |
Executes JavaScript in chromium engine and calls WeBuilder_OnData(Channelname, Params) function.
Leave Channelname empty to generate it.
To return data from Chromium to specified Callback function of plugin, use
WeBuilderData.SendNative(channel, ReturnValue, ErrorMessage). Make sure that channel
matches that sent during WeBuilder_OnData. |
| ExecuteJavaScriptFileRequest(FileName, Channelname, Params, Callback) |
none |
Same as ExecuteJavaScriptRequest but JavaScript code is read from file. |
| ExecuteJavaScriptSimple(JavaScript) |
none |
Executes JavaScript in chromium engine. Does not set up return channel or call WeBuilder_OnData. |
| ExecuteJavaScriptFileSimple(FileName) |
none |
Same as ExecuteJavaScriptSimple but JavaScript code is read from file. |
Properties
| Property |
Type |
Description |
| OnLoadEnd |
function |
Get/set OnLoadEnd event function. Property type is reference to function(Sender, Browser, Frame, HttpStatusCode, &Result). |
| OnStatusMessage |
function |
Get/set OnStatusMessage event function. Property type is reference to function(Sender, Browser, Value, StatusType, &Result). |
| OnConsoleMessage |
function |
Get/set OnConsoleMessage event function. Property type is reference to function(Sender, Browser, Message, Source, Line, &Result). |
| WebKitOSR |
Chromium |
Get reference to the invisible Chromium object. |
| Status |
string |
Get last status message. |
| Url |
string |
Get/set URL. |
| Ready |
bool |
Returns true if Chromium is initialized and ready to execute JavaScript. |
Class Chromium
Methods
| Method |
Returns |
Description |
| Load(url) |
none |
Start loading URL. |
| LoadString(str, url) |
none |
Load data from string. Url specifies document.location.href but it
won't be loaded. |
Class ScriptableJSON
Methods
| Method |
Returns |
Description |
| Parse(JSONString) |
none |
Parses string to JSON object. |
| Stringify() |
none |
Generates JSON string. |
| SetValue(key, Value) |
none |
Sets key/value pair in JSON object. |
| GetValue(key) |
string/integer/bool |
Gets value from JSON object. |
| DeleteKey(key) |
none |
Delete key/value pair from JSON object. |
| HasKey(key) |
bool |
Returns true if key exists in JSON object. |