## ko

### Classes

class objectTimer

### Constructor

objectTimer(instance, func, args)

### Class variables

args - args

func - func

instance - instance

interval - window.setInterval()

running - Boolean

timeout - window.setTimeout()

timer - Number

### Class functions

free()

monitor()

startInterval(timer)

startTimeout(timer)

stop(timer)

stopInterval()

stopTimeout()

## ko.abbrev

### Functions

expandAbbrev(abbrev, lang, sublang)

Expands the abbreviation, if any, at the current cursor position.

Arguments

abbrev - String

Optional. The abbreviation to expand. If not given, then the current selection or word before the cursor is used.

lang - String

The language name to scope the search. Optional.

sublang - String

The sub-language name top scope the search. Optional.

Returns - Boolean

findAbbrevSnippet(abbrev, lang, sublang)

Find a snippet for the given abbreviation name. Abbreviations used for snippets are looked for in "Abbreviations" groups in these places: 1. the current project (if any) 2. the toolbox 3. the shared toolbox (if any) And for these languages: A. the current buffer sub-lang (for multi-lang files) B. the current buffer lang (if different than A) C. the "General" lang (i.e. not language-specific)

Arguments

abbrev - String

The abbreviation name.

lang - String

The language name to scope the search. Optional. If not given, then the language of the current view is used. Specify "General" to *not* search for a lang-specific abbreviation.

sublang - String

The sub-language name top scope the search. This can be relevant for multi-language files (e.g. HTML can have HTML and JavaScript and CSS). Optional. If not given, then the sub-lang of the current cursor position in the current view is used. Specify "General" to *not* search for a sub-lang-specific abbreviation.

Returns - Components.interfaces.koITool

insertAbbrevSnippet(snippet, view)

Insert an abbreviation snippet into a buffer.

Arguments

snippet - Components.interfaces.koITool

The snippet part to insert. You can use `ko.abbrev.findAbbrevSnippet()` to get one.

view - Components.interfaces.koIView

The buffer view in which to insert the snippet. Optional. If not specified then the current view is used.

## ko.browse

### Functions

aspnMailingList(topic)

show mailing list archives on ASPN that are related to the topic

Arguments

topic - String

browseTag(tag)

browse to a predefined url on activestate.com see tag2uri in ko.browse

localHelp(app)

show the url defined in "localHelpFile" in an instance of koIAppInfoEx

Arguments

app - String

the app identifier from the CID of a koIAppInfoEx implementation (eg. @activestate.com/koAppInfoEx?app=Perl)

openUrlInDefaultBrowser(url, browser)

open the given url or complain appropriately

Arguments

url - String

browser - String

optional, retreived from prefs if not used

showCommandIds()

show a list of command id's in the browser

showKeybindings()

show a list of keybindings in the browser

updateHelpLanguagesPopup()

Hide or show the local help entries in the Help->Languages popup depending on whether an actual help file to launch can be found.

webHelp(app)

show the url defined in "webHelpURL" in an instance of koIAppInfoEx

Arguments

app - String

the app identifier from the CID of a koIAppInfoEx implementation (eg. @activestate.com/koAppInfoEx?app=Perl)

## ko.codeintel

### Functions

linkCurrentProjectWithBuffer(ciBuffer)

Link the current Komodo project with the provided codeintel buffer. Note: See bug 88841 for details on why this is necessary.

trigger(view)

Trigger a completion (i.e. an autocomplete or calltip session) if appropriate.

## ko.commands

### Functions

doCode(cmdId, code)

doCodeAsync(cmdId, code)

doCommand(command)

Returns - rc

doCommandAsync(command, event)
Arguments

event - Event

Returns - Boolean

setCommandEnabled(id, node, supported, enabled)
Arguments

node - top.document.getElementById()

updateCommand(command, commandNode, controller)
Arguments

controller - top.document.commandDispatcher.getControllerForCommand()

Returns - found

updateCommandset(commandset)

## ko.dialogs

### Variables

yesNo()

### Functions

alert(prompt, text, title, doNotAskPref, options)
Arguments

options - String

authenticate(title, message, loginname, allowAnonymous, allowPersist)

Returns - ko.dialogs.authenticate2()

authenticate2(prompt, server, username, allowAnonymous, title, login)

Returns - Object

customButtons(prompt, buttons, response, text, title, doNotAskPref, style)
Arguments

style - String

Returns - obj.response

editEnvVar(name, value, title, mruName, interpolateValues)
Arguments

mruName - String

interpolateValues - Boolean

handleEnterKey()

internalError(error, text, exception)

okCancel(prompt, response, text, title, doNotAskPref, helpTopic)

Returns - obj.response

pickIcon()

pickPreview(url, language, mode)
Arguments

mode - String

Returns - Object

progress(processor, prompt, title, is_cancellable, cancel_warning, modal)
Arguments

is_cancellable - Boolean

modal - Boolean

prompt(prompt, label, value, title, mruName, validator, multiline, screenX, screenY, tacType, tacParam, tacShowCommentColumn, selectionStart, selectionEnd)

prompt2(prompt, label1, value1, label2, value2, title, mruName1, mruName2, validator, multiline1, multiline2, screenX, screenY)

renameFileWrapper(currentName)

Returns - newName

selectFromList(title, prompt, items, selectionCondition, stringifier, doNotAskPref, yesNoCancel, buttonNames)
Arguments

selectionCondition - String

yesNoCancel - Boolean

yesNo(prompt, response, text, title, doNotAskPref, helpTopic)

Returns - obj.response

yesNoCancel(prompt, response, text, title, doNotAskPref, style, helpTopic)
Arguments

response - String

style - String

Returns - obj.response

## ko.dragdrop

### Variables

genericSupportedFlavours - Array

KoDropData - KomodoDropData

Class instance to hold dropped Komodo data.

windowSupportedFlavours - this.genericSupportedFlavours.concat()

### Functions

canDrop(event, session)
Arguments

event - Event

Returns - Boolean

convertKoDropData(koDropDataList)

Convert the Komodo dropped data - this may involve: o viewing the source of HTTP urls o converting mapped urls o treating dropped URLs as text

Arguments

koDropDataList - Array

- Array of KomodoDropData items.

Returns - Array

focusWindow()

isSupportedDropFlavour(flavour)

Returns - Boolean

onDragOver(event)
Arguments

event - Event

Returns - Boolean

onDrop(event)
Arguments

event - Event

Returns - Boolean

openDroppedUrls(koDropDataList)

Open all Komodo dropped files or URLs and then return the unhandled list of koDropData items.

Arguments

koDropDataList - Array

- Array of KomodoDropData items.

Returns - Array

unpackDropData(dataTransfer, acceptedFlavours)

Unpack the dropped data into a Komodo specific data structure.

Arguments

dataTransfer - Components.interfaces.nsIDOMDataTransfer

- The data.

acceptedFlavours - Array

- Optional - list of supported data types.

Returns - Array

## ko.eggs

### Functions

boing()

## ko.filepicker

### Functions

browseForDir(textbox)

A dialog to pick a directory, and put the directory path into a XUL textbox.

Arguments

textbox - Element

browseForExeFile(defaultDirectory, defaultFilename, title)

Pick an executable file for open.

Arguments

title - String

Returns - String

browseForFile(defaultDirectory, defaultFilename, title, defaultFilterName, filterNames)

Browse for a file.

Returns - String

browseForFiles(defaultDirectory, defaultFilename, title, defaultFilterName, filterNames)

Pick multiple files.

Arguments

defaultDirectory - ko.uriparse.dirName()

title - String

Returns - Array

browseForRemoteDir(textbox)

A dialog to pick a remote directory and put the path into a XUL textbox.

Arguments

textbox - Element

getFolder(defaultDirectory, prompt)

Pick a directory/folder.

Returns - String

deprecated openExeFile(defaultDirectory, defaultFilename, title)

DEPRECATED: Same as ko.filepicker.browseForExeFile.

Returns - ko.filepicker.browseForFile.apply()

deprecated openFile(defaultDirectory, defaultFilename, title, defaultFilterName, filterNames)

DEPRECATED: Same as ko.filepicker.browseForFile.

Returns - ko.filepicker.browseForFile.apply()

deprecated openFiles(defaultDirectory, defaultFilename, title, defaultFilterName, filterNames)

DEPRECATED: Same as ko.filepicker.browseForFiles.

Returns - ko.filepicker.browseForFiles.apply()

openRemoteFiles(defaultUrl, defaultFilename, defaultFilterName, filterNames)

Open remote file(s) Same parameters meanings as "filepicker_remoteFileBrowser" (above) Returns nothing. Note: The files will be opened through this function call

remoteFileBrowser(defaultUrl, defaultFilename, mode, title, defaultFilterName, filterNames, helpTag)

Browse for remote file(s)

Arguments

defaultUrl - currentView.koDoc.file.URI

defaultFilename - String

mode - Components.interfaces.nsIFilePicker.modeOpen

title - _bundle.GetStringFromName()

defaultFilterName - Array

filterNames - Array

helpTag - String

Returns - Object

saveAsRemoteFiles(defaultUrl, defaultFilename, defaultFilterName, filterNames)

Choose remote filename to save as Same parameters meanings as "filepicker_remoteFileBrowser" (above) Returns the remote url of the selected file, or null if the dialog is cancelled.

saveFile(defaultDirectory, defaultFilename, title, defaultFilterName, filterNames)

Pick a file for save.

Arguments

defaultDirectory - ko.uriparse.dirName()

title - String

Returns - String

## ko.fileutils

### Functions

showDiffs(fname1, fname2)
Arguments

fname1 - fname1.replace()

fname2 - fname2.replace()

## ko.help

### Functions

alternate()

Launches the alternate help command.

language(searchTerm)

Opens language specific help for the current buffer.

Arguments

searchTerm - String

Open language help for this search term.

open(page)

Open the Komodo help window.

Arguments

page - String

A page tag as defined in toc.xml

viewErrorLog()

Open the Komodo error log for viewing.

## ko.history

### Variables

_recently_did_history - Boolean

### Functions

_go_to_location(loc, on_load_failure)

_handle_closing_view(event)
Arguments

event - Event

_history_move(go_method_name, check_method_name, delta, explicit)

Common function for moving forward or back

Arguments

go_method_name - String

either 'go_back' or 'go_forward', used to make this routine work for both directins.

check_method_name - String

either 'can_go_back' or 'can_go_forward', Same rationale as go_method_name

delta - Number

# of hops to make

explicit - Boolean

if true, the user pressed the "Recent Locations" button. Otherwise they hit the go_back or go_forward command.

curr_session_name()

Returns - _curr_session_name

destroy()

history_back(delta, explicit)

history_forward(delta, explicit)

init_popup_menu_recent_locations(event)
Arguments

event - Event

move_to_loc_before_last_jump(view, moveToFirstVisibleChar)

note_curr_loc(view, check_section_change)

Note the current location.

Arguments

view - view

An optional view in which to get the current location. If not given the current view is used.

check_section_change - Boolean

Returns - koILocation

note_loc_unless_history_move(view)

Note the current location from functions like view.history.setMostRecentView

Arguments

view - view

