代码拉取完成,页面将自动刷新
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Monaco Editor - Bracket Auto-Completion</title>
<!-- Load Monaco Editor -->
<script src="https://cdn.jsdelivr.net/npm/monaco-editor@latest/min/vs/loader.js"></script>
<style>
#container {
width: 800px;
height: 600px;
}
</style>
</head>
<body>
<div id="container"></div>
<script>
require.config({
paths: {
vs: "https://cdn.jsdelivr.net/npm/monaco-editor@latest/min/vs",
},
});
require(["vs/editor/editor.main"], function () {
var editor = monaco.editor.create(
document.getElementById("container"),
{
value: "",
language: "javascript",
}
);
// Register bracket auto-completion snippet
monaco.languages.registerCompletionItemProvider("javascript", {
provideCompletionItems: function (model, position) {
var textUntilPosition = model.getValueInRange({
startLineNumber: position.lineNumber,
startColumn: 1,
endLineNumber: position.lineNumber,
endColumn: position.column,
});
var match = textUntilPosition.match(/(\()|(\[)|({)/);
if (!match) return [];
var bracketType = match[0];
var closingBracket = "";
switch (bracketType) {
case "(":
closingBracket = ")";
break;
case "[":
closingBracket = "]";
break;
case "{":
closingBracket = "}";
break;
default:
break;
}
var suggestion = {
label: closingBracket,
kind: monaco.languages.CompletionItemKind.Snippet,
insertText: closingBracket,
range: new monaco.Range(
position.lineNumber,
position.column,
position.lineNumber,
position.column
),
};
return [suggestion];
},
});
});
</script>
</body>
</html>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。