1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-23 19:42:26 +01:00

Merge branch 'master' into vimperator-2.1

Conflicts:
	common/content/completion.js
	common/content/liberator.js
	vimperator/NEWS
This commit is contained in:
Doug Kearns
2009-03-29 11:18:10 +11:00
57 changed files with 448 additions and 128 deletions

View File

@@ -10,7 +10,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or

View File

@@ -47,11 +47,9 @@
</xul:vbox> </xul:vbox>
</xul:stack> </xul:stack>
<xul:stack class="tab-text-stack"> <xul:stack class="tab-text-stack">
<xul:label xbl:inherits="value=ordinal" class="tab-text-shadow" liberator:highlight="TabNumber"/>
<xul:label xbl:inherits="value=ordinal" class="tab-text" liberator:highlight="TabNumber"/> <xul:label xbl:inherits="value=ordinal" class="tab-text" liberator:highlight="TabNumber"/>
</xul:stack> </xul:stack>
<xul:stack class="tab-text-stack" flex="1"> <xul:stack class="tab-text-stack" flex="1">
<xul:label flex="1" xbl:inherits="value=label,crop,accesskey" crop="right" class="tab-text-shadow"/>
<xul:label flex="1" xbl:inherits="value=label,crop,accesskey" crop="right" class="tab-text"/> <xul:label flex="1" xbl:inherits="value=label,crop,accesskey" crop="right" class="tab-text"/>
</xul:stack> </xul:stack>
</xul:hbox> </xul:hbox>

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -147,13 +147,13 @@ function Buffer() //{{{
getter: function () window.fullScreen getter: function () window.fullScreen
}); });
options.add(["nextpattern"], options.add(["nextpattern"], // \u00BB is » (>> in a single char)
"Patterns to use when guessing the 'next' page in a document sequence", "Patterns to use when guessing the 'next' page in a document sequence",
"stringlist", "\\bnext\\b,^>$,^(>>|»)$,^(>|»),(>|»)$,\\bmore\\b"); "stringlist", "\\bnext\\b,^>$,^(>>|\u00BB)$,^(>|\u00BB),(>|\u00BB)$,\\bmore\\b");
options.add(["previouspattern"], options.add(["previouspattern"], // \u00AB is « (<< in a single char)
"Patterns to use when guessing the 'previous' page in a document sequence", "Patterns to use when guessing the 'previous' page in a document sequence",
"stringlist", "\\bprev|previous\\b,^<$,^(<<|«)$,^(<|«),(<|«)$"); "stringlist", "\\bprev|previous\\b,^<$,^(<<|\u00AB)$,^(<|\u00AB),(<|\u00AB)$");
options.add(["pageinfo", "pa"], "Desired info on :pa[geinfo]", "charlist", "gfm", options.add(["pageinfo", "pa"], "Desired info on :pa[geinfo]", "charlist", "gfm",
{ {
@@ -1020,6 +1020,20 @@ function Buffer() //{{{
elem.contentWindow.focus(); elem.contentWindow.focus();
return; return;
} }
else if (elemTagName == "input" && elem.getAttribute('type').toLowerCase() == "file")
{
commandline.input("Upload file: ", function (path)
{
let file = io.getFile(path);
if (!file.exists())
return liberator.beep();
elem.value = file.path;
}
, {completer: completion.file, default: elem.value});
return;
}
elem.focus(); elem.focus();
@@ -1125,6 +1139,20 @@ function Buffer() //{{{
offsetX = Number(coords[0]) + 1; offsetX = Number(coords[0]) + 1;
offsetY = Number(coords[1]) + 1; offsetY = Number(coords[1]) + 1;
} }
else if (localName == "input" && elem.getAttribute('type').toLowerCase() == "file")
{
commandline.input("Upload file: ", function (path)
{
let file = io.getFile(path);
if (!file.exists())
return liberator.beep();
elem.value = file.path;
}
, {completer: completion.file, default: elem.value});
return;
}
let ctrlKey = false, shiftKey = false; let ctrlKey = false, shiftKey = false;
switch (where) switch (where)

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -658,6 +658,11 @@ CompletionContext.prototype = {
this.tabPressed = false; this.tabPressed = false;
this.title = ["Completions"]; this.title = ["Completions"];
this.updateAsync = false; this.updateAsync = false;
try
{
this.waitingForTab = false;
}
catch (e) {}
this.cancelAll(); this.cancelAll();
@@ -676,6 +681,11 @@ CompletionContext.prototype = {
for each (let context in this.contexts) for each (let context in this.contexts)
{ {
context.hasItems = false; context.hasItems = false;
try
{
context.incomplete = false;
}
catch (e) {}
} }
}, },
@@ -683,8 +693,9 @@ CompletionContext.prototype = {
* Wait for all subcontexts to complete. * Wait for all subcontexts to complete.
* *
* @param {boolean} interruptible When true, the call may be interrupted * @param {boolean} interruptible When true, the call may be interrupted
* via <C-c>. In this case, "Interrupted" may be thrown. * via <C-c>, in which case, "Interrupted" may be thrown.
* @param {number} timeout The maximum time, in milliseconds, to wait. * @param {number} timeout The maximum time, in milliseconds, to wait.
* If 0 or null, wait indefinately.
*/ */
wait: function wait(interruptable, timeout) wait: function wait(interruptable, timeout)
{ {
@@ -1415,15 +1426,17 @@ function Completion() //{{{
colorScheme: function colorScheme(context) colorScheme: function colorScheme(context)
{ {
// TODO: use path for the description? let colors = [];
io.getRuntimeDirectories("colors").forEach(function (dir) { io.getRuntimeDirectories("colors").forEach(function (dir) {
context.fork(dir.path, 0, null, function (context) { io.readDirectory(dir).forEach(function (file) {
context.filter = dir.path + IO.PATH_SEP + context.filter; if (/\.vimp$/.test(file.leafName) && !colors.some(function (c) c.leafName == file.leafName))
completion.file(context); colors.push(file);
context.title = ["Color Scheme"];
context.quote = ["", function (text) text.replace(/\.vimp$/, ""), ""];
}); });
}); });
context.title = ["Color Scheme", "Runtime Path"];
context.completions = [[c.leafName.replace(/\.vimp$/, ""), c.parent.path] for ([,c] in Iterator(colors))]
}, },
command: function command(context) command: function command(context)

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -623,12 +623,23 @@ function Editor() //{{{
pasteClipboard: function () pasteClipboard: function ()
{ {
if (liberator.has("Win32"))
{
this.executeCommand("cmd_paste");
return;
}
// FIXME: #93 (<s-insert> in the bottom of a long textarea bounces up)
let elem = window.document.commandDispatcher.focusedElement; let elem = window.document.commandDispatcher.focusedElement;
if (elem.setSelectionRange && util.readFromClipboard()) if (elem.setSelectionRange && util.readFromClipboard())
// readFromClipboard would return 'undefined' if not checked // readFromClipboard would return 'undefined' if not checked
// dunno about .setSelectionRange // dunno about .setSelectionRange
{ {
// This is a hacky fix - but it works.
let curTop = elem.scrollTop;
let curLeft = elem.scrollLeft;
let rangeStart = elem.selectionStart; // caret position let rangeStart = elem.selectionStart; // caret position
let rangeEnd = elem.selectionEnd; let rangeEnd = elem.selectionEnd;
let tempStr1 = elem.value.substring(0, rangeStart); let tempStr1 = elem.value.substring(0, rangeStart);
@@ -637,6 +648,9 @@ function Editor() //{{{
elem.value = tempStr1 + tempStr2 + tempStr3; elem.value = tempStr1 + tempStr2 + tempStr3;
elem.selectionStart = rangeStart + tempStr2.length; elem.selectionStart = rangeStart + tempStr2.length;
elem.selectionEnd = elem.selectionStart; elem.selectionEnd = elem.selectionStart;
elem.scrollTop = curTop;
elem.scrollLeft = curLeft;
} }
}, },

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -898,6 +898,7 @@ function Events() //{{{
let wasFeeding = this.feedingKeys; let wasFeeding = this.feedingKeys;
this.feedingKeys = true; this.feedingKeys = true;
this.duringFeed = this.duringFeed || "";
let wasSilent = commandline.silent; let wasSilent = commandline.silent;
if (silent) if (silent)
commandline.silent = silent; commandline.silent = silent;
@@ -993,6 +994,15 @@ function Events() //{{{
this.feedingKeys = wasFeeding; this.feedingKeys = wasFeeding;
if (silent) if (silent)
commandline.silent = wasSilent; commandline.silent = wasSilent;
if (this.duringFeed != "")
{
//Create a scalar constant for closure.
let duringFeed = this.duringFeed;
this.duringFeed = "";
setTimeout(function () events.feedkeys(duringFeed, false, false, true), 0);
}
} }
return i == keys.length; return i == keys.length;
}, },
@@ -1370,13 +1380,23 @@ function Events() //{{{
// we can differentiate between a recorded <C-c> // we can differentiate between a recorded <C-c>
// interrupting whatever it's started and a real <C-c> // interrupting whatever it's started and a real <C-c>
// interrupting our playback. // interrupting our playback.
if (events.feedingKeys) if (events.feedingKeys && !event.isMacro)
{ {
if (key == "<C-c>" && !event.isMacro) if (key == "<C-c>")
{ {
events.feedingKeys = false; events.feedingKeys = false;
if (lastMacro) if (modes.isReplaying)
{
modes.isReplaying = false;
setTimeout(function () { liberator.echomsg("Canceled playback of macro '" + lastMacro + "'"); }, 100); setTimeout(function () { liberator.echomsg("Canceled playback of macro '" + lastMacro + "'"); }, 100);
}
event.preventDefault();
event.stopPropagation();
return true;
}
else
{
events.duringFeed += key;
event.preventDefault(); event.preventDefault();
event.stopPropagation(); event.stopPropagation();
return true; return true;
@@ -1664,13 +1684,16 @@ function Events() //{{{
} }
}, },
// for notifying the user about secure web pages // for notifying the user about secure web pages
onSecurityChange: function (webProgress, aRequest, aState) onSecurityChange: function (webProgress, request, state)
{ {
if (aState & Ci.nsIWebProgressListener.STATE_IS_INSECURE) // TODO: do something useful with STATE_SECURE_MED and STATE_SECURE_LOW
if (state & Ci.nsIWebProgressListener.STATE_IS_INSECURE)
statusline.setClass("insecure"); statusline.setClass("insecure");
else if (aState & Ci.nsIWebProgressListener.STATE_IS_BROKEN) else if (state & Ci.nsIWebProgressListener.STATE_IS_BROKEN)
statusline.setClass("broken"); statusline.setClass("broken");
else if (aState & Ci.nsIWebProgressListener.STATE_IS_SECURE) else if (state & Ci.nsIWebProgressListener.STATE_IDENTITY_EV_TOPLEVEL)
statusline.setClass("extended");
else if (state & Ci.nsIWebProgressListener.STATE_SECURE_HIGH)
statusline.setClass("secure"); statusline.setClass("secure");
}, },
onStatusChange: function (webProgress, request, status, message) onStatusChange: function (webProgress, request, status, message)
@@ -1697,7 +1720,7 @@ function Events() //{{{
{ {
setTimeout(statusline.updateUrl, 100); setTimeout(statusline.updateUrl, 100);
}, },
setOverLink : function (link, b) setOverLink: function (link, b)
{ {
let ssli = options["showstatuslinks"]; let ssli = options["showstatuslinks"];
if (link && ssli) if (link && ssli)
@@ -1761,11 +1784,12 @@ function Events() //{{{
window.XULBrowserWindow = self.progressListener; window.XULBrowserWindow = self.progressListener;
window.QueryInterface(Ci.nsIInterfaceRequestor) window.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIWebNavigation) .getInterface(Ci.nsIWebNavigation)
.QueryInterface(Ci.nsIDocShellTreeItem).treeOwner .QueryInterface(Ci.nsIDocShellTreeItem)
.QueryInterface(Ci.nsIInterfaceRequestor) .treeOwner
.getInterface(Ci.nsIXULWindow) .QueryInterface(Ci.nsIInterfaceRequestor)
.XULBrowserWindow = window.XULBrowserWindow; .getInterface(Ci.nsIXULWindow)
.XULBrowserWindow = self.progressListener;
try try
{ {
getBrowser().addProgressListener(self.progressListener, Ci.nsIWebProgress.NOTIFY_ALL); getBrowser().addProgressListener(self.progressListener, Ci.nsIWebProgress.NOTIFY_ALL);

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -165,8 +165,76 @@ function Hints() //{{{
text = elem.textContent.toLowerCase(); text = elem.textContent.toLowerCase();
span = baseNodeAbsolute.cloneNode(true); span = baseNodeAbsolute.cloneNode(true);
span.style.left = Math.max((rect.left + scrollX), scrollX) + "px";
span.style.top = Math.max((rect.top + scrollY), scrollY) + "px"; let leftpos = Math.max((rect.left + scrollX), scrollX);
let toppos = Math.max((rect.top + scrollY), scrollY);
if (tagname == "area")
{
// TODO: Maybe put the following into a seperate function
try
{
// Need to add the offset to the area element.
// Always try to find the top-left point, as per vimperator default.
let shape = elem.getAttribute("shape").toLowerCase();
let coordstr = elem.getAttribute("coords");
// Technically it should be only commas, but hey
coordstr = coordstr.replace(/\s+[;,]\s+/g, ",").replace(/\s+/g, ",");
let coords = coordstr.split(",").map(Number);
if ((shape == "rect" || shape == "rectangle") && coords.length == 4)
{
leftpos += coords[0];
toppos += coords[1];
}
else if (shape == "circle" && coords.length == 3)
{
leftpos += coords[0] - coords[2] / Math.sqrt(2);
toppos += coords[1] - coords[2] / Math.sqrt(2);
}
else if ((shape == "poly" || shape == "polygon") && coords.length % 2 == 0)
{
let leftbound = Infinity;
let topbound = Infinity;
// First find the top-left corner of the bounding rectangle (offset from image topleft can be noticably suboptimal)
for (let i = 0; i < coords.length; i += 2)
{
leftbound = Math.min(coords[i], leftbound);
topbound = Math.min(coords[i+1], topbound);
}
let curtop = null;
let curleft = null;
let curdist = Infinity;
// Then find the closest vertex. (we could generalise to nearest point on an edge, but I doubt there is a need)
for (let i = 0; i < coords.length; i += 2)
{
let leftoffset = coords[i] - leftbound;
let topoffset = coords[i+1] - topbound;
let dist = Math.sqrt(leftoffset * leftoffset + topoffset * topoffset);
if (dist < curdist)
{
curdist = dist;
curleft = coords[i];
curtop = coords[i+1];
}
}
// If we found a satisfactory offset, let's use it.
if (curdist < Infinity)
{
leftpos += curleft;
toppos += curtop;
}
}
}
catch (e) {} //badly formed document, or shape == "default" in which case we don't move the hint
}
span.style.left = leftpos + "px";
span.style.top = toppos + "px";
fragment.appendChild(span); fragment.appendChild(span);
pageHints.push([elem, text, span, null, elem.style.backgroundColor, elem.style.color]); pageHints.push([elem, text, span, null, elem.style.backgroundColor, elem.style.color]);

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Code based on venkman Code based on venkman
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
@@ -547,6 +547,7 @@ function IO() //{{{
* @param {boolean} always When true, return a path whether * @param {boolean} always When true, return a path whether
* the file exists or not. * the file exists or not.
* @default $HOME. * @default $HOME.
* @returns {nsIFile} The RC file or null if none is found.
*/ */
getRCFile: function (dir, always) getRCFile: function (dir, always)
{ {

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -1225,7 +1225,12 @@ const liberator = (function () //{{{
config.features.push(getPlatformFeature()); config.features.push(getPlatformFeature());
config.defaults = config.defaults || {}; config.defaults = config.defaults || {};
config.guioptions = config.guioptions || {}; config.guioptions = config.guioptions || {};
config.browserModes = config.browserModes || [modes.NORMAL];
// -> we can't use this, since config.browserModes might already be defined as a getter-only
// TODO: also change the other config.* defaults?
// config.browserModes = config.browserModes || [modes.NORMAL];
if (!config.browserModes)
config.browserModes = [modes.NORMAL];
config.mailModes = config.mailModes || [modes.NORMAL]; config.mailModes = config.mailModes || [modes.NORMAL];
// TODO: suitable defaults? // TODO: suitable defaults?
//config.mainWidget //config.mainWidget
@@ -1292,13 +1297,12 @@ const liberator = (function () //{{{
let extensionName = config.name.toUpperCase(); let extensionName = config.name.toUpperCase();
let init = services.get("environment").get(extensionName + "_INIT"); let init = services.get("environment").get(extensionName + "_INIT");
let rcFile = io.getRCFile("~");
if (init) if (init)
liberator.execute(init); liberator.execute(init);
else else
{ {
let rcFile = io.getRCFile("~");
if (rcFile) if (rcFile)
{ {
io.source(rcFile.path, true); io.source(rcFile.path, true);
@@ -1311,7 +1315,7 @@ const liberator = (function () //{{{
if (options["exrc"]) if (options["exrc"])
{ {
let localRCFile = io.getRCFile(io.getCurrentDirectory().path); let localRCFile = io.getRCFile(io.getCurrentDirectory().path);
if (localRCFile) if (localRCFile && !localRCFile.equals(rcFile))
io.source(localRCFile.path, true); io.source(localRCFile.path, true);
} }

View File

@@ -13,7 +13,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or

View File

@@ -71,9 +71,10 @@ Highlights.prototype.CSS = <![CDATA[
LineNr color: orange; background: white; LineNr color: orange; background: white;
Question color: green; background: white; font-weight: bold; Question color: green; background: white; font-weight: bold;
StatusLine color: white; background: black; StatusLine color: white; background: black;
StatusLineBroken color: black; background: #FF6060 /* light-red */ StatusLineBroken color: black; background: #FFa0a0 /* light-red */
StatusLineSecure color: black; background: #B0FF00 /* light-green */ StatusLineSecure color: black; background: #a0a0FF /* light-blue */
StatusLineExtended color: black; background: #a0FFa0 /* light-green */
TabClose TabClose
TabIcon TabIcon

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -623,6 +623,7 @@ function Tabs() //{{{
completer: function (context) completer: function (context)
{ {
context.anchored = false; context.anchored = false;
context.compare = CompletionContext.Sort.unsorted;
context.keys = { text: function (item) item.state.entries[0].url, description: "title" }; context.keys = { text: function (item) item.state.entries[0].url, description: "title" };
context.completions = tabs.closedTabs; context.completions = tabs.closedTabs;
}, },

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -1222,6 +1222,8 @@ function CommandLine() //{{{
* for the user's input. * for the user's input.
* @... {string} promptHighlight - The HighlightGroup used for the * @... {string} promptHighlight - The HighlightGroup used for the
* prompt. @default "Question" * prompt. @default "Question"
* @... {string} default - The initial value that will be returned
* if the user presses <CR> straightaway. @default ""
*/ */
input: function _input(prompt, callback, extra) input: function _input(prompt, callback, extra)
{ {
@@ -1303,20 +1305,17 @@ function CommandLine() //{{{
} }
else if (event.type == "input") else if (event.type == "input")
{ {
//liberator.dump("input: " + command);
this.resetCompletions(); this.resetCompletions();
liberator.triggerCallback("change", currentExtendedMode, command); liberator.triggerCallback("change", currentExtendedMode, command);
} }
else if (event.type == "keypress") else if (event.type == "keypress")
{ {
let key = events.toString(event);
if (completions) if (completions)
completions.previewClear(); completions.previewClear();
if (!currentExtendedMode) if (!currentExtendedMode)
return true; return true;
let key = events.toString(event);
//liberator.log("command line handling key: " + key + "\n");
// user pressed ENTER to carry out a command // user pressed ENTER to carry out a command
// user pressing ESCAPE is handled in the global onEscape // user pressing ESCAPE is handled in the global onEscape
// FIXME: <Esc> should trigger "cancel" event // FIXME: <Esc> should trigger "cancel" event
@@ -2040,16 +2039,18 @@ function StatusLine() //{{{
/** /**
* Update the status bar to indicate how secure the website is: * Update the status bar to indicate how secure the website is:
* extended - Secure connection with Extended Validation(EV) certificate.
* secure - Secure connection with valid certificate. * secure - Secure connection with valid certificate.
* broken - Secure connection with invalid certificate, or * broken - Secure connection with invalid certificate, or
* mixed content. * mixed content.
* insecure - Insecure connection. * insecure - Insecure connection.
* *
* @param {'secure'|'broken'|'insecure'} type * @param {'extended'|'secure'|'broken'|'insecure'} type
*/ */
setClass: function setClass(type) setClass: function setClass(type)
{ {
const highlightGroup = { const highlightGroup = {
extended: "StatusLineExtended",
secure: "StatusLineSecure", secure: "StatusLineSecure",
broken: "StatusLineBroken", broken: "StatusLineBroken",
insecure: "StatusLine" insecure: "StatusLine"

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -249,6 +249,40 @@ const util = { //{{{
return delimiter + str.replace(/([\\'"])/g, "\\$1").replace("\n", "\\n", "g").replace("\t", "\\t", "g") + delimiter; return delimiter + str.replace(/([\\'"])/g, "\\$1").replace("\n", "\\n", "g").replace("\t", "\\t", "g") + delimiter;
}, },
/**
* Split a string on literal occurances of a marker.
*
* Specifically this ignores occurences preceded by a backslash, or
* contained within 'single' or "double" quotes.
*
* It assumes backslash escaping on strings, and will thus not count quotes
* that are preceded by a backslash or within other quotes as starting or
* ending quoted sections of the string.
*
* @param {string} str
* @param {RegExp} marker
*/
splitLiteral: function splitLiteral(str, marker)
{
let results = [];
let resep = RegExp(/^(([^\\'"]|\\.|'([^\\']|\\.)*'|"([^\\"]|\\.)*")*?)/.source + marker.source);
let cont = true;
while (cont)
{
cont = false;
str = str.replace(resep, function (match, before)
{
results.push(before);
cont = true;
return "";
});
}
results.push(str);
return results;
},
/** /**
* Converts <b>bytes</b> to a pretty printed data size string. * Converts <b>bytes</b> to a pretty printed data size string.
* *
@@ -618,7 +652,7 @@ const util = { //{{{
*/ */
stringToURLArray: function stringToURLArray(str) stringToURLArray: function stringToURLArray(str)
{ {
let urls = str.split(RegExp("\\s*" + options["urlseparator"] + "\\s*")); let urls = util.splitLiteral(str, RegExp("\\s*" + options["urlseparator"] + "\\s*"));
return urls.map(function (url) { return urls.map(function (url) {
try try
@@ -641,7 +675,7 @@ const util = { //{{{
// Ok, not a valid proto. If it looks like URL-ish (foo.com/bar), // Ok, not a valid proto. If it looks like URL-ish (foo.com/bar),
// let Gecko figure it out. // let Gecko figure it out.
if (/[.]/.test(url) && !/\s/.test(url) || /^[\w-.]+:\d+(?:\/|$)/.test(url)) if (/[.\/]/.test(url) && !/\s/.test(url) || /^[\w-.]+:\d+(?:\/|$)/.test(url))
return url; return url;
// TODO: it would be clearer if the appropriate call to // TODO: it would be clearer if the appropriate call to

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or

View File

@@ -1,5 +1,5 @@
Main developer/Project founder: Main developer/Project founder:
* Martin Stubenschrott (stubenschrott@gmx.net) * Martin Stubenschrott (stubenschrott@vimperator.org)
Developers: Developers:
* Daniel Bainton (dpb .AT. driftaway .DOT. org) * Daniel Bainton (dpb .AT. driftaway .DOT. org)

View File

@@ -10,7 +10,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or

View File

@@ -13,7 +13,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or

View File

@@ -1 +0,0 @@
../../../common/content/liberator.xul

View File

@@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- ***** BEGIN LICENSE BLOCK ***** {{{
Version: MPL 1.1/GPL 2.0/LGPL 2.1
The contents of this file are subject to the Mozilla Public License Version
1.1 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the
License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or
the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
in which case the provisions of the GPL or the LGPL are applicable instead
of those above. If you wish to allow use of your version of this file only
under the terms of either the GPL or the LGPL, and not to allow others to
use your version of this file under the terms of the MPL, indicate your
decision by deleting the provisions above and replace them with the notice
and other provisions required by the GPL or the LGPL. If you do not delete
the provisions above, a recipient may use your version of this file under
the terms of any one of the MPL, the GPL or the LGPL.
}}} ***** END LICENSE BLOCK ***** -->
<?xml-stylesheet href="chrome://liberator/skin/liberator.css" type="text/css"?>
<!DOCTYPE overlay SYSTEM "liberator.dtd" [
<!ENTITY liberator.content "chrome://liberator/content/">
]>
<overlay id="liberator"
xmlns:liberator="http://vimperator.org/namespaces/liberator"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:nc="http://home.netscape.com/NC-rdf#"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript;version=1.8" src="&liberator.content;liberator-overlay.js"/>
<window id="&liberator.mainWindow;">
<keyset id="mainKeyset">
<key id="key_open_vimbar" key=":" oncommand="liberator.modules.commandline.open(':', '', liberator.modules.modes.EX);" modifiers=""/>
<key id="key_stop" keycode="VK_ESCAPE" oncommand="liberator.modules.events.onEscape();"/>
<!-- other keys are handled inside the event loop in events.js -->
</keyset>
<popupset>
<panel id="liberator-visualbell" liberator:highlight="Bell"/>
</popupset>
<!--this notifies us also of focus events in the XUL
from: http://developer.mozilla.org/en/docs/XUL_Tutorial:Updating_Commands !-->
<commandset id="onVimperatorFocus"
commandupdater="true"
events="focus"
oncommandupdate="if (liberator.modules.events != undefined) liberator.modules.events.onFocusChange(event);"/>
<commandset id="onVimperatorSelect"
commandupdater="true"
events="select"
oncommandupdate="if (liberator.modules.events != undefined) liberator.modules.events.onSelectionChange(event);"/>
<!-- As of Firefox 3.1pre, <iframe>.height changes do not seem to have immediate effect,
therefore we need to put them into a <vbox> for which that works just fine -->
<vbox class="liberator-container" hidden="false" collapsed="true">
<iframe id="liberator-multiline-output" src="chrome://liberator/content/buffer.xhtml"
flex="1" hidden="false" collapsed="false"
onclick="liberator.modules.commandline.onMultilineOutputEvent(event)"/>
</vbox>
<vbox class="liberator-container" hidden="false" collapsed="true">
<iframe id="liberator-completions" src="chrome://liberator/content/buffer.xhtml"
flex="1" hidden="false" collapsed="false"
onclick="liberator.modules.commandline.onMultilineOutputEvent(event)"/>
</vbox>
<stack orient="horizontal" align="stretch" class="liberator-container" liberator:highlight="CmdLine">
<textbox class="plain" id="liberator-message" flex="1" readonly="true" liberator:highlight="Normal"/>
<hbox id="liberator-commandline" hidden="false" collapsed="true" class="liberator-container" liberator:highlight="Normal">
<label class="plain" id="liberator-commandline-prompt" flex="0" crop="end" value="" collapsed="true"/>
<textbox class="plain" id="liberator-commandline-command" flex="1" type="timed" timeout="100"
oninput="liberator.modules.commandline.onEvent(event);"
onkeyup="liberator.modules.commandline.onEvent(event);"
onfocus="liberator.modules.commandline.onEvent(event);"
onblur="liberator.modules.commandline.onEvent(event);"/>
</hbox>
</stack>
<vbox class="liberator-container" hidden="false" collapsed="false">
<textbox id="liberator-multiline-input" class="plain" flex="1" rows="1" hidden="false" collapsed="true" multiline="true"
onkeypress="liberator.modules.commandline.onMultilineInputEvent(event);"
oninput="liberator.modules.commandline.onMultilineInputEvent(event);"
onblur="liberator.modules.commandline.onMultilineInputEvent(event);"/>
</vbox>
</window>
<statusbar id="status-bar" liberator:highlight="StatusLine">
<hbox insertbefore="&liberator.statusBefore;" insertafter="&liberator.statusAfter;"
id="liberator-statusline" flex="1" hidden="false" align="center">
<textbox class="plain" id="liberator-statusline-field-url" readonly="false" flex="1" crop="end"/>
<label class="plain" id="liberator-statusline-field-inputbuffer" flex="0"/>
<label class="plain" id="liberator-statusline-field-progress" flex="0"/>
<label class="plain" id="liberator-statusline-field-tabcount" flex="0"/>
<label class="plain" id="liberator-statusline-field-bufferposition" flex="0"/>
</hbox>
<!-- just hide them since other elements expect them -->
<statusbarpanel id="statusbar-display" hidden="true"/>
<statusbarpanel id="statusbar-progresspanel" hidden="true"/>
</statusbar>
</overlay>
<!-- vim: set fdm=marker sw=4 ts=4 et: -->

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or

View File

@@ -13,7 +13,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or

View File

@@ -20,7 +20,7 @@
<Description> <Description>
<em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id> <em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
<em:minVersion>3.0b2pre</em:minVersion> <em:minVersion>3.0b2pre</em:minVersion>
<em:maxVersion>3.0b2</em:maxVersion> <em:maxVersion>3.0b3</em:maxVersion>
</Description> </Description>
</em:targetApplication> </em:targetApplication>

View File

@@ -2,7 +2,7 @@
[glossary] [glossary]
author=Martin Stubenschrott author=Martin Stubenschrott
email=stubenschrott@gmx.net email=stubenschrott@vimperator.org
# [header] # [header]
# <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" # <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

View File

@@ -22,7 +22,7 @@ If you like it, but can't remember the shortcuts, press [m]F1[m] or
[c]:help[c] to get this help window back. [c]:help[c] to get this help window back.
|author| |donation| + |author| |donation| +
Muttator was written by mailto:stubenschrott@gmx.net[Martin Stubenschrott]. Muttator was written by mailto:stubenschrott@vimperator.org[Martin Stubenschrott].
If you appreciate my work on Muttator and want to encourage me working on it If you appreciate my work on Muttator and want to encourage me working on it
more, you can either send me greetings, patches or make a donation: more, you can either send me greetings, patches or make a donation:

View File

@@ -1,5 +1,5 @@
Main developer/Project founder: Main developer/Project founder:
* Martin Stubenschrott (stubenschrott@gmx.net) * Martin Stubenschrott (stubenschrott@vimperator.org)
Developers: Developers:
* Doug Kearns (dougkearns@gmail.com) * Doug Kearns (dougkearns@gmail.com)
@@ -11,6 +11,7 @@ Developers:
* anekos <anekos@snca.net> * anekos <anekos@snca.net>
* teramako <teramako@gmail.com> * teramako <teramako@gmail.com>
* janus_wel <janus.wel.3@gmail.com> * janus_wel <janus.wel.3@gmail.com>
* Conrad Irwin
Inactive/former developers: Inactive/former developers:
* Viktor Kojouharov (Виктор Кожухаров) * Viktor Kojouharov (Виктор Кожухаров)
@@ -18,7 +19,7 @@ Inactive/former developers:
Patches (in no special order): Patches (in no special order):
* Ruud Grosmann ('followhints' option) * Ruud Grosmann ('followhints' option)
* Xie&Tian (multibyte support for hints) * Xie&Tian (multibyte support for hints, doc fixes)
* Juergen Descher * Juergen Descher
* Kazuo (count support for ctrl-^) * Kazuo (count support for ctrl-^)
* Daniel Schaffrath (;b support) * Daniel Schaffrath (;b support)

View File

@@ -2,6 +2,13 @@ Continuous donations:
* Daniel Bainton (web hosting) * Daniel Bainton (web hosting)
2009: 2009:
* Christoph Petzold
* Bjoern Steinbrink
* Erlend Hamberg
* Fabien Benetou
* Arvin Moezzi
* Calogero Lo Leggio
* Sapan Bhatia
* Gavin Sinclair * Gavin Sinclair
* Stephen Borchert * Stephen Borchert
* Convolution * Convolution

View File

@@ -1,6 +1,6 @@
#### configuration #### configuration
VERSION = 2.0b3pre VERSION = 2.0
NAME = vimperator NAME = vimperator
include ../common/Makefile.common include ../common/Makefile.common

View File

@@ -6,15 +6,15 @@
* add "w" and "W" Normal mode mappings for symmetry with o/O and t/T * add "w" and "W" Normal mode mappings for symmetry with o/O and t/T
* add :messclear * add :messclear
2008-XX-XX: 2009-03-28:
* version 2.0 (probably) * version 2.0
* IMPORTANT: For compatibility with vim, guioptions=b has been renamed * IMPORTANT: For compatibility with vim, guioptions=b has been renamed
'B'. 'b' now represents the bottom scrollbar. 'B'. 'b' now represents the bottom scrollbar.
* IMPORTANT: :set now sets multiple options, as in Vim. Spaces in values * IMPORTANT: :set now sets multiple options, as in Vim. Spaces in values
must be quoted or escaped. must be quoted or escaped.
* IMPORTANT: Due to much improved autocompletion, changed default 'complete' option * IMPORTANT: Due to much improved autocompletion, changed default 'complete' option
value to 'sfl', listing intelligent Firefox location bar results. Removed possibility value to 'sfl', listing intelligent Firefox location bar results. Using 'b' or 'h'
to use 'h' in 'complete'. might cause problems/massive slowdowns, use with care!
* IMPORTANT: AlwaysHint mode with ;F mode changed the semantics slightly. * IMPORTANT: AlwaysHint mode with ;F mode changed the semantics slightly.
* IMPORTANT: command actions now take an args object, returned from * IMPORTANT: command actions now take an args object, returned from
commands.parseArgs, as their first argument. This will break any commands commands.parseArgs, as their first argument. This will break any commands
@@ -29,6 +29,8 @@
* IMPORTANT: 'verbose' is now by default at 1, set to 0 to not show any status messages. * IMPORTANT: 'verbose' is now by default at 1, set to 0 to not show any status messages.
* IMPORTANT: $VIMPERATOR_HOME is no longer used. * IMPORTANT: $VIMPERATOR_HOME is no longer used.
* Selecting an <input type="file"> with hints now causes the commandline to prompt
for file input (instead of doing nothing).
* [count]<C-n> now goes to the [count]th next tab rather than the [count]th tab. * [count]<C-n> now goes to the [count]th next tab rather than the [count]th tab.
* add ~/.vimperator/info/{profile}/, similar to viminfo * add ~/.vimperator/info/{profile}/, similar to viminfo
* add $VIMPERATOR_RUNTIME, $VIMPERATOR_INIT * add $VIMPERATOR_RUNTIME, $VIMPERATOR_INIT
@@ -51,7 +53,7 @@
* add 'exrc' * add 'exrc'
* add 'errorbells' * add 'errorbells'
* add shell command completion for :! * add shell command completion for :!
* add :map <silent> to prevent a mapping from being echoed * add :map <silent> to prevent a mapping from being echoed (might be slow currently, however)
* add guioptions=nN to number tabs * add guioptions=nN to number tabs
* add :loadplugins command * add :loadplugins command
* add . mapping * add . mapping

View File

@@ -39,6 +39,8 @@ BUGS:
- URLs in :ls output are no longer hyperlinks - URLs in :ls output are no longer hyperlinks
FEATURES: FEATURES:
9 change the extension ID to vimperator@vimperator.org rather than
vimperator@mozdev.org
9 finish :help TODOs 9 finish :help TODOs
9 fix local options 9 fix local options
9 adaptive timeout for auto-completions, :set completions can be updated more often than 9 adaptive timeout for auto-completions, :set completions can be updated more often than

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -737,6 +737,7 @@ function History() //{{{
context.anchored = false; context.anchored = false;
context.completions = [sh.getEntryAtIndex(i, false) for (i in util.range(sh.index, 0, -1))]; context.completions = [sh.getEntryAtIndex(i, false) for (i in util.range(sh.index, 0, -1))];
context.keys = { text: function (item) item.URI.spec, description: "title" }; context.keys = { text: function (item) item.URI.spec, description: "title" };
context.compare = CompletionContext.Sort.unsorted;
}, },
count: true, count: true,
literal: 0 literal: 0
@@ -783,6 +784,7 @@ function History() //{{{
context.anchored = false; context.anchored = false;
context.completions = [sh.getEntryAtIndex(i, false) for (i in util.range(sh.index + 1, sh.count))]; context.completions = [sh.getEntryAtIndex(i, false) for (i in util.range(sh.index + 1, sh.count))];
context.keys = { text: function (item) item.URI.spec, description: "title" }; context.keys = { text: function (item) item.URI.spec, description: "title" };
context.compare = CompletionContext.Sort.unsorted;
}, },
count: true, count: true,
literal: 0 literal: 0

View File

@@ -11,7 +11,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -49,7 +49,7 @@ const config = { //{{{
["DOMLoad", "Triggered when a page's DOM content has fully loaded"], ["DOMLoad", "Triggered when a page's DOM content has fully loaded"],
["DownloadPost", "Triggered when a download has completed"], ["DownloadPost", "Triggered when a download has completed"],
["Fullscreen", "Triggered when the browser's fullscreen state changes"], ["Fullscreen", "Triggered when the browser's fullscreen state changes"],
["LocationChange", "Triggered when changing tabs or when naviagtion to a new location"], ["LocationChange", "Triggered when changing tabs or when navigation to a new location"],
["PageLoadPre", "Triggered after a page load is initiated"], ["PageLoadPre", "Triggered after a page load is initiated"],
["PageLoad", "Triggered when a page gets (re)loaded/opened"], ["PageLoad", "Triggered when a page gets (re)loaded/opened"],
["ShellCmdPost", "Triggered after executing a shell command with :!cmd"], ["ShellCmdPost", "Triggered after executing a shell command with :!cmd"],

View File

@@ -13,7 +13,7 @@ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the for the specific language governing rights and limitations under the
License. License.
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@gmx.net> Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
Alternatively, the contents of this file may be used under the terms of Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or either the GNU General Public License Version 2 or later (the "GPL"), or

View File

@@ -20,7 +20,7 @@
<Description> <Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>3.0</em:minVersion> <em:minVersion>3.0</em:minVersion>
<em:maxVersion>3.2a1pre</em:maxVersion> <em:maxVersion>3.6a1pre</em:maxVersion>
</Description> </Description>
</em:targetApplication> </em:targetApplication>
</Description> </Description>

View File

@@ -2,7 +2,7 @@
[glossary] [glossary]
author=Martin Stubenschrott author=Martin Stubenschrott
email=stubenschrott@gmx.net email=stubenschrott@vimperator.org
[header] [header]
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>

View File

@@ -51,7 +51,7 @@ Each token is analyzed and in this order:
to set a custom name, you can change it with [c]:dialog searchengines[c]. to set a custom name, you can change it with [c]:dialog searchengines[c].
3. Opened with the default search engine or keyword (specified with the 3. Opened with the default search engine or keyword (specified with the
'defsearch' option) if the first word is no search engine ([c]:open linus 'defsearch' option) if the first word is no search engine ([c]:open linus
torvalds[c] opens a Google search for linux torvalds). torvalds[c] opens a Google search for linus torvalds).
4. Passed directly to Firefox in all other cases ([c]:open www.osnews.com, 4. Passed directly to Firefox in all other cases ([c]:open www.osnews.com,
www.slashdot.org[c] opens OSNews in the current, and Slashdot in a new www.slashdot.org[c] opens OSNews in the current, and Slashdot in a new
background tab). background tab).
@@ -169,7 +169,7 @@ ________________________________________________________________________________
section:Navigating[navigating] section:Navigating[navigating]
|H| |<C-o>| |CTRL-O| |:ba| |:back| |H| |<C-o>| |CTRL-O| |:ba| |:back|
||:[count]ba[ck] [url]|| + ||:[count]ba[ck] [a][url][a]|| +
||:ba[ck]!|| + ||:ba[ck]!|| +
||CTRL-o|| ||CTRL-o||
________________________________________________________________________________ ________________________________________________________________________________
@@ -180,7 +180,7 @@ ________________________________________________________________________________
|L| |<C-i>| |CTRL-i| |:fo| |:fw| |:forward| |L| |<C-i>| |CTRL-i| |:fo| |:fw| |:forward|
||:[count]fo[rward] [url]|| + ||:[count]fo[rward] [a][url][a]|| +
||:fo[rward]!|| + ||:fo[rward]!|| +
||CTRL-i|| ||CTRL-i||
________________________________________________________________________________ ________________________________________________________________________________

View File

@@ -123,6 +123,16 @@ set).
________________________________________________________________________________ ________________________________________________________________________________
|<Right>| |l| +
||[count]l||
________________________________________________________________________________
Scroll document to the right. If [count] is specified then move [count] times
as much to the right. +
If the document cannot scroll more, a beep is emitted (unless 'visualbell' is
set).
________________________________________________________________________________
|<C-d>| + |<C-d>| +
||[count]<C-d>|| ||[count]<C-d>||
________________________________________________________________________________ ________________________________________________________________________________
@@ -141,16 +151,6 @@ first set to this value.
________________________________________________________________________________ ________________________________________________________________________________
|<Right>| |l| +
||[count]l||
________________________________________________________________________________
Scroll document to the right. If [count] is specified then move [count] times
as much to the right. +
If the document cannot scroll more, a beep is emitted (unless 'visualbell' is
set).
________________________________________________________________________________
|<S-Space>| |<PageUp>| |<C-b>| + |<S-Space>| |<PageUp>| |<C-b>| +
||[count]<C-b>|| ||[count]<C-b>||
________________________________________________________________________________ ________________________________________________________________________________
@@ -235,7 +235,7 @@ default zoom levels are 30%, 50%, 67%, 80%, 90%, 100%, 110%, 120%, 133%, 150%,
The available zoom range can be changed by setting the The available zoom range can be changed by setting the
\'http://kb.mozillazine.org/Zoom.minPercent[zoom.minPercent]' and \'http://kb.mozillazine.org/Zoom.minPercent[zoom.minPercent]' and
\'http://kb.mozillazine.org/Zoom.minPercent[zoom.maxPercent]' Firefox \'http://kb.mozillazine.org/Zoom.maxPercent[zoom.maxPercent]' Firefox
preferences. The zoom levels can be changed using the preferences. The zoom levels can be changed using the
\'http://kb.mozillazine.org/Toolkit.zoomManager.zoomValues[toolkit.ZoomManager.zoomLevels]' \'http://kb.mozillazine.org/Toolkit.zoomManager.zoomValues[toolkit.ZoomManager.zoomLevels]'
preference. preference.
@@ -274,7 +274,7 @@ ________________________________________________________________________________
|zz| + |zz| +
||[count]zz|| ||[count]zz||
________________________________________________________________________________ ________________________________________________________________________________
Set text zoom value of current web page. Zoom value can be between 30 and 300%. Set text zoom value of current web page. Zoom value can be between 30% and 300%.
If it is omitted, text zoom is reset to 100%. If it is omitted, text zoom is reset to 100%.
________________________________________________________________________________ ________________________________________________________________________________
@@ -320,7 +320,7 @@ ________________________________________________________________________________
||:zo[om][!] +{value} | -{value}|| + ||:zo[om][!] +{value} | -{value}|| +
________________________________________________________________________________ ________________________________________________________________________________
Set zoom value of current web page. [a][value][a] can be an absolute value Set zoom value of current web page. [a][value][a] can be an absolute value
between 30 and 300% or a relative value if prefixed with "-" or "+". If between 30% and 300% or a relative value if prefixed with "-" or "+". If
[a][value][a] is omitted, zoom is reset to 100%. [a][value][a] is omitted, zoom is reset to 100%.
Normally this command operates on the text zoom, if used with [!] it operates Normally this command operates on the text zoom, if used with [!] it operates

View File

@@ -25,7 +25,7 @@ ________________________________________________________________________________
|c_<C-]>| + |c_<C-]>| +
||<C-]>|| ||<C-]>||
________________________________________________________________________________ ________________________________________________________________________________
Expand a Command-line abbreviation. Expand a command-line abbreviation.
________________________________________________________________________________ ________________________________________________________________________________

View File

@@ -70,7 +70,7 @@ ________________________________________________________________________________
________________________________________________________________________________ ________________________________________________________________________________
Sets or lists a variable. Sets the variable {var-name} to the value of the Sets or lists a variable. Sets the variable {var-name} to the value of the
expression {expr1}. If no expression is given, the value of the variable is expression {expr1}. If no expression is given, the value of the variable is
displayed.Without arguments, displays a list of all variables. displayed. Without arguments, displays a list of all variables.
________________________________________________________________________________ ________________________________________________________________________________

View File

@@ -20,7 +20,7 @@ ________________________________________________________________________________
|:addo| |:addons| + |:addo| |:addons| +
||:addo[ns]|| ||:addo[ns]||
________________________________________________________________________________ ________________________________________________________________________________
Show available Browser Extensions and Themes. Show available browser Extensions and Themes.
You can add/remove/disable browser extensions from this dialog. You can add/remove/disable browser extensions from this dialog.
Be aware that not all Firefox extensions work, because Vimperator overrides Be aware that not all Firefox extensions work, because Vimperator overrides
some key bindings and changes Firefox's GUI. some key bindings and changes Firefox's GUI.
@@ -34,7 +34,7 @@ Open a Firefox dialog.
Available dialogs: Available dialogs:
`------------------`----------------------------------- `------------------`-----------------------------------
*about* About Firefox *about* About Mozilla Firefox
*addbookmark* Add bookmark for the current page *addbookmark* Add bookmark for the current page
*addons* Manage Add-ons *addons* Manage Add-ons
*bookmarks* List your bookmarks *bookmarks* List your bookmarks

View File

@@ -170,7 +170,7 @@ section:Ex{nbsp}commands[ex-cmd-index,:index]
||[c]:delmarks[c]|| Delete the specified marks + ||[c]:delmarks[c]|| Delete the specified marks +
||[c]:delqmarks[c]|| Delete the specified QuickMarks + ||[c]:delqmarks[c]|| Delete the specified QuickMarks +
||[c]:delstyle[c]|| Delete any matching styles + ||[c]:delstyle[c]|| Delete any matching styles +
||[c]:dialog[c]|| Open a undefined dialog + ||[c]:dialog[c]|| Open a Firefox dialog +
||[c]:doautoall[c]|| Apply the autocommands matching the specified URL to all buffers + ||[c]:doautoall[c]|| Apply the autocommands matching the specified URL to all buffers +
||[c]:doautocmd[c]|| Apply the autocommands matching the specified URL to the current buffer + ||[c]:doautocmd[c]|| Apply the autocommands matching the specified URL to the current buffer +
||[c]:downloads[c]|| Show progress of current downloads + ||[c]:downloads[c]|| Show progress of current downloads +
@@ -218,11 +218,11 @@ section:Ex{nbsp}commands[ex-cmd-index,:index]
||[c]:qmark[c]|| Mark a URL with a letter for quick access + ||[c]:qmark[c]|| Mark a URL with a letter for quick access +
||[c]:qmarks[c]|| Show all QuickMarks + ||[c]:qmarks[c]|| Show all QuickMarks +
||[c]:quit[c]|| Quit current tab + ||[c]:quit[c]|| Quit current tab +
||[c]:quitall[c]|| Quit undefined + ||[c]:quitall[c]|| Quit Vimperator +
||[c]:redraw[c]|| Redraw the screen + ||[c]:redraw[c]|| Redraw the screen +
||[c]:reload[c]|| Reload current page + ||[c]:reload[c]|| Reload current page +
||[c]:reloadall[c]|| Reload all tab pages + ||[c]:reloadall[c]|| Reload all tab pages +
||[c]:restart[c]|| Force undefined to restart + ||[c]:restart[c]|| Force the browser to restart +
||[c]:runtime[c]|| Source the specified file from each directory in 'runtimepath' + ||[c]:runtime[c]|| Source the specified file from each directory in 'runtimepath' +
||[c]:saveas[c]|| Save current document to disk + ||[c]:saveas[c]|| Save current document to disk +
||[c]:sbclose[c]|| Close the sidebar window + ||[c]:sbclose[c]|| Close the sidebar window +
@@ -262,7 +262,7 @@ section:Options[option-index]
||'activate'|| Define when tabs are automatically activated + ||'activate'|| Define when tabs are automatically activated +
||'cdpath'|| List of directories searched when executing [c]:cd[c] + ||'cdpath'|| List of directories searched when executing [c]:cd[c] +
||'complete'|| Items which are completed at the [c]:[tab]open prompt[c] + ||'complete'|| Items which are completed at the [c]:[tab]open[c] prompt +
||'defsearch'|| Set the default search engine + ||'defsearch'|| Set the default search engine +
||'editor'|| Set the external text editor + ||'editor'|| Set the external text editor +
||'errorbells'|| Ring the bell when an error message is displayed + ||'errorbells'|| Ring the bell when an error message is displayed +

View File

@@ -24,7 +24,7 @@ If you like it but can't remember the shortcuts, then press [m]<F1>[m] or
[c]:help[c] to get this help window back. [c]:help[c] to get this help window back.
|author| |donation| + |author| |donation| +
Vimperator was initially written by mailto:stubenschrott@gmx.net[Martin Vimperator was initially written by mailto:stubenschrott@vimperator.org[Martin
Stubenschrott] but has found many other Stubenschrott] but has found many other
http://vimperator.org/trac/wiki/Vimperator/Authors[contributors] in the http://vimperator.org/trac/wiki/Vimperator/Authors[contributors] in the
meanwhile. If you appreciate the work on Vimperator and want to encourage us meanwhile. If you appreciate the work on Vimperator and want to encourage us

View File

@@ -346,7 +346,7 @@ Custom completion
Custom completion can be provided by specifying the "custom,{func}" argument to Custom completion can be provided by specifying the "custom,{func}" argument to
-complete. The {func} is called with two arguments, a completion context, and -complete. The {func} is called with two arguments, a completion context, and
an object describing the command's arguments. It should set the context's an object describing the command's arguments. It should set the context's
\'completions' property, or return an object, with \'start' and \'items' \'completions' property, or return an object, with \'items' and \'start'
properties, describing the completions and where the replacement is to start. properties, describing the completions and where the replacement is to start.
*start* is the index into the word being completed at which the returned values *start* is the index into the word being completed at which the returned values

View File

@@ -80,7 +80,7 @@ section:History[history]
||[count]<C-o>|| ||[count]<C-o>||
________________________________________________________________________________ ________________________________________________________________________________
Go to an older position in the jump list. The jump list is just the browser Go to an older position in the jump list. The jump list is just the browser
history for now. history for now. If [count] is specified go back [count] pages.
________________________________________________________________________________ ________________________________________________________________________________
@@ -88,7 +88,7 @@ ________________________________________________________________________________
||[count]<C-i>|| ||[count]<C-i>||
________________________________________________________________________________ ________________________________________________________________________________
Go to a newer position in the jump list. The jump list is just the browser Go to a newer position in the jump list. The jump list is just the browser
history for now. history for now. If [count] is specified go forward [count] pages.
________________________________________________________________________________ ________________________________________________________________________________

View File

@@ -252,7 +252,7 @@ Sets the default search engine. The default search engine name is used in the
[c]:[tab]open [arg][c] command if [a][arg][a] neither looks like a URL or like [c]:[tab]open [arg][c] command if [a][arg][a] neither looks like a URL or like
a specified search engine/keyword. a specified search engine/keyword.
This means, it you set 'defsearch' to "youtube", then [c]:open arnold This means, if you set 'defsearch' to "youtube", then [c]:open arnold
schwarzenegger[c] will be exactly the same as [c]:open youtube arnold schwarzenegger[c] will be exactly the same as [c]:open youtube arnold
schwarzenegger[c]. Therefore, you need to add a keyword or search engine schwarzenegger[c]. Therefore, you need to add a keyword or search engine
"youtube" first. "youtube" first.
@@ -266,7 +266,7 @@ ____
||'editor'|| string (default: "gvim -f") ||'editor'|| string (default: "gvim -f")
____ ____
Set the external text editor. Set the external text editor.
Sets the editor to run when [m]<C-i>[m] is pressed in INSERT and TEXTAREA Sets the editor to run when [m]<C-i>[m] is pressed in Insert and TextArea
modes. modes.
Warning: Vimperator will not behave correctly if the editor forks its own Warning: Vimperator will not behave correctly if the editor forks its own
@@ -472,7 +472,7 @@ ____
|\'nolpl'| |\'lpl'| |\'noloadplugins'| |\'loadplugins'| |\'nolpl'| |\'lpl'| |\'noloadplugins'| |\'loadplugins'|
||'loadplugins' 'lpl'|| boolean (default on) ||'loadplugins' 'lpl'|| boolean (default: on)
____ ____
Load plugin scripts when starting up. When on, yet unloaded plugins are Load plugin scripts when starting up. When on, yet unloaded plugins are
automatically loaded after the vimperatorrc file has been sourced. To automatically loaded after the vimperatorrc file has been sourced. To
@@ -527,7 +527,7 @@ ____
|\'noonline'| |\'online'| |\'noonline'| |\'online'|
||'online'|| boolean (default on) ||'online'|| boolean (default: on)
____ ____
Show and set the \'work offline' behavior. Show and set the \'work offline' behavior.
____ ____
@@ -571,7 +571,7 @@ ____
|\'nopreload'| |\'preload'| |\'nopreload'| |\'preload'|
||'preload' 'nopreload'|| boolean (default: on) ||'preload' 'nopreload'|| boolean (default: on)
____ ____
Speed up first time history/bookmark completion Speed up first time history/bookmark completion.
History access can be quite slow for a large history. History access can be quite slow for a large history.
Vimperator maintains a cache to speed it up significantly on subsequent access. Vimperator maintains a cache to speed it up significantly on subsequent access.
@@ -751,7 +751,7 @@ ____
|\'wildcase'| |\'wic'| |\'wildcase'| |\'wic'|
||'wildcase' 'wic'|| string (default: "smart") ||'wildcase' 'wic'|| string (default: "smart")
____ ____
Defines how completions are matched with regard to character case. Defines how completions are matched with regard to character case. Possible values:
`---------------`------------------------ `---------------`------------------------
"smart" Case is significant when capital letters are typed "smart" Case is significant when capital letters are typed

View File

@@ -7,7 +7,7 @@ Vimperator can repeat a number of commands and record macros.
section:Macros[macros,complex-repeat] section:Macros[macros,complex-repeat]
|q| |q|
||q{0-9a-zA-Z}|| + ||q\\{0-9a-zA-Z}|| +
____________________________________________________________________________ ____________________________________________________________________________
Record a key sequence into a macro. Record a key sequence into a macro.
Available macros are {0-9a-zA-Z} (uppercase to append). Available macros are {0-9a-zA-Z} (uppercase to append).
@@ -132,7 +132,7 @@ section:Profiling[profile,profiling]
|:time| |:time|
||:[count]time[!] {code|:command}|| + ||:[count]time[!] {code|:command}|| +
________________________________________________________________________________ ________________________________________________________________________________
Profile a piece of code or a command. Run {code} [count] times (default 1) Profile a piece of code or a command. Run {code} [count] times (default: 1)
and returns the elapsed time. {code} is always passed to JavaScript's eval(), and returns the elapsed time. {code} is always passed to JavaScript's eval(),
which might be slow, so take the results with a grain of salt. which might be slow, so take the results with a grain of salt.

View File

@@ -73,6 +73,7 @@ Valid groups are:
*StatusLine* The status bar *StatusLine* The status bar
*StatusLineBroken* The status bar for a broken web page *StatusLineBroken* The status bar for a broken web page
*StatusLineSecure* The status bar for a secure web page *StatusLineSecure* The status bar for a secure web page
*StatusLineExtended* The status bar for a secure web page with an Extended Validation(EV) certificate
*String* A JavaScript String object *String* A JavaScript String object
*TabClose* The close button of a browser tab *TabClose* The close button of a browser tab
*TabIcon* The icon of a browser tab *TabIcon* The icon of a browser tab

View File

@@ -57,7 +57,7 @@ Similarly, help on configurable options is available with [c]:help
'{option_name}'[c]. (Note the single quotes around the option name as in Vim.) '{option_name}'[c]. (Note the single quotes around the option name as in Vim.)
Information on all available options is, predictably, [c]:help options[c]. Information on all available options is, predictably, [c]:help options[c].
and you can find out about the [m]gt[m] and [m]gT[m] mapping with And you can find out about the [m]gt[m] and [m]gT[m] mapping with
\{nbsp}[c]:help gt<CR>[c] + \{nbsp}[c]:help gt<CR>[c] +
\{nbsp}[c]:help gT<CR>[c] \{nbsp}[c]:help gT<CR>[c]

View File

@@ -11,9 +11,9 @@ ________________________________________________________________________________
|<C-l>| |CTRL-L| |:redr| |:redraw| + |<C-l>| |CTRL-L| |:redr| |:redraw| +
||:redr[aw]|| ||:redr[aw]||
____ ________________________________________________________________________________
Redraws the screen. Useful to update the screen halfway executing a script or function. Redraws the screen. Useful to update the screen halfway executing a script or function.
____ ________________________________________________________________________________
|:norm| |:normal| |:norm| |:normal|
||:norm[al][!] {commands}|| + ||:norm[al][!] {commands}|| +
@@ -54,7 +54,7 @@ ________________________________________________________________________________
Open help window. The default page, as specified by 'helpfile' is shown unless Open help window. The default page, as specified by 'helpfile' is shown unless
[a][subject][a] is specified. If you need help for a specific topic, try [a][subject][a] is specified. If you need help for a specific topic, try
[c]:help overview[c]. [c]:help overview[c].
____________________________________________________________________________ ________________________________________________________________________________
|:exu| |:exusage| + |:exu| |:exusage| +

View File

@@ -1,7 +1,7 @@
// Script to find regressions // Script to find regressions
// //
// It should use as few liberator methods as possible, but fall back to standard mozilla/DOM methods // It should use as few liberator methods as possible, but fall back to standard mozilla/DOM methods
// The reason it, we don't want to find regressions in the regressions script, and it should survive // The reason is, we don't want to find regressions in the regressions script, and it should survive
// massive changes in the internal liberator API, but just test for functionality of // massive changes in the internal liberator API, but just test for functionality of
// user-visible commands/mappings // user-visible commands/mappings
// //
@@ -249,4 +249,4 @@ commands.addUserCommand(["regr[essions]"],
count: true count: true
}); });
// vimperator: set et sts=4 sw=4 : // vim: set et sts=4 sw=4 :