An optional view in which to get the current location. If not given the current view is used.

Returns - koILocation

observe(subject, topic, data)

open_rctab(idx)

rctabs_build_menu(menupopup)

restore_prefs(prefs)

save_prefs(prefs)

tabIndex_for_view(view)

Returns - Number

## ko.hyperlinks

### Variables

args - args

enabled - prefs.getBooleanPref()

enabledPrefName - String

endPos - endPos

func - jump_fn

handler - handler

indic_color - indic_color

indic_style - indic_style

lang_names - lang_names

name - name

startPos - startPos

### Functions

addHandler(handler)

Add a handler to the list of known hyperlink handlers.

Arguments

handler - ko.hyperlinks.BaseHandler

- The handler to add.

getAllHandlers()

Return a copy of the available hyperlink handlers.

Returns - Array

getHandlersForLang(lang_name)

Get the available hyperlink handlers for the given language name, or all hyperlink handlers when lang is not set.

Returns - Array

getHandlerWithName(name)

Return the handler with this name from the list of known hyperlink handlers.

Arguments

name - String

- The handler name to find.

Returns - ko.hyperlinks.BaseHandler

removeHandler(handler)

Remove this handler from the list of known hyperlink handlers.

Arguments

handler - ko.hyperlinks.BaseHandler

- The handler to remove.

show(view, position, reason)

Show any available hyperlink at the position in the view.

Arguments

view - Components.interfaces.koIScintillaView

View to check.

position - Number

Position in the scimoz editor.

reason - String

What the triggering event reason was, can be one of "keypress" or "mousemove".

Returns - ko.hyperlinks.BaseHandler

### Classes

class BaseHandler

The base hyperlink handler class. Handlers are responsible for checking to see if an editor position is a hyperlink and then highlighting the hyperlink within the editor.

### Constructor

BaseHandler(name, jump_fn, lang_names, indic_style, indic_color)
Arguments

name - String

A unique name of the hyperlink handler.

jump_fn - Function

Will be called when the user clicks on the jump point. The matching (or replaced) hyperlink value is the only argument passed to this function.

