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