请教个问题,默认高亮一些字段
UvDream opened this issue · comments
@UvDream 官方有个类似的示例,你可以参考: https://microsoft.github.io/monaco-editor/playground.html?source=v0.43.0#example-extending-language-services-hover-provider-example
monaco.languages.register({ id: "mySpecialLanguage" });
monaco.languages.registerHoverProvider("mySpecialLanguage", {
provideHover: function (model, position) {
return xhr("./playground.html").then(function (res) {
return {
range: new monaco.Range(
1,
1,
model.getLineCount(),
model.getLineMaxColumn(model.getLineCount())
),
contents: [
{ value: "**SOURCE**" },
{
value:
"```html\n" +
res.responseText.substring(0, 200) +
"\n```",
},
],
};
});
},
});
monaco.editor.create(document.getElementById("container"), {
value: "\n\nHover over this text",
language: "mySpecialLanguage",
});
function xhr(url) {
var req = null;
return new Promise(function (c, e) {
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 () {};
}
};
req.open("GET", url, true);
req.responseType = "";
req.send(null);
}).catch(function () {
req._canceled = true;
req.abort();
});
}
@UvDream 官方有个类似的示例,你可以参考: https://microsoft.github.io/monaco-editor/playground.html?source=v0.43.0#example-extending-language-services-hover-provider-example
monaco.languages.register({ id: "mySpecialLanguage" }); monaco.languages.registerHoverProvider("mySpecialLanguage", { provideHover: function (model, position) { return xhr("./playground.html").then(function (res) { return { range: new monaco.Range( 1, 1, model.getLineCount(), model.getLineMaxColumn(model.getLineCount()) ), contents: [ { value: "**SOURCE**" }, { value: "```html\n" + res.responseText.substring(0, 200) + "\n```", }, ], }; }); }, }); monaco.editor.create(document.getElementById("container"), { value: "\n\nHover over this text", language: "mySpecialLanguage", }); function xhr(url) { var req = null; return new Promise(function (c, e) { 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 () {}; } }; req.open("GET", url, true); req.responseType = ""; req.send(null); }).catch(function () { req._canceled = true; req.abort(); }); }
![image](https://private-user-images.githubusercontent.com/33121872/269510861-917c9ad1-460d-48fb-8f39-02b67380d895.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDkzNjAwMDksIm5iZiI6MTcwOTM1OTcwOSwicGF0aCI6Ii8zMzEyMTg3Mi8yNjk1MTA4NjEtOTE3YzlhZDEtNDYwZC00OGZiLThmMzktMDJiNjczODBkODk1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDAzMDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwMzAyVDA2MDgyOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg4ZmQ4YWMzYzEwZmZmZjk1ZjcwNGY2NmVjNTVjNDhhZWY5NWYzNjNjMTFkNmQxZGQ0YWJjYzk4NzZkOWZkOTEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0._L3MI0FI0968-LBOKha38-nxQZsu00ZN1ZvOeAd8kqo)