1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-04-07 10:43:31 +02:00

Serialize map groups.

This commit is contained in:
Kris Maglione
2011-01-20 03:32:56 -05:00
parent 4a77c9d34d
commit 412bbcce53

View File

@@ -532,9 +532,18 @@ var Mappings = Module("mappings", {
} }
], ],
serialize: function () { serialize: function () {
return this.name == "map" ? [ return this.name != "map" ? [] :
array(mappings.userHives)
.filter(function (h) !h.noPersist)
.map(function (hive) [
{ {
command: this.name, command: "mapgroup",
bang: true,
arguments: [hive.name, String(hive.filter)].slice(0, hive.name == "user" ? 1 : 2)
}
].concat([
{
command: "map",
options: array([ options: array([
["-modes", uniqueModes(map.modes)], ["-modes", uniqueModes(map.modes)],
["-description", map.description], ["-description", map.description],
@@ -545,14 +554,15 @@ var Mappings = Module("mappings", {
literalArg: map.rhs, literalArg: map.rhs,
ignoreDefaults: true ignoreDefaults: true
} }
for (map in userMappings()) for (map in userMappings(hive))
if (map.persist) if (map.persist)
] : []; ]))
.flatten().array;
} }
}; };
function userMappings() { function userMappings(hive) {
let seen = {}; let seen = {};
for (let stack in values(mappings.userHive.stacks)) for (let stack in values(hive.stacks))
for (let map in array.iterValues(stack)) for (let map in array.iterValues(stack))
if (!set.add(seen, map.id)) if (!set.add(seen, map.id))
yield map; yield map;
@@ -650,6 +660,8 @@ var Mappings = Module("mappings", {
}); });
hive = mappings.addHive(name, filter, args["-description"]); hive = mappings.addHive(name, filter, args["-description"]);
if (args["-nopersist"])
hive.noPersist = true;
} }
dactyl.assert(hive, "No mapping group: " + name); dactyl.assert(hive, "No mapping group: " + name);
@@ -680,6 +692,10 @@ var Mappings = Module("mappings", {
names: ["-description", "-d"], names: ["-description", "-d"],
description: "A description of this mapping group", description: "A description of this mapping group",
type: CommandOption.STRING type: CommandOption.STRING
},
{
names: ["-nopersist", "-n"],
description: "Do not save this mapping group to an auto-generated RC file"
} }
] ]
}); });