|
@@ -1011,23 +1011,18 @@ function getCode() {
|
|
|
|
|
|
== Hover provider example
|
|
|
=======================JS
|
|
|
-var quoteOfTheDay = new monaco.Promise(function(c,e) {
|
|
|
- window.parseResponse = function(rawQOD) {
|
|
|
- c(rawQOD.data.contents.quotes[0].quote);
|
|
|
- }
|
|
|
- var script = document.createElement('script');
|
|
|
- script.src='http://quotes.rest/qod.js';
|
|
|
- document.head.appendChild(script);
|
|
|
-});
|
|
|
|
|
|
monaco.languages.register({ id: 'mySpecialLanguage' });
|
|
|
|
|
|
monaco.languages.registerHoverProvider('mySpecialLanguage', {
|
|
|
provideHover: function(model, position) {
|
|
|
- return quoteOfTheDay.then(function(quoteText) {
|
|
|
+ return xhr('../playground.html').then(function(res) {
|
|
|
return {
|
|
|
range: new monaco.Range(1, 1, model.getLineCount(), model.getLineMaxColumn(model.getLineCount())),
|
|
|
- contents: ['**' + quoteText + '**']
|
|
|
+ contents: [
|
|
|
+ '**SOURCE**',
|
|
|
+ { language: 'html', value: res.responseText.substring(0, 200) }
|
|
|
+ ]
|
|
|
}
|
|
|
});
|
|
|
}
|
|
@@ -1038,6 +1033,35 @@ monaco.editor.create(document.getElementById("container"), {
|
|
|
language: 'mySpecialLanguage'
|
|
|
});
|
|
|
|
|
|
+function xhr(url) {
|
|
|
+ var req = null;
|
|
|
+ return new monaco.Promise(function(c,e,p) {
|
|
|
+ req = new XMLHttpRequest();
|
|
|
+ req.onreadystatechange = function () {
|
|
|
+ if (req._canceled) { return; }
|
|
|
+
|
|
|
+ if (req.readyState === 4) {
|
|
|
+ if ((req.status >= 200 && req.status < 300) || req.status === 1223) {
|
|
|
+ c(req);
|
|
|
+ } else {
|
|
|
+ e(req);
|
|
|
+ }
|
|
|
+ req.onreadystatechange = function () { };
|
|
|
+ } else {
|
|
|
+ p(req);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ req.open("GET", url, true );
|
|
|
+ req.responseType = "";
|
|
|
+
|
|
|
+ req.send(null);
|
|
|
+ }, function () {
|
|
|
+ req._canceled = true;
|
|
|
+ req.abort();
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
=======================HTML
|
|
|
<div id="container" style="height:100%;"></div>
|
|
|
|