JavaScript
var $ELIST = [["squat", 48],["military press", 40],["deadlift", 39],["bench press", 33],["high-bar squat", 31],["clean and jerk", 18],["comment", 16],["power clean", 16],["bent over row", 13],["front squat", 11],["clean", 7],["overhead squat", 7],["hang snatch", 6],["jerk", 5],["snatch balance", 5],["clean pull", 4],["close grip lat pulldown", 4],["snatch pull", 3],["snatch", 2],["tall clean", 2],["high-hang snatch", 2],["hang clean", 2],["t-bar bent over row", 2],["face pull", 1],["leg press", 1],["bent row", 1],["curl", 1],["mid-hang snatch pull", 1],["dip", 1],["snatch grip deadlift", 1],["dumbbell fly", 1],["overhead press", 0]];
function getHints(cm) {
var cur = cm.getCursor(),
token = cm.getTokenAt(cur),
str = token.string,
ustr = $.trim(token.string.substr(1)),
arr = [],
list = [];
if (str.indexOf("#") !== 0) {
return null;
}
for (var i = 0; i < $ELIST.length; i++) {
if ((ustr == "") || $ELIST[i][0].toLowerCase().indexOf(ustr.toLowerCase()) > -1) {
arr.push($ELIST[i]);
}
}
arr.sort();
for (i = 0; i < arr.length; i++) {
list.push("#" + arr[i][0] + " ");
}
var t = "#" + ustr + " ";
if (arr.length && (ustr != "")) {
if (arr.length < 2 || list[0].toLowerCase() != t.toLowerCase()) {
list.unshift({
displayText: "Create: " + ustr,
text: t
});
}
} else {
if (list.length == 1) {
list.unshift({
displayText: "Create: " + ustr,
text: t
});
}
}
var o = {
list: list,
from: CodeMirror.Pos(cur.line, token.start),
to: CodeMirror.Pos(cur.line, token.end)
};
return o;
}
function sortEList(a, b) {
return b[1] - a[1];
}
$(document).ready(function(){
CodeMirror.registerHelper("hint", "logger", getHints);
CodeMirror.commands.autocomplete = function(cm) {
...