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

add completion support to :*map commands

This commit is contained in:
Doug Kearns
2008-08-20 15:16:03 +00:00
parent 25eb1e134c
commit 49a4fddacd
2 changed files with 21 additions and 9 deletions

View File

@@ -315,9 +315,9 @@ liberator.Completion = function () //{{{
mapped = files.map(function (file) {
return [tail ? file.leafName : (dir + file.leafName), file.isDirectory() ? "Directory" : "File"];
}).sort(function (a, b) {
return a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0
return a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0;
}).sort(function (a, b) {
return a[1] < b[1] ? -1 : a[1] > b[1] ? 1 : 0
return a[1] < b[1] ? -1 : a[1] > b[1] ? 1 : 0;
});
}
catch (e)
@@ -560,6 +560,17 @@ liberator.Completion = function () //{{{
return filtered.concat(additionalCompletions);
},
userMapping: function (filter, modes)
{
// TODO: add appropriate getters to l.mappings
var mappings = [];
for (var map in liberator.mappings.getUserIterator(modes))
mappings.push([map.names[0], ""]);
return [0, this.filter(mappings, filter)];
},
// generic helper function which checks if the given "items" array pass "filter"
// items must be an array of strings
match: function (items, filter, caseSensitive)

View File

@@ -203,7 +203,13 @@ liberator.Mappings = function () //{{{
liberator.commands.add([ch ? ch + "m[ap]" : "map"],
"Map a key sequence" + modeDescription,
function (args) { map(args, modes, false); });
function (args) { map(args, modes, false); },
{
completer: function (filter)
{
return liberator.completion.userMapping(filter, modes);
}
});
liberator.commands.add([ch + "no[remap]"],
"Map a key sequence without remapping keys" + modeDescription,
@@ -238,12 +244,7 @@ liberator.Mappings = function () //{{{
argCount: "1",
completer: function (filter)
{
var mappings = []
for (var map in liberator.mappings.getUserIterator(modes))
mappings.push([map.names[0], ""]);
return [0, liberator.completion.filter(mappings, filter)];
return liberator.completion.userMapping(filter, modes);
}
});
}