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

assign an object literal to v.Command.prototype rather than using individual

function assignments
This commit is contained in:
Doug Kearns
2007-11-29 11:27:07 +00:00
parent 04b50114f0
commit 89efa429a8

View File

@@ -90,40 +90,44 @@ vimperator.Command = function (specs, action, extraInfo) //{{{
}; };
vimperator.Command.prototype.execute = function (args, special, count, modifiers) vimperator.Command.prototype = {
{
return this.action.call(this, args, special, count, modifiers);
};
// return true if the candidate name matches one of the command's aliases execute: function (args, special, count, modifiers)
// (including all acceptable abbreviations)
vimperator.Command.prototype.hasName = function (name)
{
// match a candidate name against a command name abbreviation spec - returning
// true if the candidate matches unambiguously
function matchAbbreviation(name, format)
{ {
var minimum = format.indexOf("["); // minumum number of characters for a command name match return this.action.call(this, args, special, count, modifiers);
var fullname = format.replace(/\[(\w+)\]$/, "$1"); // full command name },
if (fullname.indexOf(name) == 0 && name.length >= minimum)
return true;
else
return false;
}
for (var i = 0; i < this.specs.length; i++) // return true if the candidate name matches one of the command's aliases
// (including all acceptable abbreviations)
hasName: function (name)
{ {
if (this.specs[i] == name) // literal command name // match a candidate name against a command name abbreviation spec - returning
// true if the candidate matches unambiguously
function matchAbbreviation(name, format)
{ {
return true; var minimum = format.indexOf("["); // minumum number of characters for a command name match
} var fullname = format.replace(/\[(\w+)\]$/, "$1"); // full command name
else if (/^(\w+|!)\[\w+\]$/.test(this.specs[i])) // abbreviation spec if (fullname.indexOf(name) == 0 && name.length >= minimum)
{
if (matchAbbreviation(name, this.specs[i]))
return true; return true;
else
return false;
} }
for (var i = 0; i < this.specs.length; i++)
{
if (this.specs[i] == name) // literal command name
{
return true;
}
else if (/^(\w+|!)\[\w+\]$/.test(this.specs[i])) // abbreviation spec
{
if (matchAbbreviation(name, this.specs[i]))
return true;
}
}
return false;
} }
return false;
}; };
//}}} //}}}