lang_names - {array

Optional - If set, the handler will only show hyperlinks when the editor language is one of these language names.

indic_style - Number

Optional - Indicator style, see scimoz.INDIC_*

indic_color - Number

Optional - Indicator color (BGR), i.e. 0xFFCC33

### Class functions

dwell(view, hyperlink)

Called when the mouse dwells on this hyperlink.

Arguments

view - Components.interfaces.koIScintillaView

The view instance.

hyperlink - ko.hyperlinks.Hyperlink

The hyperlink instance.

jump(view, hyperlink)

Activate this hyperlink instance.

Arguments

view - Components.interfaces.koIScintillaView

The view instance.

hyperlink - ko.hyperlinks.Hyperlink

The hyperlink instance.

remove(view, hyperlink, reason)

Remove this hyperlink instance.

Arguments

view - Components.interfaces.koIScintillaView

The view instance.

hyperlink - ko.hyperlinks.Hyperlink

The hyperlink instance.

reason - String

What the triggering event reason was, can be one of "keyup", "mousemove", "mouseup" or "blur".

Returns - Boolean

setHyperlink(view, startPos, endPos, args)

Set a hyperlink at this position.

Arguments

view - Components.interfaces.koIScintillaView

View to mark.

startPos - Number

Scimoz position for the start of the hyperlink.

endPos - Number

Scimoz position for the end of the hyperlink.

args - Array

Optional - Array of args to pass to the function.

Returns - ko.hyperlinks.Hyperlink

show(view, scimoz, position, line, lineStartPos, lineEndPos, reason)

Try and show a hyperlink at the current position in the view.

Arguments

view - Components.interfaces.koIScintillaView

View to check.

scimoz - Components.interfaces.ISciMoz

Scimoz for the view.

position - Number

Position in the scimoz editor.

line - String

The current line from the editor.

lineStartPos - Number

Scimoz position for the start of the line.

lineEndPos - Number

Scimoz position for the end of the line.

reason - String

What the triggering event reason was, can be one of "keypress" or "mousemove".

Returns - Boolean

class ColorPickerHandler

### Constructor

ColorPickerHandler()

### Class variables

named_css_colors - Array

### Class functions

colorToHex(color)

Returns - color_hex

jump(view, hyperlink)

Activate this hyperlink instance.

Arguments

view - Components.interfaces.koIScintillaView

The view instance.

hyperlink - ko.hyperlinks.Hyperlink

The hyperlink instance.

remove(view, hyperlink, reason)

Remove this hyperlink instance.

Arguments

view - Components.interfaces.koIScintillaView

The view instance.

hyperlink - ko.hyperlinks.Hyperlink

The hyperlink instance.

reason - String

What the triggering event reason was, can be one of "keyup", "mousemove", "mouseup" or "blur".

Returns - Boolean

rgb2hex(rgb_color)

Returns - match.join()

show(view, scimoz, position, line, lineStartPos, lineEndPos, reason)

Try and show a hyperlink at the current position in the view.

Arguments

view - Components.interfaces.koIScintillaView

View to check.

scimoz - Components.interfaces.ISciMoz

Scimoz for the view.

line - String

The current line from the editor.

lineStartPos - Number

Scimoz position for the start of the line.

lineEndPos - Number

Scimoz position for the end of the line.

reason - String

What the triggering event reason was, can be one of "keypress" or "mousemove".

Returns - ko.hyperlinks.Hyperlink

showColorPicker(view, hyperlink)

class GotoDefinitionHandler

A goto defintion hyperlink handler.

### Constructor

GotoDefinitionHandler()

### Class variables

constructor

enabled - prefSet.getBooleanPref()

### Class functions

destroy()

dwell(view, hyperlink)

Called when the mouse dwells on this hyperlink.

Arguments

view - Components.interfaces.koIScintillaView

The view instance.

hyperlink - ko.hyperlinks.Hyperlink

The hyperlink instance.

observe(prefSet, prefName, prefSetID)

remove(view, hyperlink, reason)

Remove this hyperlink instance.

Arguments

view - Components.interfaces.koIScintillaView

The view instance.

hyperlink - ko.hyperlinks.Hyperlink

The hyperlink instance.

reason - String

What the triggering event reason was, can be one of "keyup", "mousemove", "mouseup" or "blur".

Returns - Boolean

show(view, scimoz, position, line, lineStartPos, lineEndPos, reason)

Try and show a hyperlink at the current position in the view.

Arguments

view - Components.interfaces.koIScintillaView

View to check.

scimoz - Components.interfaces.ISciMoz

Scimoz for the view.

line - String

The current line from the editor.

lineStartPos - Number

Scimoz position for the start of the line.

lineEndPos - Number

Scimoz position for the end of the line.

reason - String

What the triggering event reason was, can be one of "keypress" or "mousemove".

Returns - ko.hyperlinks.Hyperlink

class Hyperlink

A hyperlink instance created by a handler and set on the view.

### Constructor

Hyperlink(handler, startPos, endPos, args)
Arguments

handler - ko.hyperlinks.BaseHandler

- Handler that made it.

startPos - Number

Scimoz position for the start of the hyperlink.

endPos - Number

Scimoz position for the end of the hyperlink.

args - Array

Optional - Array of args to pass to the function.

### Class functions

dwell(view)

Called when the mouse dwells on this hyperlink.

Arguments

view - Components.interfaces.koIScintillaView

The view instance.

jump(view)

Activate this hyperlink.

Arguments

view - Components.interfaces.koIScintillaView

The view instance.

remove(view, reason)

Remove this hyperlink.

Arguments

view - Components.interfaces.koIScintillaView

The view instance.

reason - String

What the triggering event reason was, can be one of "keyup", "mousemove", "mouseup" or "blur".

Returns - Boolean

class ImagePreviewHandler

### Constructor

ImagePreviewHandler(name, regex, fn, replace_str, lang_names, indic_style, indic_color)

### Class functions

dwell(view, hyperlink)

Called when the mouse dwells on this hyperlink.

Arguments

view - Components.interfaces.koIScintillaView

The view instance.

hyperlink - ko.hyperlinks.Hyperlink

The hyperlink instance.

remove(view, hyperlink, reason)

Remove this hyperlink instance.

Arguments

view - Components.interfaces.koIScintillaView

The view instance.

hyperlink - ko.hyperlinks.Hyperlink

The hyperlink instance.

reason - String

What the triggering event reason was, can be one of "keyup", "mousemove", "mouseup" or "blur".

Returns - Boolean

class RegexHandler

### Constructor

RegexHandler(name, findRegex, fn, replace_str, lang_names, indic_style, indic_color)
Arguments

name - String

A unique name of the hyperlink handler.

findRegex - RegExp

Regular expression used to find the hyperlink.

fn - Function

Will be called when the user clicks on the jump point. The matching (or replaced) hyperlink value is the only argument passed to this function.

replace_str - {string

Optional - If set, will be used to change the matching text into a different value, similar to str.replace(findRegex, replace_str), so you can use the JavaScript regular expression positions: $1, $2, etc... in the string.

lang_names - {array

Optional - If set, the handler will only show hyperlinks when the editor language is one of these language names.

indic_style - Number

Optional - Indicator style, see scimoz.INDIC_*

indic_color - Number

Optional - Indicator color (BGR), i.e. 0xFFCC33

### Class variables

findRegex - findRegex

limit_to_styles - styleNumbers

regex_match - match

replace_str - replace_str

### Class functions

limitToTheseStyles(styleNumbers)

When checking for a hgyperlink match, the style at the cursor position must match one one of these values.

Arguments

styleNumbers - Array

- List of style numbers.

show(view, scimoz, position, line, lineStartPos, lineEndPos, reason)

Try and show a hyperlink at the current position in the view.

Arguments

view - Components.interfaces.koIScintillaView

View to check.

scimoz - Components.interfaces.ISciMoz

Scimoz for the view.

position - Number

Position in the scimoz editor.

line - String

The current line from the editor.

lineStartPos - Number

Scimoz position for the start of the line.

lineEndPos - Number

Scimoz position for the end of the line.

reason - String

What the triggering event reason was, can be one of "keypress" or "mousemove".

Returns - ko.hyperlinks.Hyperlink

## ko.inputBuffer

Input buffering When you need to capture user input while a slow XUL window is loading you can use the input buffer. Usage: - in some JS code: ko.inputBuffer.start() // open XUL window - in slow XUL window onload handler: var contents = ko.inputBuffer.finish(); // use the contents somehow

### Variables

id - String

### Functions

finish()

Returns - contents

focus(event)
Arguments

event - Event

start()

## ko.interpolate

Utility methods to easily use the KoIInterpolationService from JavaScript. Basically you can use the ko.interpolate.interpolate() method to iterpolation special '%'-escape codes in a given list of strings. See koInterpolationService.py (or play around with "run commands") for an authoritative description of available escape codes. How to interpolate a couple of strings (mystringa, mystringb). You can do as many strings as you want. var imystringa = null; var imystringb = null; try { var istrings = ko.interpolate.interpolate( <ref-to-komodo.xul>, [mystringa, mystringb], // codes are not bracketed [mystringc, mystringd], // codes are bracketed <optional-query-title>); imystringaForUse = istrings[0]; imystringaForDisplay = istrings[1]; imystringbForUse = istrings[2]; imystringbForDisplay = istrings[3]; imystringcForUse = istrings[4]; imystringcForDisplay = istrings[5]; imystringdForUse = istrings[6]; imystringcForDisplay = istrings[7]; } catch (ex) { var errno = lastErrorSvc.getLastErrorCode(); if (errno == Components.results.NS_ERROR_ABORT) { // Command was cancelled. } else if (errno == Components.results.NS_ERROR_INVALID_ARG) { var errmsg = lastErrorSvc.getLastErrorMessage(); alert("Could not interpolate:" + errmsg); } else { log.error(ex); alert("There was an unexpected error: " + ex); } }

### Functions

activeProjectPath()

Returns - projectFile

currentFilePath()

Returns - String

currentFileProjectPath()

Returns - projectFile

getBlockOffsets(s, bracketed)

Return a list of start and end offsets of interpolation code blocks into the given strings "s".

Returns - offsets

getViewData(editor, viewData)

A utility function to retrieving specific view data required by Interpolate_interpolate(). "editor" is a reference to the komodo.xul window. "viewData" (optional) is a object possibly containing overriding values for some of the view data.

Arguments

viewData - Object

Returns - viewData

getWordUnderCursor(scimoz)

Return the current word from the current scimoz character position.

Arguments

scimoz - Components.interfaces.ISciMoz

(Optional) The scimoz editor to retireive the word from.

Returns - String

interpolate(editor, strings, bracketedStrings, queryTitle, viewData)

Interpolate '%'-escape codes in the given list(s) of strings. "editor" is a reference the komodo.xul window. "strings" is a list of raw strings to interpolate. "bracketedStrings" is a list of raw strings to interpolate, using the bracketed form "queryTitle" (optional) is a title for the possible query dialog raised during interpolation. "viewData" (optional) allows one to override specific view data used for interpolation. By default view data is retrieved from the current view. This may not always be appropriate. It may be an object with one or more of the following attributes: "fileName" is the filename of the current file (null, if N/A); "lineNum" is the current line number (0, if N/A); "word" is the current word under cursor (null if none); "selection" is the current selection (null if none). On success, this function returns a *double* list of interpolated strings: For each string in "strings" and "bracketedStrings" two strings are returned. The first is the interpolated string for use and the second for *display*. In most cases these are the same but they may differ, for example, if a password query response was interpolated into the string which should not be displayed in the Komodo UI. Otherwise an exception is raised and an error set on the last error service: koILastError errno reason ----------------------- ----------------------------------------- NS_ERROR_ABORT User cancelled the query dialog. NS_ERROR_INVALID_ARG A normal interpolation failure because of invalid interp code usage.

Arguments

viewData - ko.interpolate.getViewData()

Returns - istrings

interpolateString(s, bracketed, queryTitle)

Interpolate '%'-escape codes in the given string.

Arguments

s - String

The string to interpolate.

bracketed - Boolean

(optional) Whether "s" uses the bracketed interpolate format

queryTitle - String

(optional) Title for any query dialogs raised during interpolation.

Returns - String

deprecated interpolateStrings(s, bracketed, queryTitle)

DEPRECATED: [DEPRECATED] Interpolate the given string.

Returns - ko.interpolate.interpolateString()

isWordCharacter(ch)

## ko.isearch

### Variables

controller - ISController

## ko.keybindings

### Variables

_knownconfigs - Array

commanditems

currentConfiguration - gPrefSvc.prefs.getStringPref()

currentPrefixString - String

currentScheme - this.keybindingSchemeService.getScheme()

document - document

inPrefixCapture - Boolean

keybindingSchemeService

keyDownLabels

keylabel2keysequence - keylabel2keysequence

keysequence2keylabel - keysequence2keylabel

prefset - gPrefSvc.prefs

### Functions

onload()

removeListener()

### Classes

class manager

### Constructor

manager()

### Class variables

_configDirty - Boolean

_configKeyTree - cloneObject()

_configUnsaved - Boolean

_keyPressCaptureWindow - window

_knownconfigs - schemes.value

activeCommands - cloneObject()

command2key - Object

commanditems - Array

commandnames - Array

constructor

currentConfiguration - configName

currentPrefixMap - this.keyTree

currentPrefixString - String

currentScheme - scheme

inPrefixCapture - Boolean

key2command - Object

keyDownLabels

keynames - Array

keyTree - Object

lastcategory - String

prefset - prefset

rownum - Number

### Class functions

_addRow(category, desc, keys)
Arguments

desc - desc.replace()

Returns - String

_clearActiveBindings()

_configKnown(newconfigname)

Returns - Boolean

_getKeyTreeRoot(keysequence)

Returns - root

_getPartFromId(param)

Returns - part

_saveKnownConfigs()

_usedbys(root, remainingsequence, sofarsequence, usedbys)
Arguments

root - commandMatch

applyCurrentConfiguration()

assignKey(commandId, keysequence, parameter)

cancelPrefix(why)

clearBinding(commandId, commandParam, restore)

clearBindings()

clearSequence(commandId, keylabel, restore)

clearUsedBys(commandId, keysequence)

command2keylabel(commandId)

Returns - keysequence2keylabel()

command2keysequences(commandId, commandParam)

Returns - seqs

commandId2desc(commandname, param, label)

Returns - commanddesc

commandId2parameter(commandname, label)

Returns - String

commandId2shortdesc(commandname, param)

Returns - commanddesc

commandId2tabledesc(commandname, param)

Returns - commanddesc

configurationWriteable(configname)

Returns - scheme.writeable

deleteConfiguration(configname, prefset)

evalCommand(event, commandname, keylabel)
Arguments

event - Event

Returns - Boolean

event2keylabel(event, useShift, isKeyPressEvent)
Arguments

event - Event

useShift - Boolean

isKeyPressEvent - Boolean

Returns - data.join()

eventBindings(event, isKeyPressEvent)
Arguments

event - Event

isKeyPressEvent - Boolean

Returns - possible

finalize(part, topic, partId)

getConfigurations()

Returns - this._knownconfigs

getKey(keyname)
Arguments

keyname - keyname.slice()

keypressHandler(event)
Arguments

event - Event

learnParameter(commandId, parameter, keylabel)

loadConfiguration(configName, forceReload)
Arguments

forceReload - Boolean

makeCommandIdTable()

Returns - String

makeCurrentKeyBindingTable()

Returns - String

makeDirty()

makeKeyActive(commandId, keysequence)

makeNewConfiguration(newconfigname, prefset)

Returns - newconfigname

manageKeyboardShortcut(part, topic, partId)

mergeSchemeConfiguration(configName, forceReload)
Arguments

forceReload - Boolean

observe(part, topic, partId)
Arguments

topic - topic.indexOf()

offerToSave()

parseConfiguration(data, forceReload, ignoreCommandPrefix)

Parse the keybinding configuration file data into commands. Acitivate the keybinding commands.

Arguments

forceReload - Boolean

parseGlobalData()

removeCommandsWithPrefix(prefix)

revertToPref(configname)

saveAndApply(prefset)

saveCurrentConfiguration()

setKeyBinding(keysequence, commandId, commandKey)

Returns - key

startPrefixCapture()

stashIn(vessel, keylabel)

switchConfiguration(newconfigname)

Returns - Boolean

unsetKey(keylabel)

unsetKeyBinding(commandId)

usedBy(sequence)

Returns - usedbys

walk_and_apply(root, keysequence)

## ko.keybindings._commandParams

## ko.keybindings.activeCommands

## ko.keybindings.command2key

## ko.keybindings.key2command

## ko.keybindings.keyTree

## ko.launch

### Functions

about()

Show Komodo's about dialog.

checkForUpdates()

Opens the update manager and checks for updates to the application. From http://plow/source/xref/mozilla/1.8/browser/base/content/utilityOverlay.js#452

diff(diff, title, message)

diff open the diff dialog, you must provide the diff

Arguments

diff - String

title - String

message - String

Returns - ko.windowManager.openDialog()

find(pattern)

Open the Find dialog.

Arguments

pattern - String

The pattern to search for.

Returns - ko.windowManager.openDialog()

findInCollection(collection, pattern)

Open the find dialog for searching in a "collection" find context.

Arguments

collection - koICollectionFindContext

defines in what to search.

pattern - String

is the pattern to search for. Optional.

Returns - ko.windowManager.openDialog()

findInCurrProject(pattern)

Open Find dialog to search in the current project.

Arguments

pattern - String

Returns - ko.windowManager.openDialog()

findInFiles(pattern, dirs, includes, excludes)

Open Find dialog to search in files.

Arguments

pattern - String

dirs - String

includes - Array

excludes - Array

Returns - ko.windowManager.openDialog()

newTemplate(obj)

newWindow(uri)

Returns - ko.windowManager.openDialog()

newWindowFromWorkspace(workspaceIndex)

openAddonsMgr()

openAddonsMgr open the extension/add ons manager window

Returns - ko.windowManager.openOrFocusDialog()

replace(pattern, repl)

Open the Find/Replace dialog.

Arguments

pattern - String

The pattern to search for.

repl - String

The replacement pattern.

Returns - ko.windowManager.openDialog()

replaceInCollection(collection, pattern, repl)

Open the find dialog to find & replace in a "collection" of files.

Arguments

collection - koICollectionFindContext

defines in what to search.

pattern - String

The pattern to search for.

repl - String

The replacement pattern.

Returns - ko.windowManager.openDialog()

replaceInCurrProject(pattern, repl)

Open Find dialog to find & replace in the current project.

Arguments

pattern - String

The pattern to search for.

repl - String

The replacement pattern.

Returns - ko.windowManager.openDialog()

replaceInFiles(pattern, repl, dirs, includes, excludes)

Open Find dialog to make replacements in files.

Arguments

pattern - String

repl - String

dirs - String

includes - Array

excludes - Array

Returns - ko.windowManager.openDialog()

runCommand()

runCommand open the run command dialog

Returns - window.openDialog()

watchLocalFile()

watchLocalFile prompt for a file to watch, then open a new watch window

## ko.launch.find2_dialog_args

### Variables

collection - collection

cwd - cwd

dirs - dirs

excludes - excludes

includes - includes

mode - String

pattern - pattern

repl - repl

## ko.lint

### Variables

_lastRequestId - Number

_lintDisplayer - Components.interfaces.koILintDisplayer

_lintSvc - Components.interfaces.koILintService

_lintTimer

errorString

lintingEnabled - this.view.prefs.getBooleanPref()

lintResults

view - view

### Functions

clearResults()

doClick(event)
Arguments

event - Event

doRequest()

jumpToNextLintResult()

### Classes

class lintBuffer

### Constructor

lintBuffer(view)

### Class variables

_lintTimer - objectTimer

constructor

errorString - request.errorString

lintingEnabled - lintingEnabled

lintResults - request.results

view

### Class functions

_cancelDelayedRequest()

_clearResults()

_createLintRequest(linterType)

_getLinterCID()

_issueRequest()

_notify()

destructor()

observe(subject, topic, data)

QueryInterface(iid)

Returns - this

reportResults(request)

request(reason)
Arguments

reason - String

## ko.logging

### Variables

_logger - logger

_logger_name - logger_name

dumpDOM - dumpDOM

getObjectTree - getObjectTree

getStack - getStack

loggingSvc - Components.interfaces.koILoggingService

### Functions

dumpEvent(event)
Arguments

event - Event

dumpObject(o, name)

dumpObjectTree(o, recurse, compress, level)

dumpStack()

dumpView(view)

getLogger(logger_name)

Returns - this.getLoggingMgr().getLogger()

getLoggingMgr()

Returns - _gLoggingMgr

LoggingMgr()

strObject(o, name)
Arguments

name - String

Returns - s

### Classes

class Logger

### Constructor

Logger(logger, logger_name)

### Class variables

constructor

### Class functions

critical(message)

debug(message)

deprecated(message, reportDuplicates)

Log a deprecation warning message. This will also log the stack trace to show where the deprecated code was being called from. Note: This is not a core Python logging function, it's just used from JavaScript code to warn about Komodo JavaScript API deprecations.

Arguments

message - String

The deprecation warning message.

reportDuplicates - Boolean

Optional, when set to false it only logs the first occurance of the deprecation message.

error(message)

exception(e, message)
Arguments

message - String

getEffectiveLevel()

Returns - this._logger.getEffectiveLevel()

info(message)

setLevel(level)

warn(message)

## ko.logging.LoggerMap

## ko.macros

### Variables

current - _partSvc.runningMacro

CURRENT_MACRO_VERSION - Number

eventHandler - MacroEventHandler

recorder - MacroRecorder

### Functions

addDeprecatedGetter(deprecatedName, ko_macro_name)
Arguments

ko_macro_name - deprecatedName

evalAsJavaScript(__code, part, __observer_arguments, view)
Arguments

view - ko.views.manager.currentView

Returns - Boolean

recordPartInvocation(part)

## ko.main

### Variables

__koNum - val

windowIsClosing - Boolean

Is this window being closed?

### Functions

__deprecatedNameTest(deprecatedName, supportedName)

_onClose(event)

Window "close" event handler to close the Komodo window and, if it is the last one, quit. This is called when the application's "x" close button is pressed. It is NOT called when quitting Komodo via "File -> Exit", "Cmd+Q", or equivalent.

Arguments

event - Event

_onDOMWindowClose(event)

Window "DOMWindowClose" event sent when the window is about to be closed by `window.close()`. For Komodo shutdown this is called when a window is closed via toolkit's `goQuitApplication()`, but NOT when closed via the application window's "x" close button. However, this method will be called in procedures that cause Komodo to shut down, such as during updates. It's too late to check if we can quit, but we should still save the workspace and run the willCloseHandlers. See bug 67126 for more details. http://developer.mozilla.org/en/docs/Gecko-Specific_DOM_Events#DOMWindowClose http://mxr.mozilla.org/mozilla1.8/source/dom/src/base/nsGlobalWindow.cpp#4737 ... DispatchCustomEvent("DOMWindowClose") ...

Arguments

event - Event

addCanCloseHandler(handler, object)

addWillCloseHandler(handler, object)

Register a routine to be called when a Komodo window is closed. To register a simple routine do this: ko.main.addWillCloseHandler(<routine>) To register an object method do this: ko.main.addWillCloseHandler(this.<method>, this); *XXX Do we want to add an optional argument list to pass in?

quitApplication()

removeWillCloseHandler(handler)

Remove the given handler from the list of do-close handlers.

runCanCloseHandlers()

Returns - Boolean

runWillCloseHandlers()

## ko.markers

### Variables

MARKERS_MASK_SYMBOLS - Number

MARKNUM_BOOKMARK - Number

MARKNUM_CURRENT_LINE_BACKGROUND - Number

MARKNUM_HISTORYLOC - Number

MARKNUM_STDERR - Number

MARKNUM_STDIN_PROMPT - Number

MARKNUM_STDOUT - Number

MARKNUM_TRANSIENTMARK - Number

### Functions

getPixmap(uri, force)

Read a file from disk, cache and return the contents.

Arguments

uri - String

file uri

force - Boolean

force read from file Note: The file contents are cached by URI. This is used to load pixmaps for scintilla markers.

Returns - content_cache[uri]

setup(scimoz)

Setup the standard Komodo markers in the given SciMoz instance and return an appropriate mask for ISciMoz.setMarginMaskN(<n>, <mask>).

Arguments

scimoz - Components.interfaces.ISciMoz

- A plugin instance.

Returns - ko.markers.MARKERS_MASK_SYMBOLS

## ko.mozhacks

### Functions

pluginContextMenu()

pluginContextMenu Verified still necessary with moz 1.8 branch - SMC For some reason popups over the plugin are messed up until the first context menu over mozilla is activated. It is apparently due to popupNode not being initialized, so we do that here. See: http://www.xulplanet.com/references/elemref/ref_popup.html

## ko.mru

### Functions

add(prefName, entry, caseSensitive)

addFromACTextbox(widget)

addURL(prefName, url)

del(prefName, index, notify)
Arguments

notify - Boolean

deleteValue(prefName, prefValue, notify)
Arguments

notify - Boolean

finalize()

get(prefName, index)
Arguments

index - Number

Returns - retval

getAll(prefName, maxLength)
Arguments

maxLength - Math.max()

Returns - retval

initialize()

manageMRUList(prefName)

maxEntries(listPrefName)

Returns - maxEntries

remove(prefName, entry, caseSensitive)

Remove the given "entry" (a string) from the given MRU if it exists.

Arguments

prefName - String

The mru preference with which it is associated.

entry - String

The entry to remove from the mru.

caseSensitive - Boolean

How to match the entry.

removeURL(prefName, url)

Remove the given URL from the mru preference (if it exists).

Arguments

prefName - String

The mru preference with which it is associated.

url - String

The URL to remove from the mru.

reset(prefName)

## ko.mru._prettyPrefNamePlural_From_PrefName

### Variables

__XXZZ__

mruFileList - String

mruProjectList - String

mruTemplateList - String

## ko.open

The open namespace contains functionality to open buffers in komodo

### Variables

_audioUrlREs - Array

_imageUrlREs - Array

accessKey - _viewsBundle.GetStringFromName()

label - _viewsBundle.GetStringFromName()

preNotificationSessionSchemeName - oldSchemeName

### Functions

_notifyHowtoRestoreOldScheme(schemeService, oldSchemeName, newSchemeName)

Display a notification box that lets the user revert the current color scheme from the one that was just imported to the previous one.

Arguments

schemeService - nsIScintillaSchemeService

oldSchemeName - String

newSchemeName - String

Returns - undefined

displayPath(displayPath, viewType, callback)

Open the given path in Komodo. If you need the view for the file that is opened from this call, pass in a callback function argument and then this function will be called after the view is opened (or re-focused if it was already open).

Arguments

displayPath - String

identifies the path to open. Display path may be the display path of an already open (and possibly untitled) document.

viewType - String

optional default "editor", the type of view to create for the openned path. It is ignored if the displayPath indicates an already open view.

callback - Function

optional, to be called when the asynchronous load is complete. This will only be called if this opens or switches to an editor view, e.g. this won't be called for a kpf file. The view will be passed as an argument to the function.

filePicker(viewType)

open a file picker, and open the files that the user selects

isAudioUrl(url)

Returns - Boolean

isImageUrl(url)

Returns - Boolean

multipleURIs(urls, viewType)
Arguments

urls - urls.concat()

startPage()

Open Komodo's Start Page - the view will be opened synchronously.

templatePicker(viewType)

open a file picker, and open the templates that the user selects. This allows editing the templates, it is not for creating new files from templates.

URI(uri, viewType, skipRecentOpenFeature, callback)

Asynchronously open the URI in a new Komodo tab, if the file is already open then this existing tab becomes the currently focused tab. If you need the view for the file that is opened from this call, pass in a callback function argument and then this function will be called after the view is opened (or re-focused if it was already open).

Arguments

uri - String

the path or URI to open

viewType - String

optional default "editor" type of view component to use. Values can be [ "editor", "browser", "diff" ].

skipRecentOpenFeature - Boolean

optional default false, can be used when the URI to open is a project file to specify that the feature to open files in that project should not be offered.

callback - Function

optional, to be called when the asynchronous load is complete. This will only be called if this opens or switches to an editor view, e.g. this won't be called for a kpf file. The view will be passed as an argument to the function.

Returns - ko.open.URIAtLine()

URIAtLine(uri, lineno, viewType, skipRecentOpenFeature, callback)

Asynchronously open the URI in a new Komodo tab, if the file is already open then this existing tab becomes the currently focused tab. If you need the view for the file that is opened from this call, pass in a callback function argument and then this function will be called after the view is opened (or re-focused if it was already open).

Arguments

uri - String

the path or URI to open

lineno - Number

the line number to open the file at

viewType - String

optional default "editor" type of view component to use. Values can be [ "editor", "browser", "diff" ].

skipRecentOpenFeature - Boolean

optional default false, can be used when the URI to open is a project file to specify that the feature to open files in that project should not be offered.

callback - Function

optional, to be called when the asynchronous load is complete. This will only be called if this opens or switches to an editor view, e.g. this won't be called for a kpf file. The view will be passed as an argument to the function.

## ko.printing

### Functions

browserPrint()

browserPrintPreview()

browserPrintPreviewEnter()

browserPrintPreviewExit()

print(view, preview, tofile, selectionOnly)
Arguments

tofile - Boolean

selectionOnly - Boolean

Returns - Boolean

printPreview(view, preview, tofile, selectionOnly)

## ko.projects

### Variables

_toolboxParts - Array

active - this

BaseManager - BaseManager

extensionManager - projectExtensionManager

managers - Array

peMenu - peMenu

### Functions

_detabify(s, tabWidth)

Returns - s_new

_getDirFromPart(part)

Returns - defaultDir

_stripLeadingWS(text, tabWidth, baseIndentation)

Returns - fixedLines.join()

addDeprecatedGetter(deprecatedName, ko_project_name)
Arguments

ko_project_name - deprecatedName

addFile(parent_item)

Returns - parts

addFileWithURL(url, parent)

Returns - this.addPartWithURLAndType()

addGroup(parent)

Returns - part

addItem(item, parent)

addMacro(parent, part)
Arguments

part - parent.project.createPartFromType()

addMenu(parent, menu)

addMenuFromPart(part)

addNewFileFromTemplate(parent, callback)

addPartWithURLAndType(url, typename, parent)
Arguments

parent - ko.projects.active.getSelectedItem()

Returns - part

addRemoteFile(item)

Returns - parts

addRemoteFolder(item)

Returns - part

addSnippet(parent, snippet)
Arguments

parent - ko.projects.active.getSelectedItem()

snippet - ko.toolbox2.createPartFromType()

addSnippetFromText(snippettext, parent)

Returns - snippet

addToolbar(parent, toolbar)

addToolbarFromPart(part)

addURL(parent, part)
Arguments

part - parent.project.createPartFromType()

addURLFromText(URLtext, parent)
Arguments

parent - ko.toolbox2.getStandardToolbox()

commandProperties(item)

executeMacro(part, async, observer_arguments)
Arguments

async - part.getBooleanAttribute()

Returns - Boolean

executeMacroById(id, asynchronous)

Returns - Boolean

exportItems(items)

exportPackageItems(items)

fileProperties(item, view, folder)
Arguments

view - ko.views.manager.getViewForURI()

folder - Boolean

Returns - Boolean

findItemsByURL(url)

Returns - items

findPart(type, name, where, part)

findPart find a part in the toolboxes and/or a specifid part's project

Arguments

type - String

name - String

where - String

one of "container", "toolbox", "shared toolbox", "toolboxes" or "*" where "*" means "current part project, toolbox, shared toolbox"

part - koIPart

defaults to the running macro if available

Returns - koIPart

findPartById(id)

Return null if there is no part with the given ID.

Returns - ko.toolbox2.findToolById()

findPartsByURL(url)

Returns - parts

handle_parts_reload()

hasURL(url)

Returns - Boolean

importFromPackage(viewMgr, part, uri)

Import a Komodo package (filename) into the given part.

Arguments

viewMgr - Object

- The project view manager.

part - Components.interfaces.koIPart

- The part to import into.

uri - String

- The URI of the package to import.

invalidateItem(item)

invokePart(part)

Given a koIPart, invoke it (do it's "double-click" action) through whatever code path is appropriate for that part -- i.e. snippets get inserted, commands get run, etc.

invokePartById(id)

Given the ID of a part, find it and invoke it.

isToolbarRememberedAsHidden(id)

Returns - Boolean

macroProperties(item)

menuProperties(item)

onload()

onToolboxLoaded(toolboxDir)

onToolboxUnloaded(toolboxDir)

open(url, skipRecentOpenFeature)
Arguments

skipRecentOpenFeature - Boolean

Returns - Boolean

partAcceptsMenuToolbar(part)
Arguments

part - part.parent

Returns - Boolean

refreshStatus(items)
Arguments

items - pview.manager.getSelectedItems()

registerExtension(ext)

reimportFromFileSystem(part)

Returns - Boolean

removeImportedVirtualFilesAndFolders(part)

Recursively removes virtual files and folders, but does not remove any folders that have been added manually or parts that are not files or folders (i.e. snippets, macros, etc...). This function will also remove any manually added files, that were not added as part of the import process, because there is not way to tell manually added files and imported files apart.

removeItems(items)

removeItemsByURL(url, skipDialog)

Returns - items

removeItemsByURLList(urls, skipDialog)

removeMenuForPart(part)

removeToolbarForPart(part)

renameProject(project)

runCommand(cmdPart)

saveProjectAs(project)

Returns - Boolean

snippetInsert(snippet)

snippetInsertImpl(snippet, view)
Arguments

view - ko.views.manager.currentView

Returns - enteredUndoableTabstop

snippetProperties(item)

toggleToolbarHiddenStateInPref(id)

updateToolbarForPart(part)

URLProperties(item)

## ko.projects.manager

### Variables

_project_opened_during_workspace_restore - Boolean

current_tab_during_workspace_restore - ko.workspace.restoredLeftTabBoxID

## ko.run

### Functions

buildRecentCommandsMenu(popupWidget)

canClose()

Prepare to close Komodo. Return false if cannot yet close Komodo. If there are processes still running then must wait for or kill them.

Returns - Boolean

registerProcess(command, process)

Keep a list of processes spawned by the RunCommand system. This is necessary to ensure that there are no hangs when Komodo closes because some process is still running. Before closing Komodo all process must be terminated.

runCommand(editor, command, cwd, env, insertOutput, operateOnSelection, doNotOpenOutputWindow, runIn, parseOutput, parseRegex, showParsedOutputList, name, clearOutputWindow, terminationCallback, saveInMRU, saveInMacro, viewData)

Run the given command.

Arguments

parseOutput - Boolean

parseRegex - String

showParsedOutputList - Boolean

clearOutputWindow - Boolean

saveInMRU - Boolean

saveInMacro - Boolean

Returns - Boolean

runEncodedCommand(editor, encodedCommand, terminationCallback)

Run an "encoded" command. An encoded command is a string that describes the command and possibly a number of optional arguments. The encoding is defined by koIRunService.Decode().

Returns - Boolean

unregisterZombieProcess()

Remove any processes that have terminated from the list.

## ko.run.output

The interface for using the run output window (where run command output goes to, in the bottom pane of the Komodo workspace). Expected usage: - Someone calls ko.run.output.initialize() at startup and ko.run.output.finalize() at shutdown. - When a command is to be run in the output window do this: * announce intention to start session ko.run.output.startSession(...); *... setup and start running the actual command calling * ko.run.output.getTerminal() and ko.run.output.show() as needed ko.run.output.setProcessHandle(p); * to allow user to kill process *... setup ko.run.output.endSession() to be run when the process * terminates.

### Functions

endSession(retval)

Complete a terminal session. The command exited with the given value.

finalize()

getTerminal()

Returns - _gTerminalHandler

initialize()

kill(retval)

Kill the process currently running in the output window's terminal, if any.

scintillaOnClick(event)
Arguments

event - Event

setProcessHandle(process)

Pass a koIRunProcess reference to the output window so it can manipulate the process that is being run in its terminal, if necessary.

show(editor, showParsedOutputList)

Show the command output window. "editor" is the XUL window holding the command output window. "showParseOutputList" is a boolean indicating whether to show the tree parsed output list.

startSession(command, parseOutput, parseRegex, cwd, filename, clearContent)

Start a terminal session in the output window with the given command. This raises an exception if the run output window is currently busy. "command" is the command being run (note that this is the command string *for display* which might be slight different -- passwords obscured -- than the actual command) "parseOutput" is a boolean indicating whether to parse output lines "parseRegex" is the regular expression to use to parse output lines "cwd" is the directory in which the command is being run (note: ditto *for display* subtlety withh "command") "filename" is the current editor filename (if any) "clearContent" is a boolean indicating whether to clear the output window content (by default "true", i.e. the window _is_ cleared).

Arguments

clearContent - Boolean

toggleView()

treeOnClick(event)
Arguments

event - Event

treeOnKeyPress(event)
Arguments

event - Event

Returns - Boolean

## ko.statusBar

### Functions

AddMessage(msg, category, timeout, highlight, interactive)

AddMessage Post a message to the status bar message area. "msg" is the message string. An empty string or null indicates that the message (of the given category) should be cleared. "category" is the message group to which the message belongs. It is an arbitrary string (it must be at least one character). "timeout" is the amount of time, in milliseconds, that the message should appear. A value of 0 indicates that the message does not timeout. "highlight" is a boolean indicating whether the message should be highlighted on the status bar. "interactive" is a boolean indicating whether the message corresponds to an interactive prompt (such as interactive search). These have higher 'priority' over non-interactive messages in case of conflict. A structure similar to a stack of status messages is maintained. The latest message is always shown. When/if it timesout then the previous message is the stack is displayed. There can only be one message per category, so reusing a category allows for removal of status messages that are no longer appropriate. To add a message that does not timeout: ko.statusBar.addMessage("hello there", "my_category", 0, false) To remove that message: ko.statusBar.addMessage(null, "my_category", 0, false) To add a highlighted message for three seconds: ko.statusBar.addMessage("hello there", "my_category", 3000, true)

changeEncoding(menuitem)

Set the encoding menu for the current view.

Clear()

Clear clear all statusbar elements

ClearCheck()

ClearCheck clear the syntax checking status

dump()

dump dump the current message stack to stdout

setupEncodingMenu(menupopup)

Set the encoding menu for the current view.

Arguments

menupopup - DOMElement

## ko.stringutils

### Functions

bytelength(s)

Returns - _sysUtils.byteLength()

charIndexFromPosition(s, p)

Returns - _sysUtils.charIndexFromPosition()

contractUser(path)

Use koIOs.expanduser to expand a leading "~". This contracts it.

Arguments

path - String

Returns - one

escapeWhitespace(text)
Arguments

text - text.replace()

Returns - String

getSubAttr(value, subattrname)
Arguments

value - part.slice().replace().replace()

strip(s)

Return a copy of s with the leading and trailing whitespace removed.

Returns - String

unescapeWhitespace(text, eol)

Returns - newtext

updateSubAttr(oldValue, subattrname, subattrvalue)

Returns - newValue

## ko.tabstops

### Variables

backrefNum - backrefNum

backrefNumber - backrefNumber

indicator - indicator

isBackref - isBackref

isBackrefAnchor - isBackrefAnchor

message - msg

snippet - snippet

text - String

### Functions

_clearAllCurrentHits(scimoz, position)

_containsActiveLink(scimoz, indicator)

Returns - indicatorEnd

_deleteTabstopItem(view, tabstopInsertionTable, idx)

_ensureInsertMode()

_hasOtherLinks(tabstopInsertionTable, backrefNumber, idx)

Returns - Boolean

_removeIndicatorsBeforeDelete(view, targetRangeStart, targetRangeEnd)

_restoreDroppedIndicators(followingSet, prevSet, scimoz, pos, utf8Len)

_updateAllHits(scimoz, position, indicator, newUnicodeText, newUTF8Length)

_updateAllZeroWidthHits(scimoz, position, newUnicodeText, newUTF8Length)

_useIndicator(view, scimoz, indicator, spos, epos, isBackref)
Arguments

isBackref - Boolean

atEmptyLinkedTabstop(scimoz, position, utf8Length)

Are we the first string to be added in a linked tabstop?

clearLinkedTabstops(scimoz, view)

Remove linked tabstops from the document.

Arguments

view - ko.views.manager.currentView

clearTabstopInfo(view)

Remove all traces of tabstops from the view and document.

dumpParseResult(tree)

findByIndicator(scimoz, indicator, startingPos)

Returns - Array

forceUpdateAllZeroWidthLinks(view, scimoz, position, text, utf8Length)

This method creates non-empty tabstops where only a zero-width indicator link was found. It's necessary because the indicator might be detected when 'a' is typed like so: a<*> but by the time it's processed, the user has typed 'sd', leading to this situation: asd<*> In this case, only the 'd' is found to be next to a zero-width indicator, so the 'a' and 's' don't appear in the other tabstops. This function fixes that.

handleBackspace(scimoz)

Watches for backspace at the start of a tabstop. Further comments in the code.

handleDelete(scimoz)

Similar to handleBackspace, but watches for delete actions at the right of the indicator. This routine is simpler: if we're about to step on the TSCZW indicator at the end of a linked tabstop, it's time to unlink them.

handleDeleteByUndo(view, scimoz, position, length)

If we're removing a full TSC, but not the trailing TSCZW, remove the linked items anyway. Otherwise we end up in a state where modifying the parent text doesn't affect the linked tabstops, but if we append at this point, the other tabstops get the update. It's asymmetrical, so we'll unlink.

insertEmptyIndicator(scimoz, startingPos, indicator)

Returns - finalLen

moveToNextTabstop(view)

When the user presses the tab key, this method first determines if there is a current set of linked tabstops to unlink, and then finds the next tabstop to visit. If that tabstop is the head of a set of tabstops linked by the same backref, it colors each tabstop with the TSC indicator ("Tabstop Current"), and also places an invisible TSCZW indicator to the right of each one, to allow the user to delete TSC-indicated text.

Returns - Boolean

parseLiveText(liveText)

Parse a stream of pieces of text and tabstop.

Returns - Object

textHasTabstops(text)

Returns - tabstop_re.test()

updateLinkedBackrefs(modificationType, view, position, unicodeText, utf8Length)

When the user makes a modification in a document with tabstops, this routine handles the change. It handles two main events: 1. The first linked tabstop has changed. All other linked tabstops are updated with the new value. 2. Text containing indicators is about to be deleted. This routine removes the appropriate entries from the view's tabstopIndicatorTable.

### Classes

class LiveTextParser

### Constructor

LiveTextParser()

### Class variables

availIndicators - Array

endingIndicatorsInUse - Array

idx - Number

lastIndicatorInUse - indicator

lim - liveText.length

nestedIndicatorsInUse - Array

subjectText - liveText

### Class functions

_availableIndicatorCheck()

_parseTabstopNameSequence()

Returns - retStrParts.join()

_releaseIndicators()

_shuffleIndicators(indicator)

lookingAtTabstop()

Returns - this.subjectText.substr()

parse(liveText)

Returns - Node

parseNestedLiveText(parentNode, isInner)
Arguments

isInner - Boolean

parseTabstop()

parseTextBlock(isInner)

Returns - ko.tabstops.LiveTextPlain

throwParseException(expecting, reason)

class LiveTextParserException

Exception object. The message field gives a specific message.

### Constructor

LiveTextParserException(msg, snippet)

### Class variables

constructor - Error.constructor

### Class functions

insertLiveText(scimoz_, insertionPoint, tabstopTextTree)

Inserts the contents of parsed liveText into the buffer

Returns - Number

class LiveTextPlain

*************** LiveTextPlain ***************

### Constructor

LiveTextPlain(text)

### Class functions

describe(indent)

Returns - indent

insertLiveTextPart()

Returns - ko.stringutils.bytelength()

class LiveTextTabstopBackrefDef

*************** LiveTextTabstopBackrefDef ***************

### Constructor

LiveTextTabstopBackrefDef(indicator, backrefNum, text)

### Class functions

describe(indent)

Returns - indent

insertLiveTextPart()

Returns - insertLiveTextPartHelper()

class LiveTextTabstopBackrefUse

*************** LiveTextTabstopBackrefUse ***************

### Constructor

LiveTextTabstopBackrefUse(indicator, backrefNum, text)

### Class functions

describe(indent)

Returns - indent

insertLiveTextPart()

Returns - insertLiveTextPartHelper()

class LiveTextTabstopEmpty

*************** LiveTextTabstopEmpty ***************

### Constructor

LiveTextTabstopEmpty()

### Class functions

describe(indent)

Returns - indent

insertLiveTextPart()

Returns - ko.tabstops.insertEmptyIndicator()

class LiveTextTabstopNested

*************** LiveTextTabstopNested ***************

### Constructor

LiveTextTabstopNested(indicator)

### Class functions

describe(indent)

Returns - parts.join()

insertLiveTextPart()

Returns - len

class LiveTextTabstopText

*************** LiveTextTabstopText ***************

### Constructor

LiveTextTabstopText(indicator, text)

### Class functions

describe(indent)

Returns - indent

insertLiveTextPart()

Returns - insertLiveTextPartHelper()

class TabstopInsertionNode

### Constructor

TabstopInsertionNode(indicator, isBackref, backrefNumber, isBackrefAnchor)
Arguments

isBackref - Boolean

### Class functions

describe()

Returns - s

## ko.tabstops._parseResultsById

## ko.toolbox2

### Variables

_arrowKeys - Array

_sortDirection - String

_webPackageURL - url

log - log

manager - Toolbox2Manager

multipleNodesSelected - Boolean

raggedMultipleSelection - Boolean

selectedIndices - this.getSelectedIndices()

### Functions

_addFlavors(dt, currentFlavors, path, index)

_addTrailingSlash(uri)

Returns - uri

_clickedOnRoot()

_currentRow(event, tree)
Arguments

event - Event

Returns - row.value

_determineTargetDirectory_CallMethod(method)

_findCommonParent(currentParentDir, nextParentDir)

Returns - String

_getLoadedMacros(paths)

Returns - cleanMacros

_getNewSuggestedName(srcBaseName, targetDirPath)

Returns - Array

_getSelectedTool(assertOfType)

Returns - tool

_getUniqueFileName(targetDirectory, newPath)

Returns - osPathSvc.join()

_handleDroppedURLs(index, koDropDataList, copying)
Arguments

index - this.manager.view.getIndexByTool()

Returns - loadedSomething

_removeLoadedMacros(loadedMacroURIs)

_removeTrailingSlash(uri)

Returns - uri

_selectCurrentItems(isCopying)

add_command(parent, item)

add_folder(parent, item)

add_macro(parent, item)

add_menu(parent, item)

add_snippet(parent, item)

add_template(parent, item)

add_toolbar(parent, item)

add_URL(parent, item)

addItem(tool, parent, selectItem)
Arguments

parent - this.getStandardToolbox()

selectItem - Boolean

addNewItemToParent(item, parent)

addToolboxItem(itemType)

addToolboxItem_common(parent, itemType)

addToolboxItemToStdToolbox(itemType)

applyKeybindings()

copyItem(event)
Arguments

event - Event

createPartFromType(toolType)

Returns - this.manager.toolsMgr.createToolFromType()

cutItem(event)
Arguments

event - Event

deleteItem(event)
Arguments

event - Event

doDrop(event, tree)
Arguments

event - Event

Returns - Boolean

doStartDrag(event, tree)
Arguments

event - Event

editProperties_command(tool)
Arguments

tool - this._getSelectedTool()

editProperties_macro(tool)
Arguments

tool - this._getSelectedTool()

editProperties_menu(tool)
Arguments

tool - this._getSelectedTool()

editProperties_snippet(tool)
Arguments

tool - this._getSelectedTool()

editProperties_toolbar(tool)
Arguments

tool - this._getSelectedTool()

editProperties_URL(tool)
Arguments

tool - this._getSelectedTool()

editPropertiesItem(event)
Arguments

event - Event

editPropertiesTool(tool)

exportAsZipFile(event)
Arguments

event - Event

findToolById(id)

Returns - this.manager.toolsMgr.getToolById()

getAbbreviationSnippet(abbrev, subnames)

Returns - this.manager.toolsMgr.getAbbreviationSnippet()

getContainerForIndex(index)

Returns - index

getContainerFromIndex(index)
Arguments

index - this.manager.view.getParentIndex()

Returns - item

getCustomMenus(dbPath)

Returns - obj.value

getCustomToolbars(dbPath)

Returns - obj.value

getProjectToolbox(uri)

Returns - this.manager.toolsMgr.getToolById()

getSelectedContainer()

Returns - item

getSelectedIndices(rootsOnly)
Arguments

rootsOnly - Boolean

Returns - ko.treeutils.getSelectedIndices()

getSelectedItem()

Returns - this.manager.view.getTool()

getStandardToolbox()

Returns - this.manager.toolbox2Svc.getStandardToolbox()

getToolsByTypeAndName(toolType, toolName)

Returns - tools.value

getToolsWithKeyboardShortcuts(dbPath)

Returns - obj.value

getTriggerMacros(dbPath)

Returns - obj.value

getViCommand(commandName)

handle_keypress_setup(event)
Arguments

event - Event

Returns - ko.toolbox2.onTreeKeyPress()

importFilesFromFileSystem(event)
Arguments

event - Event

importFilesFromFileSystem_common(defaultDirectory, index)

importFilesFromFileSystem_toStdToolbox(event)
Arguments

event - Event

importFolderFromFileSystem(event)
Arguments

event - Event

importFolderFromFileSystem_common(defaultDirectory, index)

importFolderFromFileSystem_toStdToolbox(event)
Arguments

event - Event

importPackage(event)
Arguments

event - Event

importPackage_common(targetDirectory, index)

importPackage_toStdToolbox(event)
Arguments

event - Event

importPackageFromWeb(event)
Arguments

event - Event

importPackageFromWeb_common(targetDirectory, index)

importPackageFromWeb_toStdToolbox(event)
Arguments

event - Event

invoke_editMacro(tool)
Arguments

tool - this._getSelectedTool()

invoke_executeMacro(tool)
Arguments

tool - this._getSelectedTool()

invoke_insertSnippet(tool)
Arguments

tool - this._getSelectedTool()

invoke_openTemplate(tool)
Arguments

tool - this._getSelectedTool()

invoke_openURLInBrowser(tool)
Arguments

tool - this._getSelectedTool()

invoke_openURLInTab(tool)
Arguments

tool - this._getSelectedTool()

invoke_runCommand(tool)
Arguments

tool - this._getSelectedTool()

invokeTool(tool)

onDblClick(event, checkMouseClick)
Arguments

event - Event

checkMouseClick - Boolean

onFilterKeypress(event)
Arguments

event - Event

onload()

onTreeClick(event)
Arguments

event - Event

onTreeKeyPress(event)
Arguments

event - Event

Returns - Boolean

onUnload()

pasteIntoItem(event)
Arguments

event - Event

processMenu(menuNode, toolType)

reloadFolder(event)
Arguments

event - Event

removeItem(item)

renameItem(event)
Arguments

event - Event

saveToolsAs(event)
Arguments

event - Event

saveToolsAs_aux(event)
Arguments

event - Event

Returns - Array

showInFileManager(itemType)

sortRows(sortDirection)

updateContextMenu(event, menupopup)
Arguments

event - Event

updateFilter(event)
Arguments

event - Event

Returns - this.manager.updateFilter()

## ko.toolbox2._sortValuesByName

### Variables

ascending - Components.interfaces.koIToolbox2HTreeView.SORT_BY_NAME_ASCENDING

descending - Components.interfaces.koIToolbox2HTreeView.SORT_BY_NAME_DESCENDING

natural - Components.interfaces.koIToolbox2HTreeView.SORT_BY_NATURAL_ORDER

## ko.toolboxes

### Variables

toolboxBaseManager - toolboxBaseManager

user - ko.toolbox2

### Functions

addCommand(command, cwd, env, insertOutput, operateOnSelection, doNotOpenOutputWindow, runIn, parseOutput, parseRegex, showParsedOutputList, name)
Arguments

name - command

## ko.treeutils

### Functions

getAllIndices(view)

Returns - a

getSelectedIndices(view, rootsOnly)

Returns - selectedIndices

## ko.uilayout

### Functions

_setTabPaneLayoutForTabbox(layout, tabbox, position)

buildViewAsLanguageMenu()

ensureOutputPaneShown()

ensurePaneForTabHidden(tabName)

ensurePaneShown(tabs)

ensureTabShown(tabId, focusToo)
Arguments

focusToo - Boolean

focusPane(tabsId)

fullScreen()

handle_current_view_changed_setup(event)
Arguments

event - Event

isButtonTextShowing()

Returns - _buttonTextShowing

isCodeBrowserTabShown()

Returns - Boolean

isPaneShown(tabs)

Returns - Boolean

leftPaneShown()

newFileFromTemplateOrTrimMRU(templateURI, mruPrefName, mruIndex)

onFullScreen()

onload()

onloadDelayed()

outputPaneShown()

populatePreviewToolbarButton(popup)

restoreTabSelections(prefs)
Arguments

prefs - gPrefs

rightPaneShown()

saveTabSelections(prefs)
Arguments

prefs - gPrefs

setTabPaneLayout()

Sets the user's tab pane layout to match the Komodo appearance preferences.

syncTabSelections()

toggleButtons()

togglePane(splitterId, tabsId, cmdId, force)
Arguments

force - Boolean

toggleSplitter(aCommandID)

toggleTab(tabId, collapseIfFocused, collapseIfAlreadySelected)
Arguments

collapseIfFocused - Boolean

toggleToolbarVisibility(toolbarId)

unload()

updateFullScreen()

updateMRUMenuIfNecessary(mru, limit)
Arguments

limit - Number

updateSplitterBroadcasterState(aCommandID)

updateTabpickerMenu(menupopup)

updateTitlebar(view)

updateToolbarArrangement(buttonTextShowing)
Arguments

buttonTextShowing - broadcaster.hasAttribute()

updateViewAsMenuIfNecessary()

updateWindowList(popup)

## ko.uriparse

Functions to convert/parse strings representing URLs, files, etc. This is basically a loose shim around class URIParser in URIlib.py (somewhat obtusely via koIFileEx). Routines: ko.uriparse.localPathToURI(<localPath>) ko.uriparse.pathToURI(<URI or localPath>) ko.uriparse.URIToPath(<URI or path>) ko.uriparse.URIToLocalPath(<URI or localPath>) ko.uriparse.displayPath(<localPath or URI>) ko.uriparse.baseName(<localPath or URI>) ko.uriparse.dirName(<localPath or URI>) ko.uriparse.ext(<localPath or URI>) Dev Notes: - This module caches a single koIFileEx instance to, presumably, speed things up.

### Functions

addMappedURI(uri, path)

Show the dialog for creating a new mapped URI with the supplied uri and path arguments.

Arguments

uri - String

The URI to add a mapping for.

path - String

The path the URI will be mapped to.

Returns - Boolean

baseName(file)

Get the basename (a.k.a. leafName) of the given file. "file" can be a local filename or URI. Examples: file:///D:/trentm/foo.txt -> foo.txt D:\trentm\foo.txt -> foo.txt ftp://ftp.activestate.com/ActivePython -> ActivePython

Returns - koFileEx.baseName

commonURIPrefixAndPathsFromURIs(uris)

Return an array, holding the the common URI prefix as the first element of the array and an array of the relative paths as the second array entry.

Arguments

uris - Array

Returns - Array

commonURIPrefixFromURIs(uris)

Return the common URI prefix of the given list of URIs.

Arguments

uris - Array

Returns - String

dirName(file)

Get the dirname of the given file. "file" can be a local filename or URI referring to a local file. Examples: file:///D:/trentm/foo.txt -> D:\trentm D:\trentm\foo.txt -> D:\trentm ftp://ftp.activestate.com/ActivePython -> throws exception

Returns - koFileEx.dirName

displayPath(uri)

Get an appropriate representation of the given URI for display to the user. "uri", typically, is a URI, though it can be a local filename as well. Examples: file:///D:/trentm/foo.txt -> D:\trentm\foo.txt D:\trentm\foo.txt -> D:\trentm\foo.txt ftp://ftp.activestate.com/ActivePython -> ftp://ftp.activestate.com/ActivePython

Returns - koFileEx.displayPath

ext(file)

Get the extension of the given file. "file" can be a local filename or URI

Returns - koFileEx.ext

deprecated fixupURI(uri)

DEPRECATED: Was once used to ensure URI's were properly formatted.

Returns - uri

getMappedPath(path, prefs)

This is a reverse of getMappedURI. Return a unmapped URI if there is a pref setup to match the given path, else return whatever was passed in. Note: If a mapping existed, the return result is *always* a URI.

Arguments

path - String

The path or URI to check for uri mappings.

prefs - Components.interfaces.koIPreferenceSet

Optional. The preference set to check against.

Returns - String

getMappedURI(uri, prefs)

Uses the supplied URI to check if there are any special mappings setup in order to change this URI into another location. If there is a match, return the new URI, else return the original URI.

Arguments

uri - String

The URI to check.

prefs - Components.interfaces.koIPreferenceSet

Optional. The preference set to check against.

Returns - String

localPathToURI(localPath)

Get the URI representation of the given local file path. "localPath" must be a local file path. Returns the URI for the given path or raises an exception if "localPath" is not a local path. Returned URIs are normalized ("x/./y" => "x/y", etc.) Examples: D:\trentm\foo.txt -> file:///D:/trentm/foo.txt \\planer\d\trentm\tmp\foo.txt -> file://planer/d/trentm/tmp/foo.txt file:///D:/trentm/foo.txt -> throws exception ftp://ftp.activestate.com/ActivePython -> throws exception

Returns - _normalizedPathToURI()

pathToURI(path)

Get the URI representation of the given local file path or URI "path" must be a local file path or a URI Returns the URI for the given path or the URI if one was passed in. Returned URIs are normalized ("x/./y" => "x/y", etc.) Examples: D:\trentm\foo.txt -> file:///D:/trentm/foo.txt file:///D:/trentm/foo.txt -> file:///D:/trentm/foo.txt ftp://ftp.activestate.com/ActivePython -> ftp://ftp.activestate.com/ActivePython

Returns - _normalizedPathToURI()

relativePath(fromPath, toPath)

Return the relative path from 'fromPath' to 'toPath'.

Arguments

fromPath - String

The local path to get to.

Returns - String

URIToLocalPath(uri)

Get the local file path for the given URI. "uri" may be a URI for a local file or a local path. Returns the local file path or raises an exception if there is no local file representation for that URI. Note: I would rather this explicitly raised if "uri" were a local path, but koIFileEx does not work that way. Examples: D:\trentm\foo.txt -> D:\trentm\foo.txt file:///D:/trentm/foo.txt -> D:\trentm\foo.txt ftp://ftp.activestate.com/ActivePython -> throws exception

Returns - koFileEx.path

URIToPath(uri)

Get the file path for the given URI. "uri" may be a URI for a local or remote path. Returns the file path or raises an exception if there is no local file representation for that URI. Examples: D:\trentm\foo.txt -> D:\trentm\foo.txt file:///D:/trentm/foo.txt -> D:\trentm\foo.txt ftp://ftp.activestate.com/ActivePython -> /ActivePython

Returns - koFileEx.path

## ko.views

### Variables

_currentView

_observingCtrlKeyUp - Boolean

_recentViews - Array

inBufferSwitchingSession - Boolean

log - ko.logging.getLogger()

manager - ko.views.viewManager

Get the view manager.

viewManager - viewManager

### Functions

addDeprecatedGetter(deprecatedName, namespaceName, propertyName)

gotoLine_onkeypress_handler(event)
Arguments

event - Event

handle_current_view_changed(event)
Arguments

event - Event

handle_view_closed(event)
Arguments

event - Event

handle_view_list_closed(event)
Arguments

event - Event

handle_view_opened(event)
Arguments

event - Event

labelFromPathInfo(baseName, dirName, lineNo, tabId, viewType, sectionTitle, showDirty)

Shared code that returns a label and tooltip based on the path info, and other pertinent info on the state of the document/view object.

Arguments

baseName - String

dirName - String

lineNo - Number

- one-based line number

tabId - String

- Komodo tab id

viewType - String

- editor/browser/startpage/...

sectionTitle - String

showDirty - Boolean

Returns - String

labelsFromView(view, lineNo, showDirty, sectionTitle)

Shared code that returns a label and tooltip based on the supplied view, suitable for a menuitem.

Arguments

view - Object(koIScintillaView)

lineNo - Number

- one-based line number

showDirty - Boolean

- put a "*" in the label if the view's document is dirty

sectionTitle - String

- optional string that describes a location.

Returns - Array

nullOnModifiedHandler()

Returns - Boolean

onload()

ScimozOffsetFromUCS2Offset(scimoz, pos, delta)
Arguments

pos - scimoz.positionAfter()

Returns - pos

wrapScintillaChange(view, func)

### Classes

class ViewHistory

view history controller Recently-visited views: The viewhistory object maintains a stack of recently visited lists. This information can be used to switch to recent views. The semantics of the following methods are as follows: - .getNextMostRecentView() and .getNextLeastRecentView() are used by the buffer switching commands to know which views to switch to. - .enterBufferSwitchingSession() and .exitBufferSwitchingSession() are called by the buffer swiching commands to help .setMostRecentView() know how to behave (the "recent views" stack is NOT updated during such a session). Note that .enter...() may be called multiple times for one .exit...() call. - .setMostRecentView() is called by the view manager's .selectView() and can be called directly by the buffer switching commands for proper session handling. NOTE: THIS BEHAVIOR IS TURNED OFF BY SETTING "handlestctrltab" to false on the tabbed view.

### Constructor

ViewHistory()

### Class variables

_keylistener

_recentViews - newStack

constructor

inBufferSwitchingSession - Boolean

### Class functions

_debug_recentViews()

_getCurrentViewIdx()

Returns - currIndex

_keylistener(event)
Arguments

event - Event

_setKeyListener()

ctrlup(event)
Arguments

event - Event

doNextLeastRecentView()

doNextMostRecentView()

enterBufferSwitchingSession()

exitBufferSwitchingSession()

finalize()

genRecentViews()

Generate the view history views in order (current view first, then the next most recent view, ...).

getNextLeastRecentView()

Returns - view

getNextMostRecentView()

Returns - view

getState()

Returns - state

removeRecentView(view)

setMostRecentView(view)

setState(state, viewcontainer)

## ko.widgets

### Functions

getEncodingPopup(hierarchy, toplevel, action)

Returns - menuitem

## ko.window

### Functions

checkDiskFiles(event)

view_checkDiskFiles is only called from the window's focus handler, located in komodo.xul. it handles checking if any files have changed.

Arguments

event - Event

Returns - Boolean

focusedScintilla()

does scintilla have focus? Return the scintilla widget

Returns - Element

focusedView()

does any view widget have focus? return which one does or null

Returns - Element

getCwd()

get the current working directory for the window, which is the directory of the current buffer, or the home directory of the user

Returns - this.getHomeDirectory()

getHomeDirectory()

Returns - String

## ko.windowManager

### Functions

closeAll(parent)

Close all open windows (or just children of a given parent window). The normal goQuitApplication function in toolkit does this, but we want to prevent quitting if one of the dialogs prevents shutdown by not closing.

Arguments

parent - Window

An optional argument to only close windows that are children of this window.

Returns - Boolean

closeChildren()

Close children of the current main Komodo window.

Returns - this.closeAll()

fixupOpenDialogArgs(inargs)

Returns - args

fixupOpenDialogFeatures(features)

Return a "fixed-up" version of the "features" argument for window.openDialog(). This tweaks the string on Mac OS X to ensure the dialog is *not* opened as a sheet.

Arguments

features - String

The features string to fixup. Pass in null to get a reasonable default.

Returns - features

focusNextWindow()

Change the focus to the next Komodo window.

Returns - <Window>

focusPreviousWindow()

Change the focus to the previous Komodo window.

Returns - <Window>

getLastAnyWindow()

Return the last opened window - of any window type.

Returns - <Window>

getMainWindow()

return a reference to the main Komodo window

Returns - <Window>

getWindows()

Returns an array of all Komodo windows that are currently open.

Returns - Array

lastWindow()

return true if this is the only Komodo window open

Returns - <Window>

openDialog()

An alternative version of window.openDialog() that does some fixups that Komodo wants in general.

Returns - window.openDialog.apply()

openOrFocusDialog(chromeURI, windowType)

Open a window if no windows of windowType exist. Otherwise, bring the window of windowType to the front. Parameters for this function are identical to window.openDialog()

Returns - <Window>

otherWindowHasViewForURI(uri)

Returns - Boolean

windowFromWindowNum(windowNum)

## ko.workspace

### Variables

_calledInitializeEssentials - Boolean

restoredLeftTabBoxID - workspace.getStringPref()

### Functions

_restoreWindowWorkspace(workspace, currentWindow, checkWindowBounds)

initializeEssentials(currentWindow, workspace, showStartPage)
Arguments

showStartPage - Boolean

restoreInProgress()

Returns - _restoreInProgress

restoreWorkspace(currentWindow)

restore all workspace preferences and state, open files and projects

Arguments

currentWindow - ko.windowManager.getMainWindow()

restoreWorkspaceByIndex(currentWindow, idx)
Arguments

idx - parseInt()

saveInProgress()

Returns - _saveInProgress

saveWorkspace()

save all workspace preferences and state

## xtk

### Functions

importNS(to, from)

importNS import one namespace into another

Arguments

to - from[i]

include(ns)

include include an xtk namespace

load(uri, obj)

load load a JavaScript file into the global namespace or a defined namespace

Arguments

uri - String

uri to a JavaScript File

obj - Object

object to load the JavaScript into, if undefined loads into global namespace

### Classes

class baseTreeView

### Constructor

baseTreeView()

### Class variables

debug - Number

mSelection - s

mSelectionCallback - f

mSingleSelect - Boolean

mSortType - Number

mTotalRows - Number

mTree - tree

rowCount

selection

selectionCallback

singleSelect

### Class functions

canDrop(index, orientation)

Returns - Boolean

cycleCell(row, colID)

cycleHeader(colID, elt)

drop(row, orientation)

getCellProperties(row, colID, properties)

getCellText(row, colID)

Returns - String

getColumnProperties(colID, colElt, properties)

getImageSrc(row, colID)

getLevel(index)

Returns - Number

getParentIndex(rowIndex)

Returns - Number

getRowProperties(index, properties)

hasNextSibling(rowIndex, afterIndex)

isContainer(index)

Returns - Boolean

isContainerEmpty(index)

Returns - Boolean

isContainerOpen(index)

Returns - Boolean

isEditable(row, colID)

Returns - Boolean

isSeparator(index)

Returns - Number

isSorted()

performAction(action)

performActionOnCell(action, row, colID)

performActionOnRow(action, row)

QueryInterface(iid)

Returns - this

selectionChanged()

setCellText(row, colID, value)

setTree(tree)

toggleOpenState(index)

class Controller

### Constructor

Controller()

### Class functions

doCommand(command)

isCommandEnabled(command)

Returns - result

onEvent(event)
Arguments

event - Event

supportsCommand(command)

Returns - result

class dataTreeView

A flat tree implementation. Sample Usage: XUL: <tree id="sample_tree" flex="1"> <treecols> <treecol id="sample_treecol_name" flex="1" label="Name"/> <splitter class="tree-splitter"/> <treecol id="sample_treecol_value" flex="1" label="Name"/> </treecols> <!-- Tree children are dynamically generated, from our own custom tree view --> <treechildren/> </tree> JavaScript: function SampleTreeView(initial_rows) { if (!initial_rows) { // Default value then this._rows = []; } else { this._rows = initial_rows; // The following two lines ensure proper inheritance (see Flanagan, p. 144). SampleTreeView.prototype = new xtk.dataTreeView(); SampleTreeView.prototype.constructor = SampleTreeView; // Override getCellText method for assigning the celltext SampleTreeView.prototype.getCellText = function(row, column) { // forRow is an item of the _rows array var forRow = this._rows[row]; switch (column.id) { case 'sample_treecol_name': return forRow[0]; case 'sample_treecol_value': return forRow[1]; return "(Unknown column: " + column.id + ")"; // Load the tree view and assign it to a tree element var sampleTreeView = new SampleTreeView(); var sampleTree = document.getElementById("sample_tree"); sampleTree.treeBoxObject.view = sampleTreeView; // SORTING: // Sorting capabilitilies are automatically included (string sorting by // default). These are all of the sort specific attributes: // <treecol sortActive="true|false" /> - marks the default sort column // <treecol sortDirection="ascending|descending|natural" /> // <treecol sortType="string" /> - String sorting (default when not specified) // <treecol sortType="numeric" /> - Numerical sorting // <treecol sortType="function:func_name" /> - Custom sort function: // where "func_name" is a function in the SampleTreeView class. The // signature looks like: "func_name(compare1, compare2)". Each // compare argument is an object that contains these attributes: // compare1.data -> data (string) return by getCellText. // compare1.row -> the real underlying row object. // compare1.oldindex -> original row index before the sort. // See the "_doDataCompare" function below for an example.

### Constructor

dataTreeView(initial_rows)

### Class variables

_debug - Number

_rows - Array

_sortCaseInsensitive - Boolean

_sortColumn - column

_sortDirection - Number

_unfilteredRows - this._rows

rowCount

rows

SORT_ASCENDING - Number

SORT_DESCENDING - Number

tree - out

### Class functions

_reverseRowSortOrder(rows)

_setTreeRows(rows, doReSort)

cycleCell(row, colId)

cycleHeader(col)

filter(text)
Arguments

text - text.toLowerCase()

getCellProperties(row, column, properties)

getCellText(row, column)

Returns - String

getCellValue(row, column)

getColumnProperties(column, prop)

getImageSrc()

getLevel(row)

Returns - Number

getRowProperties(row, prop)

isContainer(row)

Returns - Boolean

isContainerEmpty(index)

Returns - Boolean

isContainerOpen(index)

Returns - Boolean

isEditable(row, column)

Returns - Boolean

isSeparator(index)

Returns - Boolean

isSorted()

Returns - Boolean

performAction(action)

QueryInterface(iid)

Returns - this

reSort()

selectionChanged()

setCellValue(row, column, value)

setSortDirection(column, newSortDirection)

setTree(out)

setTreeRows(rows, doReSort)

sortAscending(column)

sortByColumn(col, sortDirection)
Arguments

col - this.tree.columns.getFirstColumn().element

sortDirection - xtk.dataTreeView.SORT_ASCENDING

sortDescending(column)

## xtk.clipboard

Useful clipboard functions.

### Functions

_getSupportsCString(flavor)

Returns - supportCString

addTextDataFlavor(flavor, text, transferable)

Add a text flavor (eg html or plain text) to a transferable object, if passed transferable is null or not defined a new one is created. Returns the tranferable object.

Arguments

flavor - String

The mime-type flavor (eg "text/html").

text - String

The text to add.

transferable - Components.interfaces.nsITransferable

(Optional) The tranferable to use, if null a new object is created.

Returns - Components.interfaces.nsITransferable

containsFlavors(flavors)

Check if clipboard contains at least one of passed formats (ie flavor). Returns true if clipboard contains one of passed flavor, false otherwise.

Arguments

flavors - Array

Mime-type strings (eg ["text/html", "text/unicode"])

Returns - Boolean

containsHtml()

Check if clipboard contains text in HTML format. Returns true if clipboard contains HTML text, false otherwise.

Returns - Boolean

copyFromTransferable(transferable)

Copy to clipboard using a tranferable object, this allows to copy text in multiple format for example the same text as HTML and plain text.

Arguments

transferable - Components.interfaces.nsITransferable

The tranferable object

createTransferable()

Create a transferable object useful to copy multiple formats to clipboard and return with it.

Returns - Components.interfaces.nsITransferable

emptyClipboard()

getHtml()

Get HTML source code from clipboard.

Returns - String

getText()

Get plain text from clipboard.

Returns - String

getTextFlavor(textFlavor)

Returns - String

setText(text)

Set the clipboard to contain the plain text provided.

Arguments

text - String

The text to copy to clipboard.

## xtk.color

### Variables

black - this.RGB()

blue - this.RGB()

brightness - Number

gamma - Number

green - this.RGB()

red - this.RGB()

topScale - Number

white - this.RGB()

yellow - this.RGB()

### Functions

hexToLong(hexstring)

hexToLong Converts a color of the form #ffaabb to a long

Arguments

hexstring - String

Returns - Number

isDark(hexstring)

Return whether this is a dark color.

Arguments

hexstring - String

- Hexadecimal string of the color.

Returns - Boolean

isLight(hexstring)

Return whether this is a light color.

Arguments

hexstring - String

- Hexadecimal string of the color.

Returns - Boolean

RGB(r, g, b)

RGB covert rgb value into a long int

Returns - Number

### Classes

class scaler

### Constructor

scaler()

### Class functions

Adjust(color, factor)

Returns - Math.floor()

NanometerToRGB(nanoMetres)

Returns - r

scaleToRGB(w)

Returns - this.NanometerToRGB()

## xtk.domutils

### Variables

__END__

### Functions

elementInFocus(el)

is this element or an ancestor focused?

Returns - Boolean

fireEvent(target, eventName)

getFocusedAncestorByName(localName)

is the focused element, or it's ancestor a element with a matching localName?

Arguments

localName - String

Returns - Element

newElement(name, attributes)

Helper method to easily create a new DOM element with a bunch of (optional) attributes set. names to values.

Arguments

name - String

- The element name to create.

attributes - Object

- (Optional) A map object containing attributes

Returns - DOMNode

## xtk.domutils.tooltips

### Functions

getHandler(tooltipName)

Returns - _handlers[tooltipName]

## xtk.logging

### Variables

LOG_CRITICAL - Number

LOG_DEBUG - Number

LOG_ERROR - Number

LOG_INFO - Number

LOG_NOTSET - Number

LOG_WARN - Number

name - name

### Functions

getLogger(name)

Returns - _logs[name]

getObjectTree(o, recurse, compress, level)
Arguments

recurse - Number

compress - Boolean

level - Number

Returns - s

### Classes

class Logger

### Constructor

Logger(name)

### Class variables

lastErrorMsg - str

level - Number

### Class functions

debug(str)

doDump(level)

error(str)

exception(e, str)
Arguments

str - str

info(str)

setLevel(level)

warn(str)