diff --git a/common/content/abbreviations.js b/common/content/abbreviations.js
index 12b7b07c..462b93ea 100644
--- a/common/content/abbreviations.js
+++ b/common/content/abbreviations.js
@@ -300,7 +300,7 @@ var Abbreviations = Module("abbreviations", {
if (args.bang)
args["-group"].clear(modes);
- else if (!args["-group"].remove(modes, lhs))
+ else if (!args["-group"].remove(modes, args[0]))
return dactyl.echoerr("E24: No such abbreviation");
}, {
argCount: "?",
diff --git a/common/content/dactyl.js b/common/content/dactyl.js
index 22c9c629..f720ec6f 100644
--- a/common/content/dactyl.js
+++ b/common/content/dactyl.js
@@ -1368,7 +1368,6 @@ var Dactyl = Module("dactyl", XPCOM(Ci.nsISupportsWeakReference, ModuleBase), {
dactyl.echoerr(template.linkifyHelp(error.message));
else
dactyl.beep();
- util.reportError(error);
return;
}
if (error.result == Cr.NS_BINDING_ABORTED)
diff --git a/common/content/mappings.js b/common/content/mappings.js
index 688a9932..42570054 100644
--- a/common/content/mappings.js
+++ b/common/content/mappings.js
@@ -352,7 +352,7 @@ var Mappings = Module("mappings", {
* {@link Map#extraInfo}).
* @optional
*/
- addUserMap: deprecated("groups.mappings.add", function addUserMap() {
+ addUserMap: deprecated("group.mappings.add", function addUserMap() {
let map = this.user.add.apply(this.user, arguments);
map.definedAt = contexts.getCaller(Components.stack.caller);
return map;
@@ -387,17 +387,18 @@ var Mappings = Module("mappings", {
* @param {string} filter The filter string to match.
*/
list: function (modes, filter, hives) {
- hives = (hives || mappings.userHives).filter(function (h) modes.some(function (m) h.getStack(m).length));
-
let modeSign = "";
modes.filter(function (m) m.char).forEach(function (m) { modeSign += m.char; });
modes.filter(function (m) !m.char).forEach(function (m) { modeSign += " " + m.name; });
modeSign = modeSign.replace(/^ /, "");
+ hives = (hives || mappings.userHives).map(function (h) [h, maps(h)])
+ .filter(function ([h, m]) !filter || m.length);
+
function maps(hive) {
- let maps = hive.iterate(modes);
+ let maps = iter.toArray(hive.iterate(modes));
if (filter)
- maps = [map for (map in maps) if (map.names[0] == filter)];
+ maps = maps.filter(function (m) m.names[0] === filter);
return maps;
}
@@ -410,9 +411,9 @@ var Mappings = Module("mappings", {
{
- template.map(hives, function (hive) let (i = 0)
+ template.map(hives, function ([hive, maps]) let (i = 0)
+
- template.map(maps(hive), function (map)
+ template.map(maps, function (map)
template.map(map.names, function (name)
| {!i++ ? hive.name : ""} |
diff --git a/common/tests/functional/testCommands.js b/common/tests/functional/testCommands.js
index e11a3cb3..dd2f05b5 100644
--- a/common/tests/functional/testCommands.js
+++ b/common/tests/functional/testCommands.js
@@ -52,9 +52,6 @@ var tests = {
noOutput: ["abc def", "-js abc def"],
completions: ["", "abc ", "-js abc "]
},
- abclear: {
- noOutput: [""]
- },
addons: {
multiOutput: ["", "dactyl", "-type=extension", "-type=extension dactyl"],
completions: [
@@ -118,7 +115,7 @@ var tests = {
error: ["", "some-nonexistent-scheme"]
},
command: {
- init: ["comclear"],
+ init: ["delc!"],
singleOutput: ["", "foobar"],
noOutput: ["foo bar", "-js bar baz"],
multiOutput: [""],
@@ -134,9 +131,6 @@ var tests = {
["-group=user ", hasItems]
]
},
- comclear: {
- noOutput: [""]
- },
contexts: {}, // Not testable in this manner
cookies: {
anyOutput: ["dactyl.sf.net", "dactyl.sf.net list"],
@@ -149,13 +143,14 @@ var tests = {
delbmarks: { anyOutput: ["", "about:pentadactyl"] },
delcommand: [
{
- init: ["comclear", "command foo bar"],
+ init: ["delc!", "command foo bar"],
+ error: [""],
completions: [
["", hasItems],
["-group=", hasItems],
["-group=user ", hasItems]
],
- noOutput: ["foo"]
+ noOutput: ["foo", "! "]
},
{
init: ["comclear"],
@@ -353,7 +348,9 @@ var tests = {
completions: [""]
},
map: {
- multiOutput: ["", "i"],
+ init: ["unmap!"],
+ anyOutput: [""],
+ singleOutput: ["i"],
noOutput: [
"i j",
"-builtin i j",
@@ -363,6 +360,7 @@ var tests = {
"-silent i :j",
"-mode=ex -b "
],
+ multiOutput: ["", "i"],
error: [
"-mode=some-nonexistent-mode ",
"-group=some-nonexistent-group ",
@@ -379,16 +377,6 @@ var tests = {
["-javascript i ", hasItems]
]
},
- mapclear: {
- noOutput: [""],
- error: [
- "-group=builtin"
- ],
- completions: [
- "",
- "-group="
- ]
- },
mark: {
error: ["", "#", "xy"],
noOutput: ["y"],
@@ -554,7 +542,31 @@ var tests = {
noOutput: [""]
},
scriptnames: {},
- set: {},
+ set: {
+ multiOutput: [
+ "vb?", "cpt?", "messages?", "titlestring?", "au?", "eht?",
+ "cpt", "messages", "titlestring", "au", "eht"
+ ],
+ noOutput: ["vb", "novb"],
+ completions: [
+ ["", hasItems],
+ ["c", hasItems],
+ ["cpt=", hasItems],
+ ["cpt=l", hasItems],
+ ["cpt+=", hasItems],
+ ["cpt+=f", hasItems],
+ ["activate=", hasItems],
+ ["activate=links,", hasItems],
+ ["activate+=", hasItems],
+ ["activate+=links,", hasItems],
+ ["activate^=", hasItems],
+ ["activate^=links,", hasItems],
+ ["activate-=", hasItems],
+ ["activate-=links,", hasItems],
+ ["activate!=", hasItems],
+ ["activate!=links,", hasItems]
+ ]
+ },
get setglobal() this.set,
get setlocal() this.set,
sidebar: {
@@ -702,12 +714,28 @@ var tests = {
],
error: ["", "foo"]
},
- tunmap: {},
- unabbreviate: {},
+ unabbreviate: {
+ noOutput: ["abc", "! "],
+ error: [""]
+ },
undo: {},
undoall: {},
unlet: {},
- unmap: {},
+ unmap: {
+ noOutput: [
+ "i",
+ "! "
+ ],
+ error: [
+ "i",
+ "-group=builtin k",
+ "! -group=builtin"
+ ],
+ completions: [
+ "",
+ "-group="
+ ]
+ },
verbose: {},
version: {
multiOutput: [
diff --git a/pentadactyl/content/config.js b/pentadactyl/content/config.js
index dfb98540..1ec62711 100644
--- a/pentadactyl/content/config.js
+++ b/pentadactyl/content/config.js
@@ -344,8 +344,10 @@ var Config = Module("config", ConfigBase, {
modes: function (dactyl, modules, window) {
const { config, modes } = modules;
config.ignoreKeys = {
- "": modes.NORMAL | modes.INSERT,
- "": modes.NORMAL | modes.INSERT
+ "": modes.NORMAL,
+ "": modes.NORMAL,
+ "": modes.NORMAL,
+ "": modes.NORMAL
};
config.modes.forEach(function (mode) { modes.addMode.apply(this, mode); });
},