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 WeBuilder 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 WeBuilder 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. |