forked from ajaxorg/ace
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathshow_own_source.js
67 lines (64 loc) · 2.19 KB
/
show_own_source.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
if (typeof ace == "undefined" && typeof require == "undefined") {
document.body.innerHTML = "<p style='padding: 20px 50px;'>couldn't find ace.js file, <br>"
+ "to build it run <code>node Makefile.dryice.js full<code>"
} else if (typeof ace == "undefined" && typeof require != "undefined") {
require(["ace/ace"], function() {
setValue();
});
require(["ace/config"], function() {
var config = require("ace/config");
config.setLoader(function(moduleName, cb) {
require([moduleName], function(module) {
cb(null, module);
});
});
})
} else {
require = ace.require;
setValue()
}
function setValue() {
require("ace/lib/net").get(document.baseURI, function(text) {
var el = document.getElementById("editor");
if (el) el.env.editor.session.setValue(text);
});
loadAceLinters();
}
function loadAceLinters() {
if (typeof define == "function" && define.amd) {
require([
"https://mkslanc.github.io/ace-linters/build/ace-linters.js"
], function(m) {
addLinters(m.LanguageProvider);
});
} else {
require("ace/lib/net").loadScript(
"https://mkslanc.github.io/ace-linters/build/ace-linters.js",
function() {
addLinters(window.LanguageProvider);
}
)
}
function addLinters(LanguageProvider) {
var languageProvider = LanguageProvider.fromCdn("https://mkslanc.github.io/ace-linters/build", {
functionality: {
hover: true,
completion: {
overwriteCompleters: false
},
completionResolve: true,
format: true,
documentHighlights: true,
signatureHelp: false
}
});
window.languageProvider = languageProvider;
document.querySelectorAll(".ace_editor").forEach(function(el) {
var editor = el.env && el.env.editor;
if (editor) {
editor.setOption("enableBasicAutocompletion", true)
languageProvider.registerEditor(editor);
}
});
}
}