67 lines
2.5 KiB
JavaScript
67 lines
2.5 KiB
JavaScript
|
var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
|
||
|
lineNumbers: true,
|
||
|
extraKeys: {"Ctrl-Space": "autocomplete"},
|
||
|
matchBrackets: true,
|
||
|
indentUnit: 4,
|
||
|
mode: 'application/x-httpd-php'
|
||
|
/*mode: {name: "htmlmixed", globalVars: true}*/
|
||
|
});
|
||
|
if (typeof Promise !== "undefined") {
|
||
|
var comp = [
|
||
|
["here", "hither"],
|
||
|
["asynchronous", "nonsynchronous"],
|
||
|
["completion", "achievement", "conclusion", "culmination", "expirations"],
|
||
|
["hinting", "advive", "broach", "imply"],
|
||
|
["function","action"],
|
||
|
["provide", "add", "bring", "give"],
|
||
|
["synonyms", "equivalents"],
|
||
|
["words", "token"],
|
||
|
["each", "every"],
|
||
|
]
|
||
|
function synonyms(cm, option) {
|
||
|
return new Promise(function(accept) {
|
||
|
setTimeout(function() {
|
||
|
var cursor = cm.getCursor(), line = cm.getLine(cursor.line)
|
||
|
var start = cursor.ch, end = cursor.ch
|
||
|
while (start && /\w/.test(line.charAt(start - 1))) --start
|
||
|
while (end < line.length && /\w/.test(line.charAt(end))) ++end
|
||
|
var word = line.slice(start, end).toLowerCase()
|
||
|
for (var i = 0; i < comp.length; i++) if (comp[i].indexOf(word) != -1)
|
||
|
return accept({list: comp[i],
|
||
|
from: CodeMirror.Pos(cursor.line, start),
|
||
|
to: CodeMirror.Pos(cursor.line, end)})
|
||
|
return accept(null)
|
||
|
}, 100)
|
||
|
})
|
||
|
}
|
||
|
var editor2 = CodeMirror.fromTextArea(document.getElementById("synonyms"), {
|
||
|
extraKeys: {"Ctrl-Space": "autocomplete"},
|
||
|
lineNumbers: true,
|
||
|
lineWrapping: true,
|
||
|
mode: "text/x-markdown",
|
||
|
hintOptions: {hint: synonyms}
|
||
|
})
|
||
|
}
|
||
|
/*
|
||
|
var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
|
||
|
lineNumbers: true,
|
||
|
styleActiveLine: true,
|
||
|
matchBrackets: true
|
||
|
});*/
|
||
|
var input = document.getElementById("select");
|
||
|
function selectTheme() {
|
||
|
var theme = input.options[input.selectedIndex].textContent;
|
||
|
editor.setOption("theme", theme);
|
||
|
location.hash = "#" + theme;
|
||
|
}
|
||
|
var choice = (location.hash && location.hash.slice(1)) ||
|
||
|
(document.location.search &&
|
||
|
decodeURIComponent(document.location.search.slice(1)));
|
||
|
if (choice) {
|
||
|
input.value = choice;
|
||
|
editor.setOption("theme", choice);
|
||
|
}
|
||
|
CodeMirror.on(window, "hashchange", function() {
|
||
|
var theme = location.hash.slice(1);
|
||
|
if (theme) { input.value = theme; selectTheme(); }
|
||
|
});
|