As an exercise in reviewing plugin functionality, understanding FSubScript a bit better, and becoming more comfortable w/ gvim, I filled in more of the skeleton functions in fscript.js:
a piece of FSubScript/fscript.js
function setStatusBar(txt) { FARR.setStrValue("statusbar", txt); }
function setSearch(txt) { FARR.setStrValue("setsearch", txt); }
function setSearchNoGo() { FARR.setStrValue("setsearchnogo", txt); }
function stopSearch() { FARR.setStrValue("stopsearch"); }
function hideWindow() { FARR.setStrValue("window.hide"); }
function showWindow() { FARR.setStrValue("window.show"); }
function toggleWindow() { FARR.setStrValue("window.toggle"); }
function setRichEditMode(txt) { FARR.setStrValue("window.richeditmode", txt); }
function setRichEditHeight(height) { FARR.setStrValue("window.richeditheight", height); }
function setRichEditWidth(width) { FARR.setStrValue("window.richeditwidth", width); }
function setShowAllMode() { FARR.setStrValue("setshowallmode"); }
function exit() { FARR.setStrValue("exit"); }
function reportError(txt) { FARR.setStrValue("reporterror", txt); }
function setCliboard() { FARR.setStrValue("clipboard"); }
function pasteClipboardToLastActiveWindow(txt) { FARR.setStrValue("PasteClipboardToLastActiveWindow", txt) }
function displayAlertMessage(txt) { FARR.setStrValue("DisplayAlertMessage", txt); }
function displayAlertMessageNoTimeout(txt) { FARR.setStrValue("DisplayAlertMessageNoTimeout", txt); }
function displayBalloonMessage(txt) { FARR.setStrValue("DisplayBalloonMessage", txt); }
function execWebbrowserEmbededJavascript(txt) { FARR.setStrValue("EmbeddedWb.ExecJavascript", txt); }
function paste(txt) { FARR.setStrValue("launch", "paste " + txt); }
function copyClip(txt) { FARR.setStrValue("launch", "copyclip " + txt); }
function restartSearch(txt) { FARR.setStrValue("launch", "restartsearch " + txt); }
function doSearch(txt) { FARR.setStrValue("launch", "dosearch " + txt); }
function doSearchOnTrigger(txt) { FARR.setStrValue("launch", "dosearchontrigger " + txt); }
// txt: text with \n as newlines
function showMemo(txt) { FARR.setStrValue("launch", "showmemo " + txt); }
function showFile(filename) { FARR.setStrValue("launch", "showfile " + filename); }
function showFileRTF(filename) { FARR.setStrValue("launch", "showfilertf " + filename); }
function showFileHTML(filename) { FARR.setStrValue("launch", "showfilehtml " + filename); }
function showHTML(txt) { FARR.setStrValue("launch", "showhtml " + txt); }
// txt: url
function htmlViewURL(txt) { FARR.setStrValue("launch", "htmlviewurl " + txt); }
// txt: searchedit, mainpanel
function setFocus(txt) { FARR.setStrValue("launch", "setfocus " + txt); }
// txt: list, memo, html, user, spreadsheet
function setViewMode(txt) { FARR.setStrValue("launch", "setviewmode " + txt); }
function pcommand(txt) { FARR.setStrValue("launch", "pcommand " + txt); }
function setSize(minwidth, minheight, maxwidth, maxheight) {
FARR.setStrValue("launch", "setsize " +
minwidth + ", " + minheight + ", " +
maxwidth + ", " + maxheight);
}
// XXX: bool: 0 or 1?
function setHTMLSafe(bool) { FARR.setStrValue("launch", "sethtmlsafe " + bool); }
function showPleaseWait(txt) { FARR.setStrValue("launch", "showpleasewait " + txt); }
function hidePleaseWait() { FARR.setStrValue("launch", "hidepleasewait"); }
//function alert(txt) { FARR.setStrValue("launch", "alert " + txt); }
function sleep(ms) { FARR.setStrValue("launch", "sleep " + ms); }