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

Add some documentation for Abbreviation.

--HG--
extra : rebase_source : cdc495381db878c2e7bef2a817e40c2d2a196075
This commit is contained in:
Doug Kearns
2011-06-29 19:13:59 +10:00
parent 56d97ef752
commit 07bd83d7e4
3 changed files with 62 additions and 3 deletions

View File

@@ -8,6 +8,23 @@
/** @scope modules */ /** @scope modules */
/**
* A user-defined input mode binding of a typed string to an automatically
* inserted expansion string.
*
* Abbreviations have a left-hand side (LHS) whose text is replaced by that of
* the right-hand side (RHS) when triggered by an input mode expansion key.
* E.g. an abbreviation with a LHS of "gop" and RHS of "Grand Old Party" will
* replace the former with the latter.
*
* @param {Mode[]} modes The modes in which this abbreviation is active.
* @param {string} lhs The left hand side of the abbreviation; the text to
* be replaced.
* @param {string|function(nsIEditor):string} rhs The right hand side of
* the abbreviation; the replacement text. This may either be a string
* literal or a function that will be passed the appropriate nsIEditor.
* @private
*/
var Abbreviation = Class("Abbreviation", { var Abbreviation = Class("Abbreviation", {
init: function (modes, lhs, rhs) { init: function (modes, lhs, rhs) {
this.modes = modes.sort(); this.modes = modes.sort();
@@ -15,20 +32,61 @@ var Abbreviation = Class("Abbreviation", {
this.rhs = rhs; this.rhs = rhs;
}, },
/**
* Returns true if this abbreviation's LHS and RHS are equal to those in
* *other*.
*
* @param {Abbreviation} other The abbreviation to test.
* @returns {boolean} The result of the comparison.
*/
equals: function (other) this.lhs == other.lhs && this.rhs == other.rhs, equals: function (other) this.lhs == other.lhs && this.rhs == other.rhs,
/**
* Returns the abbreviation's expansion text.
*
* @param {nsIEditor} editor The editor in which abbreviation expansion is
* occurring.
* @returns {string}
*/
expand: function (editor) String(callable(this.rhs) ? this.rhs(editor) : this.rhs), expand: function (editor) String(callable(this.rhs) ? this.rhs(editor) : this.rhs),
/**
* Returns true if this abbreviation is defined for all *modes*.
*
* @param {Mode[]} modes The modes to test.
* @returns {boolean} The result of the comparison.
*/
modesEqual: function (modes) array.equals(this.modes, modes), modesEqual: function (modes) array.equals(this.modes, modes),
/**
* Returns true if this abbreviation is defined for *mode*.
*
* @param {Mode} mode The mode to test.
* @returns {boolean} The result of the comparison.
*/
inMode: function (mode) this.modes.some(function (_mode) _mode == mode), inMode: function (mode) this.modes.some(function (_mode) _mode == mode),
/**
* Returns true if this abbreviation is defined in any of *modes*.
*
* @param {Modes[]} modes The modes to test.
* @returns {boolean} The result of the comparison.
*/
inModes: function (modes) modes.some(function (mode) this.inMode(mode), this), inModes: function (modes) modes.some(function (mode) this.inMode(mode), this),
/**
* Remove *mode* from the list of supported modes for this abbreviation.
*
* @param {Mode} mode The mode to remove.
*/
removeMode: function (mode) { removeMode: function (mode) {
this.modes = this.modes.filter(function (m) m != mode).sort(); this.modes = this.modes.filter(function (m) m != mode).sort();
}, },
/**
* @property {string} The mode display characters associated with the
* supported mode combination.
*/
get modeChar() Abbreviation.modeChar(this.modes) get modeChar() Abbreviation.modeChar(this.modes)
}, { }, {
modeChar: function (_modes) { modeChar: function (_modes) {
@@ -45,6 +103,7 @@ var AbbrevHive = Class("AbbrevHive", Contexts.Hive, {
this._store = {}; this._store = {};
}, },
/** @property {boolean} True if there are no abbreviations */
get empty() !values(this._store).nth(util.identity, 0), get empty() !values(this._store).nth(util.identity, 0),
/** /**
@@ -68,6 +127,7 @@ var AbbrevHive = Class("AbbrevHive", Contexts.Hive, {
* *
* @param {Mode} mode The mode of the abbreviation. * @param {Mode} mode The mode of the abbreviation.
* @param {string} lhs The LHS of the abbreviation. * @param {string} lhs The LHS of the abbreviation.
* @returns {Abbreviation} The matching abbreviation.
*/ */
get: function (mode, lhs) { get: function (mode, lhs) {
let abbrevs = this._store[mode]; let abbrevs = this._store[mode];
@@ -245,7 +305,6 @@ var Abbreviations = Module("abbreviations", {
context.completions = group.merged.filter(fn); context.completions = group.merged.filter(fn);
}; };
}, },
commands: function () { commands: function () {
function addAbbreviationCommands(modes, ch, modeDescription) { function addAbbreviationCommands(modes, ch, modeDescription) {
modes.sort(); modes.sort();

View File

@@ -35,7 +35,7 @@ var QuickMarks = Module("quickmarks", {
* Returns a list of QuickMarks associates with the given URL. * Returns a list of QuickMarks associates with the given URL.
* *
* @param {string} url The url to find QuickMarks for. * @param {string} url The url to find QuickMarks for.
* @return {[string]} * @returns {[string]}
*/ */
find: function find(url) { find: function find(url) {
let res = []; let res = [];

View File

@@ -824,7 +824,7 @@ Class.extend = function extend(subclass, superclass, overrides) {
* *
* @param {function(string)} getter The function which returns the * @param {function(string)} getter The function which returns the
* property's value. * property's value.
* @return {Class.Property} * @returns {Class.Property}
*/ */
Class.memoize = function memoize(getter, wait) Class.memoize = function memoize(getter, wait)
Class.Property({ Class.Property({