In this article we will explore the topic of
User:Quarl/shortcuts.js, which has generated great interest and controversy in recent times. From its origins to its relevance today,
User:Quarl/shortcuts.js has captured the attention of academics, professionals and the general public. Through a detailed analysis, we will examine the different perspectives and opinions that exist around
User:Quarl/shortcuts.js, as well as its impact on various areas of society. Additionally, we will delve into the history and evolution of
User:Quarl/shortcuts.js, highlighting its achievements and challenges over time. This article seeks to provide a comprehensive and objective view of
User:Quarl/shortcuts.js, contributing to the debate and understanding of its importance in today's world.
// ] - shortcut utilities
// <pre><nowiki>
// Defines the Shortcuts class.
// Input is an associative array like this:
//
/*
s = Shortcuts({
'x1' : 'str 1',
'x2 ' : 'str 2', // the space after x2 prevents msg() from displaying this entry
'x3,x4': 'str 34' // x3 and x4 are aliases; msg() only displays x3
});
*/
function Shortcuts(input) {
if (!(this instanceof Shortcuts)) return new Shortcuts(input);
this.shortcuts = {};
for (k in input) {
var keys = k.toUpperCase().split(',');
this.shortcuts] = input;
for (var i=1; i < keys.length; ++i) {
this.shortcuts] = input + ' ';
}
}
}
Shortcuts.prototype.msg = function() {
var msg = 'Shortcuts available:\n';
for (var key in this.shortcuts) {
if (this.shortcuts.match(/ $/)) continue;
msg += key + ': ' + this.shortcuts + '\n';
}
return msg;
}
Shortcuts.prototype.subst = function(word) {
return trimspaces(this.shortcuts) || word;
}
Shortcuts.prototype.substP = function(word) {
return Boolean(this.shortcuts);
}
// replace the first word (doesn't require uppercase)
Shortcuts.prototype.substFirstWord = function(msg) {
if (!msg) return msg;
if (msg.match(/^(+)(.*)$/)) {
return this.subst(RegExp.$1) + RegExp.$2;
}
return msg;
}
// replace all UPPERCASE words
Shortcuts.prototype.substUppercaseWords = function(msg) {
if (!msg) return msg;
var ret = '';
var m;
while (msg && (m = msg.match(/^(.*?)\b(+)\b(.*)$/)) ) {
ret += m + this.subst(m);
msg = m;
}
ret += msg;
return ret;
}
// replace all words (ignoring case)
Shortcuts.prototype.substWords = function(msg) {
if (!msg) return msg;
var ret = '';
var m;
while (msg && (m = msg.match(/^(.*?)\b(+)\b(.*)$/)) ) {
ret += m + this.subst(m);
msg = m;
}
ret += msg;
return ret;
}
// </nowiki></pre>