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:
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
|
||||
@@ -47,11 +47,9 @@
|
||||
</xul:vbox>
|
||||
</xul: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:stack>
|
||||
<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:stack>
|
||||
</xul:hbox>
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
@@ -147,13 +147,13 @@ function Buffer() //{{{
|
||||
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",
|
||||
"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",
|
||||
"stringlist", "\\bprev|previous\\b,^<$,^(<<|«)$,^(<|«),(<|«)$");
|
||||
"stringlist", "\\bprev|previous\\b,^<$,^(<<|\u00AB)$,^(<|\u00AB),(<|\u00AB)$");
|
||||
|
||||
options.add(["pageinfo", "pa"], "Desired info on :pa[geinfo]", "charlist", "gfm",
|
||||
{
|
||||
@@ -1020,6 +1020,20 @@ function Buffer() //{{{
|
||||
elem.contentWindow.focus();
|
||||
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();
|
||||
|
||||
@@ -1125,6 +1139,20 @@ function Buffer() //{{{
|
||||
offsetX = Number(coords[0]) + 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;
|
||||
switch (where)
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
@@ -658,6 +658,11 @@ CompletionContext.prototype = {
|
||||
this.tabPressed = false;
|
||||
this.title = ["Completions"];
|
||||
this.updateAsync = false;
|
||||
try
|
||||
{
|
||||
this.waitingForTab = false;
|
||||
}
|
||||
catch (e) {}
|
||||
|
||||
this.cancelAll();
|
||||
|
||||
@@ -676,6 +681,11 @@ CompletionContext.prototype = {
|
||||
for each (let context in this.contexts)
|
||||
{
|
||||
context.hasItems = false;
|
||||
try
|
||||
{
|
||||
context.incomplete = false;
|
||||
}
|
||||
catch (e) {}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -683,8 +693,9 @@ CompletionContext.prototype = {
|
||||
* Wait for all subcontexts to complete.
|
||||
*
|
||||
* @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.
|
||||
* If 0 or null, wait indefinately.
|
||||
*/
|
||||
wait: function wait(interruptable, timeout)
|
||||
{
|
||||
@@ -1415,15 +1426,17 @@ function Completion() //{{{
|
||||
|
||||
colorScheme: function colorScheme(context)
|
||||
{
|
||||
// TODO: use path for the description?
|
||||
let colors = [];
|
||||
|
||||
io.getRuntimeDirectories("colors").forEach(function (dir) {
|
||||
context.fork(dir.path, 0, null, function (context) {
|
||||
context.filter = dir.path + IO.PATH_SEP + context.filter;
|
||||
completion.file(context);
|
||||
context.title = ["Color Scheme"];
|
||||
context.quote = ["", function (text) text.replace(/\.vimp$/, ""), ""];
|
||||
io.readDirectory(dir).forEach(function (file) {
|
||||
if (/\.vimp$/.test(file.leafName) && !colors.some(function (c) c.leafName == file.leafName))
|
||||
colors.push(file);
|
||||
});
|
||||
});
|
||||
|
||||
context.title = ["Color Scheme", "Runtime Path"];
|
||||
context.completions = [[c.leafName.replace(/\.vimp$/, ""), c.parent.path] for ([,c] in Iterator(colors))]
|
||||
},
|
||||
|
||||
command: function command(context)
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
@@ -623,12 +623,23 @@ function Editor() //{{{
|
||||
|
||||
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;
|
||||
|
||||
if (elem.setSelectionRange && util.readFromClipboard())
|
||||
// readFromClipboard would return 'undefined' if not checked
|
||||
// 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 rangeEnd = elem.selectionEnd;
|
||||
let tempStr1 = elem.value.substring(0, rangeStart);
|
||||
@@ -637,6 +648,9 @@ function Editor() //{{{
|
||||
elem.value = tempStr1 + tempStr2 + tempStr3;
|
||||
elem.selectionStart = rangeStart + tempStr2.length;
|
||||
elem.selectionEnd = elem.selectionStart;
|
||||
|
||||
elem.scrollTop = curTop;
|
||||
elem.scrollLeft = curLeft;
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
@@ -898,6 +898,7 @@ function Events() //{{{
|
||||
|
||||
let wasFeeding = this.feedingKeys;
|
||||
this.feedingKeys = true;
|
||||
this.duringFeed = this.duringFeed || "";
|
||||
let wasSilent = commandline.silent;
|
||||
if (silent)
|
||||
commandline.silent = silent;
|
||||
@@ -993,6 +994,15 @@ function Events() //{{{
|
||||
this.feedingKeys = wasFeeding;
|
||||
if (silent)
|
||||
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;
|
||||
},
|
||||
@@ -1370,13 +1380,23 @@ function Events() //{{{
|
||||
// we can differentiate between a recorded <C-c>
|
||||
// interrupting whatever it's started and a real <C-c>
|
||||
// interrupting our playback.
|
||||
if (events.feedingKeys)
|
||||
if (events.feedingKeys && !event.isMacro)
|
||||
{
|
||||
if (key == "<C-c>" && !event.isMacro)
|
||||
if (key == "<C-c>")
|
||||
{
|
||||
events.feedingKeys = false;
|
||||
if (lastMacro)
|
||||
if (modes.isReplaying)
|
||||
{
|
||||
modes.isReplaying = false;
|
||||
setTimeout(function () { liberator.echomsg("Canceled playback of macro '" + lastMacro + "'"); }, 100);
|
||||
}
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
events.duringFeed += key;
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
return true;
|
||||
@@ -1664,13 +1684,16 @@ function Events() //{{{
|
||||
}
|
||||
},
|
||||
// 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");
|
||||
else if (aState & Ci.nsIWebProgressListener.STATE_IS_BROKEN)
|
||||
else if (state & Ci.nsIWebProgressListener.STATE_IS_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");
|
||||
},
|
||||
onStatusChange: function (webProgress, request, status, message)
|
||||
@@ -1762,10 +1785,11 @@ function Events() //{{{
|
||||
window.XULBrowserWindow = self.progressListener;
|
||||
window.QueryInterface(Ci.nsIInterfaceRequestor)
|
||||
.getInterface(Ci.nsIWebNavigation)
|
||||
.QueryInterface(Ci.nsIDocShellTreeItem).treeOwner
|
||||
.QueryInterface(Ci.nsIDocShellTreeItem)
|
||||
.treeOwner
|
||||
.QueryInterface(Ci.nsIInterfaceRequestor)
|
||||
.getInterface(Ci.nsIXULWindow)
|
||||
.XULBrowserWindow = window.XULBrowserWindow;
|
||||
.XULBrowserWindow = self.progressListener;
|
||||
try
|
||||
{
|
||||
getBrowser().addProgressListener(self.progressListener, Ci.nsIWebProgress.NOTIFY_ALL);
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
@@ -165,8 +165,76 @@ function Hints() //{{{
|
||||
text = elem.textContent.toLowerCase();
|
||||
|
||||
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);
|
||||
|
||||
pageHints.push([elem, text, span, null, elem.style.backgroundColor, elem.style.color]);
|
||||
|
||||
@@ -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
|
||||
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
|
||||
|
||||
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
|
||||
* the file exists or not.
|
||||
* @default $HOME.
|
||||
* @returns {nsIFile} The RC file or null if none is found.
|
||||
*/
|
||||
getRCFile: function (dir, always)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
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
|
||||
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.defaults = config.defaults || {};
|
||||
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];
|
||||
// TODO: suitable defaults?
|
||||
//config.mainWidget
|
||||
@@ -1292,13 +1297,12 @@ const liberator = (function () //{{{
|
||||
|
||||
let extensionName = config.name.toUpperCase();
|
||||
let init = services.get("environment").get(extensionName + "_INIT");
|
||||
let rcFile = io.getRCFile("~");
|
||||
|
||||
if (init)
|
||||
liberator.execute(init);
|
||||
else
|
||||
{
|
||||
let rcFile = io.getRCFile("~");
|
||||
|
||||
if (rcFile)
|
||||
{
|
||||
io.source(rcFile.path, true);
|
||||
@@ -1311,7 +1315,7 @@ const liberator = (function () //{{{
|
||||
if (options["exrc"])
|
||||
{
|
||||
let localRCFile = io.getRCFile(io.getCurrentDirectory().path);
|
||||
if (localRCFile)
|
||||
if (localRCFile && !localRCFile.equals(rcFile))
|
||||
io.source(localRCFile.path, true);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
|
||||
@@ -72,8 +72,9 @@ Highlights.prototype.CSS = <![CDATA[
|
||||
Question color: green; background: white; font-weight: bold;
|
||||
|
||||
StatusLine color: white; background: black;
|
||||
StatusLineBroken color: black; background: #FF6060 /* light-red */
|
||||
StatusLineSecure color: black; background: #B0FF00 /* light-green */
|
||||
StatusLineBroken color: black; background: #FFa0a0 /* light-red */
|
||||
StatusLineSecure color: black; background: #a0a0FF /* light-blue */
|
||||
StatusLineExtended color: black; background: #a0FFa0 /* light-green */
|
||||
|
||||
TabClose
|
||||
TabIcon
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
@@ -623,6 +623,7 @@ function Tabs() //{{{
|
||||
completer: function (context)
|
||||
{
|
||||
context.anchored = false;
|
||||
context.compare = CompletionContext.Sort.unsorted;
|
||||
context.keys = { text: function (item) item.state.entries[0].url, description: "title" };
|
||||
context.completions = tabs.closedTabs;
|
||||
},
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
@@ -1222,6 +1222,8 @@ function CommandLine() //{{{
|
||||
* for the user's input.
|
||||
* @... {string} promptHighlight - The HighlightGroup used for the
|
||||
* 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)
|
||||
{
|
||||
@@ -1303,20 +1305,17 @@ function CommandLine() //{{{
|
||||
}
|
||||
else if (event.type == "input")
|
||||
{
|
||||
//liberator.dump("input: " + command);
|
||||
this.resetCompletions();
|
||||
liberator.triggerCallback("change", currentExtendedMode, command);
|
||||
}
|
||||
else if (event.type == "keypress")
|
||||
{
|
||||
let key = events.toString(event);
|
||||
if (completions)
|
||||
completions.previewClear();
|
||||
if (!currentExtendedMode)
|
||||
return true;
|
||||
|
||||
let key = events.toString(event);
|
||||
//liberator.log("command line handling key: " + key + "\n");
|
||||
|
||||
// user pressed ENTER to carry out a command
|
||||
// user pressing ESCAPE is handled in the global onEscape
|
||||
// FIXME: <Esc> should trigger "cancel" event
|
||||
@@ -2040,16 +2039,18 @@ function StatusLine() //{{{
|
||||
|
||||
/**
|
||||
* 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.
|
||||
* broken - Secure connection with invalid certificate, or
|
||||
* mixed content.
|
||||
* insecure - Insecure connection.
|
||||
*
|
||||
* @param {'secure'|'broken'|'insecure'} type
|
||||
* @param {'extended'|'secure'|'broken'|'insecure'} type
|
||||
*/
|
||||
setClass: function setClass(type)
|
||||
{
|
||||
const highlightGroup = {
|
||||
extended: "StatusLineExtended",
|
||||
secure: "StatusLineSecure",
|
||||
broken: "StatusLineBroken",
|
||||
insecure: "StatusLine"
|
||||
|
||||
@@ -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
|
||||
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
|
||||
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;
|
||||
},
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*
|
||||
@@ -618,7 +652,7 @@ const util = { //{{{
|
||||
*/
|
||||
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) {
|
||||
try
|
||||
@@ -641,7 +675,7 @@ const util = { //{{{
|
||||
|
||||
// Ok, not a valid proto. If it looks like URL-ish (foo.com/bar),
|
||||
// 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;
|
||||
|
||||
// TODO: it would be clearer if the appropriate call to
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Main developer/Project founder:
|
||||
* Martin Stubenschrott (stubenschrott@gmx.net)
|
||||
* Martin Stubenschrott (stubenschrott@vimperator.org)
|
||||
|
||||
Developers:
|
||||
* Daniel Bainton (dpb .AT. driftaway .DOT. org)
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
../../../common/content/liberator.xul
|
||||
119
muttator/content/compose/liberator.xul
Normal file
119
muttator/content/compose/liberator.xul
Normal 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: -->
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<Description>
|
||||
<em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
|
||||
<em:minVersion>3.0b2pre</em:minVersion>
|
||||
<em:maxVersion>3.0b2</em:maxVersion>
|
||||
<em:maxVersion>3.0b3</em:maxVersion>
|
||||
</Description>
|
||||
</em:targetApplication>
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
[glossary]
|
||||
author=Martin Stubenschrott
|
||||
email=stubenschrott@gmx.net
|
||||
email=stubenschrott@vimperator.org
|
||||
|
||||
# [header]
|
||||
# <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
|
||||
@@ -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.
|
||||
|
||||
|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
|
||||
more, you can either send me greetings, patches or make a donation:
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Main developer/Project founder:
|
||||
* Martin Stubenschrott (stubenschrott@gmx.net)
|
||||
* Martin Stubenschrott (stubenschrott@vimperator.org)
|
||||
|
||||
Developers:
|
||||
* Doug Kearns (dougkearns@gmail.com)
|
||||
@@ -11,6 +11,7 @@ Developers:
|
||||
* anekos <anekos@snca.net>
|
||||
* teramako <teramako@gmail.com>
|
||||
* janus_wel <janus.wel.3@gmail.com>
|
||||
* Conrad Irwin
|
||||
|
||||
Inactive/former developers:
|
||||
* Viktor Kojouharov (Виктор Кожухаров)
|
||||
@@ -18,7 +19,7 @@ Inactive/former developers:
|
||||
|
||||
Patches (in no special order):
|
||||
* Ruud Grosmann ('followhints' option)
|
||||
* Xie&Tian (multibyte support for hints)
|
||||
* Xie&Tian (multibyte support for hints, doc fixes)
|
||||
* Juergen Descher
|
||||
* Kazuo (count support for ctrl-^)
|
||||
* Daniel Schaffrath (;b support)
|
||||
|
||||
@@ -2,6 +2,13 @@ Continuous donations:
|
||||
* Daniel Bainton (web hosting)
|
||||
|
||||
2009:
|
||||
* Christoph Petzold
|
||||
* Bjoern Steinbrink
|
||||
* Erlend Hamberg
|
||||
* Fabien Benetou
|
||||
* Arvin Moezzi
|
||||
* Calogero Lo Leggio
|
||||
* Sapan Bhatia
|
||||
* Gavin Sinclair
|
||||
* Stephen Borchert
|
||||
* Convolution
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#### configuration
|
||||
|
||||
VERSION = 2.0b3pre
|
||||
VERSION = 2.0
|
||||
NAME = vimperator
|
||||
|
||||
include ../common/Makefile.common
|
||||
|
||||
@@ -6,15 +6,15 @@
|
||||
* add "w" and "W" Normal mode mappings for symmetry with o/O and t/T
|
||||
* add :messclear
|
||||
|
||||
2008-XX-XX:
|
||||
* version 2.0 (probably)
|
||||
2009-03-28:
|
||||
* version 2.0
|
||||
* IMPORTANT: For compatibility with vim, guioptions=b has been renamed
|
||||
'B'. 'b' now represents the bottom scrollbar.
|
||||
* IMPORTANT: :set now sets multiple options, as in Vim. Spaces in values
|
||||
must be quoted or escaped.
|
||||
* IMPORTANT: Due to much improved autocompletion, changed default 'complete' option
|
||||
value to 'sfl', listing intelligent Firefox location bar results. Removed possibility
|
||||
to use 'h' in 'complete'.
|
||||
value to 'sfl', listing intelligent Firefox location bar results. Using 'b' or 'h'
|
||||
might cause problems/massive slowdowns, use with care!
|
||||
* IMPORTANT: AlwaysHint mode with ;F mode changed the semantics slightly.
|
||||
* IMPORTANT: command actions now take an args object, returned from
|
||||
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: $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.
|
||||
* add ~/.vimperator/info/{profile}/, similar to viminfo
|
||||
* add $VIMPERATOR_RUNTIME, $VIMPERATOR_INIT
|
||||
@@ -51,7 +53,7 @@
|
||||
* add 'exrc'
|
||||
* add 'errorbells'
|
||||
* 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 :loadplugins command
|
||||
* add . mapping
|
||||
|
||||
@@ -39,6 +39,8 @@ BUGS:
|
||||
- URLs in :ls output are no longer hyperlinks
|
||||
|
||||
FEATURES:
|
||||
9 change the extension ID to vimperator@vimperator.org rather than
|
||||
vimperator@mozdev.org
|
||||
9 finish :help TODOs
|
||||
9 fix local options
|
||||
9 adaptive timeout for auto-completions, :set completions can be updated more often than
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
@@ -737,6 +737,7 @@ function History() //{{{
|
||||
context.anchored = false;
|
||||
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.compare = CompletionContext.Sort.unsorted;
|
||||
},
|
||||
count: true,
|
||||
literal: 0
|
||||
@@ -783,6 +784,7 @@ function History() //{{{
|
||||
context.anchored = false;
|
||||
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.compare = CompletionContext.Sort.unsorted;
|
||||
},
|
||||
count: true,
|
||||
literal: 0
|
||||
|
||||
@@ -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
|
||||
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
|
||||
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"],
|
||||
["DownloadPost", "Triggered when a download has completed"],
|
||||
["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"],
|
||||
["PageLoad", "Triggered when a page gets (re)loaded/opened"],
|
||||
["ShellCmdPost", "Triggered after executing a shell command with :!cmd"],
|
||||
|
||||
@@ -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
|
||||
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
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<Description>
|
||||
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
|
||||
<em:minVersion>3.0</em:minVersion>
|
||||
<em:maxVersion>3.2a1pre</em:maxVersion>
|
||||
<em:maxVersion>3.6a1pre</em:maxVersion>
|
||||
</Description>
|
||||
</em:targetApplication>
|
||||
</Description>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
[glossary]
|
||||
author=Martin Stubenschrott
|
||||
email=stubenschrott@gmx.net
|
||||
email=stubenschrott@vimperator.org
|
||||
|
||||
[header]
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
@@ -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].
|
||||
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
|
||||
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,
|
||||
www.slashdot.org[c] opens OSNews in the current, and Slashdot in a new
|
||||
background tab).
|
||||
@@ -169,7 +169,7 @@ ________________________________________________________________________________
|
||||
section:Navigating[navigating]
|
||||
|
||||
|H| |<C-o>| |CTRL-O| |:ba| |:back|
|
||||
||:[count]ba[ck] [url]|| +
|
||||
||:[count]ba[ck] [a][url][a]|| +
|
||||
||:ba[ck]!|| +
|
||||
||CTRL-o||
|
||||
________________________________________________________________________________
|
||||
@@ -180,7 +180,7 @@ ________________________________________________________________________________
|
||||
|
||||
|
||||
|L| |<C-i>| |CTRL-i| |:fo| |:fw| |:forward|
|
||||
||:[count]fo[rward] [url]|| +
|
||||
||:[count]fo[rward] [a][url][a]|| +
|
||||
||:fo[rward]!|| +
|
||||
||CTRL-i||
|
||||
________________________________________________________________________________
|
||||
|
||||
@@ -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>| +
|
||||
||[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>| +
|
||||
||[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
|
||||
\'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
|
||||
\'http://kb.mozillazine.org/Toolkit.zoomManager.zoomValues[toolkit.ZoomManager.zoomLevels]'
|
||||
preference.
|
||||
@@ -274,7 +274,7 @@ ________________________________________________________________________________
|
||||
|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%.
|
||||
________________________________________________________________________________
|
||||
|
||||
@@ -320,7 +320,7 @@ ________________________________________________________________________________
|
||||
||:zo[om][!] +{value} | -{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%.
|
||||
|
||||
Normally this command operates on the text zoom, if used with [!] it operates
|
||||
|
||||
@@ -25,7 +25,7 @@ ________________________________________________________________________________
|
||||
|c_<C-]>| +
|
||||
||<C-]>||
|
||||
________________________________________________________________________________
|
||||
Expand a Command-line abbreviation.
|
||||
Expand a command-line abbreviation.
|
||||
________________________________________________________________________________
|
||||
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ ________________________________________________________________________________
|
||||
|:addo| |:addons| +
|
||||
||:addo[ns]||
|
||||
________________________________________________________________________________
|
||||
Show available Browser Extensions and Themes.
|
||||
Show available browser Extensions and Themes.
|
||||
You can add/remove/disable browser extensions from this dialog.
|
||||
Be aware that not all Firefox extensions work, because Vimperator overrides
|
||||
some key bindings and changes Firefox's GUI.
|
||||
@@ -34,7 +34,7 @@ Open a Firefox dialog.
|
||||
|
||||
Available dialogs:
|
||||
`------------------`-----------------------------------
|
||||
*about* About Firefox
|
||||
*about* About Mozilla Firefox
|
||||
*addbookmark* Add bookmark for the current page
|
||||
*addons* Manage Add-ons
|
||||
*bookmarks* List your bookmarks
|
||||
|
||||
@@ -170,7 +170,7 @@ section:Ex{nbsp}commands[ex-cmd-index,:index]
|
||||
||[c]:delmarks[c]|| Delete the specified marks +
|
||||
||[c]:delqmarks[c]|| Delete the specified QuickMarks +
|
||||
||[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]:doautocmd[c]|| Apply the autocommands matching the specified URL to the current buffer +
|
||||
||[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]:qmarks[c]|| Show all QuickMarks +
|
||||
||[c]:quit[c]|| Quit current tab +
|
||||
||[c]:quitall[c]|| Quit undefined +
|
||||
||[c]:quitall[c]|| Quit Vimperator +
|
||||
||[c]:redraw[c]|| Redraw the screen +
|
||||
||[c]:reload[c]|| Reload current page +
|
||||
||[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]:saveas[c]|| Save current document to disk +
|
||||
||[c]:sbclose[c]|| Close the sidebar window +
|
||||
@@ -262,7 +262,7 @@ section:Options[option-index]
|
||||
|
||||
||'activate'|| Define when tabs are automatically activated +
|
||||
||'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 +
|
||||
||'editor'|| Set the external text editor +
|
||||
||'errorbells'|| Ring the bell when an error message is displayed +
|
||||
|
||||
@@ -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.
|
||||
|
||||
|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
|
||||
http://vimperator.org/trac/wiki/Vimperator/Authors[contributors] in the
|
||||
meanwhile. If you appreciate the work on Vimperator and want to encourage us
|
||||
|
||||
@@ -346,7 +346,7 @@ Custom completion
|
||||
Custom completion can be provided by specifying the "custom,{func}" argument to
|
||||
-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
|
||||
\'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.
|
||||
|
||||
*start* is the index into the word being completed at which the returned values
|
||||
|
||||
@@ -80,7 +80,7 @@ section:History[history]
|
||||
||[count]<C-o>||
|
||||
________________________________________________________________________________
|
||||
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>||
|
||||
________________________________________________________________________________
|
||||
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.
|
||||
________________________________________________________________________________
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
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]. Therefore, you need to add a keyword or search engine
|
||||
"youtube" first.
|
||||
@@ -266,7 +266,7 @@ ____
|
||||
||'editor'|| string (default: "gvim -f")
|
||||
____
|
||||
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.
|
||||
|
||||
Warning: Vimperator will not behave correctly if the editor forks its own
|
||||
@@ -472,7 +472,7 @@ ____
|
||||
|
||||
|
||||
|\'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
|
||||
automatically loaded after the vimperatorrc file has been sourced. To
|
||||
@@ -527,7 +527,7 @@ ____
|
||||
|
||||
|
||||
|\'noonline'| |\'online'|
|
||||
||'online'|| boolean (default on)
|
||||
||'online'|| boolean (default: on)
|
||||
____
|
||||
Show and set the \'work offline' behavior.
|
||||
____
|
||||
@@ -571,7 +571,7 @@ ____
|
||||
|\'nopreload'| |\'preload'|
|
||||
||'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.
|
||||
Vimperator maintains a cache to speed it up significantly on subsequent access.
|
||||
@@ -751,7 +751,7 @@ ____
|
||||
|\'wildcase'| |\'wic'|
|
||||
||'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
|
||||
|
||||
@@ -7,7 +7,7 @@ Vimperator can repeat a number of commands and record macros.
|
||||
section:Macros[macros,complex-repeat]
|
||||
|
||||
|q|
|
||||
||q{0-9a-zA-Z}|| +
|
||||
||q\\{0-9a-zA-Z}|| +
|
||||
____________________________________________________________________________
|
||||
Record a key sequence into a macro.
|
||||
Available macros are {0-9a-zA-Z} (uppercase to append).
|
||||
@@ -132,7 +132,7 @@ section:Profiling[profile,profiling]
|
||||
|:time|
|
||||
||:[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(),
|
||||
which might be slow, so take the results with a grain of salt.
|
||||
|
||||
|
||||
@@ -73,6 +73,7 @@ Valid groups are:
|
||||
*StatusLine* The status bar
|
||||
*StatusLineBroken* The status bar for a broken 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
|
||||
*TabClose* The close button of a browser tab
|
||||
*TabIcon* The icon of a browser tab
|
||||
|
||||
@@ -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.)
|
||||
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]
|
||||
|
||||
@@ -11,9 +11,9 @@ ________________________________________________________________________________
|
||||
|
||||
|<C-l>| |CTRL-L| |:redr| |:redraw| +
|
||||
||:redr[aw]||
|
||||
____
|
||||
________________________________________________________________________________
|
||||
Redraws the screen. Useful to update the screen halfway executing a script or function.
|
||||
____
|
||||
________________________________________________________________________________
|
||||
|
||||
|:norm| |:normal|
|
||||
||:norm[al][!] {commands}|| +
|
||||
@@ -54,7 +54,7 @@ ________________________________________________________________________________
|
||||
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
|
||||
[c]:help overview[c].
|
||||
____________________________________________________________________________
|
||||
________________________________________________________________________________
|
||||
|
||||
|
||||
|:exu| |:exusage| +
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Script to find regressions
|
||||
//
|
||||
// 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
|
||||
// user-visible commands/mappings
|
||||
//
|
||||
@@ -249,4 +249,4 @@ commands.addUserCommand(["regr[essions]"],
|
||||
count: true
|
||||
});
|
||||
|
||||
// vimperator: set et sts=4 sw=4 :
|
||||
// vim: set et sts=4 sw=4 :
|
||||
|
||||
Reference in New Issue
Block a user